simple-support Mailing List for Simple (Page 22)
Brought to you by:
niallg
You can subscribe to this list here.
| 2007 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
(13) |
May
(13) |
Jun
(27) |
Jul
(4) |
Aug
(14) |
Sep
(7) |
Oct
|
Nov
(6) |
Dec
(24) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
|
Feb
(21) |
Mar
(10) |
Apr
(15) |
May
(24) |
Jun
(24) |
Jul
(30) |
Aug
(5) |
Sep
(19) |
Oct
(27) |
Nov
(16) |
Dec
(24) |
| 2009 |
Jan
(34) |
Feb
(24) |
Mar
(35) |
Apr
(26) |
May
(8) |
Jun
(17) |
Jul
(28) |
Aug
(31) |
Sep
(36) |
Oct
(35) |
Nov
(20) |
Dec
(16) |
| 2010 |
Jan
(40) |
Feb
(21) |
Mar
(47) |
Apr
(45) |
May
(34) |
Jun
(68) |
Jul
(46) |
Aug
(39) |
Sep
(47) |
Oct
(20) |
Nov
(42) |
Dec
(13) |
| 2011 |
Jan
(41) |
Feb
(16) |
Mar
(32) |
Apr
(44) |
May
(28) |
Jun
(35) |
Jul
(37) |
Aug
(33) |
Sep
(60) |
Oct
(20) |
Nov
(35) |
Dec
(23) |
| 2012 |
Jan
(34) |
Feb
(23) |
Mar
(34) |
Apr
(21) |
May
(48) |
Jun
(24) |
Jul
(31) |
Aug
(39) |
Sep
(25) |
Oct
(10) |
Nov
(27) |
Dec
(28) |
| 2013 |
Jan
(32) |
Feb
(24) |
Mar
(24) |
Apr
(9) |
May
(4) |
Jun
(6) |
Jul
(2) |
Aug
(5) |
Sep
|
Oct
(5) |
Nov
(1) |
Dec
(12) |
| 2014 |
Jan
(14) |
Feb
(16) |
Mar
(5) |
Apr
(3) |
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
|
Sep
(6) |
Oct
|
Nov
(6) |
Dec
|
| 2015 |
Jan
(3) |
Feb
(15) |
Mar
(7) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
| 2016 |
Jan
|
Feb
(6) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Niall G. <gal...@ya...> - 2012-01-23 08:31:12
|
It should be entry="Open" name should not exist as its inline. So change the openList annotation to use entry="Open" and not name="Open"
--- On Thu, 19/1/12, Sony Ericsson <101...@gm...> wrote:
From: Sony Ericsson <101...@gm...>
Subject: [Simple-support] Need Help deserializing
To: sim...@li...
Received: Thursday, 19 January, 2012, 5:23 PM
Hello,
Source XML:
<List>
<ItemType>Fruits</ItemType>
<Order>Yes</Order>
<Open>
<id>111</id>
<name>Apple</name>
</Open>
<Open>
<id>222</id>
<name>Mango</name>
</Open>
</List>
My Code looks like below:
@Root(name = "List", strict = false)
public class List {
@ElementList(name = "Open", required = false, inline = true)
private List<Openl> openList;
@Element(name = "ItemType", required = false)
private String itemType;
@Element(name = "Order", required = false)
private String shouldWeOrder;
public String getOpenItemList() {
return openList;
}
public String getItemType() {
return itemType;
}
public String getOrder() {
return shouldWeOrder;
}
}
@Root(name="Open")
public class Open {
@Element(name = "id", required = false)
private String id;
@Element(name = "name", required = false)
private String name;
public String getId() {
return id;
}
public String getName() {
return name;
}
}
I am only able to deserialize ItemType and Order. My List - openList is always null, that may be because I am not constructing one. So, how to do that ? How to deserialize such XML ?
-----Inline Attachment Follows-----
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
-----Inline Attachment Follows-----
_______________________________________________
Simple-support mailing list
Sim...@li...
https://lists.sourceforge.net/lists/listinfo/simple-support
|
|
From: Jean C. <jlc...@ya...> - 2012-01-21 21:30:45
|
Hi Niall, That is correct. You define a set of attributes that you can reference as part of a complex type. Say you have 3 elements in a schema (library, book, and author) and each of these elements has an ID and Name attribute. Instead of explicitly defining those 2 attributes in each element, you could define a single attribute group that contains the common attributes, then reference the attribute group in each of the elements. Later on you could add a third element in the attribute group (say, year), and the 3 elements would now have it defined as an attribute without having to update the entire schema. More information is available on the link below: http://www.w3schools.com/schema/el_attributegroup.asp ________________________________ From: Niall Gallagher <gal...@ya...> To: Jean Calixte <jlc...@ya...>; "sim...@li..." <sim...@li...> Sent: Friday, January 13, 2012 7:35 PM Subject: Re: [Simple-support] Serializing Attribute Groups Hi Jean, I order to answer this question I would need more information, what do you mean by attribute group, is this just a collection of name value pairs that always appear? Thanks, Niall From: Jean Calixte <jlc...@ya...> To: "sim...@li..." <sim...@li...> Sent: Thursday, 5 January 2012 1:41 PM Subject: [Simple-support] Serializing Attribute Groups Hi Everyone, I have a XML schema that I would like to serialize using Simple. The schema contains elements whose attributes are part of attribute groups. Several types contain references to multiple attribute groups. Is there an ideal way to serialize this reference in the class I'm creating? I would like to avoid having to specify each attribute every time the attribute group appears in the schema--this would get messy if an update to the schema changes the attributes in a given group. Thanks! ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Simple-support mailing list Sim...@li... https://lists.sourceforge.net/lists/listinfo/simple-support |
|
From: Sony E. <101...@gm...> - 2012-01-20 01:23:39
|
Hello,
Source XML:
<List>
<ItemType>Fruits</ItemType>
<Order>Yes</Order>
<Open>
<id>111</id>
<name>Apple</name>
</Open>
<Open>
<id>222</id>
<name>Mango</name>
</Open>
</List>
My Code looks like below:
@Root(name = "List", strict = false)
public class List {
@ElementList(name = "Open", required = false, inline = true)
private List<Openl> openList;
@Element(name = "ItemType", required = false)
private String itemType;
@Element(name = "Order", required = false)
private String shouldWeOrder;
public String getOpenItemList() {
return openList;
}
public String getItemType() {
return itemType;
}
public String getOrder() {
return shouldWeOrder;
}
}
@Root(name="Open")
public class Open {
@Element(name = "id", required = false)
private String id;
@Element(name = "name", required = false)
private String name;
public String getId() {
return id;
}
public String getName() {
return name;
}
}
I am only able to deserialize ItemType and Order. My List - openList is
always null, that may be because I am not constructing one. So, how to do
that ? How to deserialize such XML ?
|
|
From: Niall G. <gal...@ya...> - 2012-01-19 22:17:47
|
What do you mean when you say your program repeats the entire structure? if you mean it writes the whole xml file then all i can add is tha simple does not support random accesa files, nor does any other xml generator i know of. Sent from Yahoo!7 Mail on Android |
|
From: Robert M. <rob...@gm...> - 2012-01-19 21:03:13
|
Just a quick thought. Maybe we should add simple to these comparison tests? http://www.developer.com/ws/article.php/10927_3824221_2/Android-XML-Parser-Performance.htm (Sent from my ASUS Transformer tablet) |
|
From: Patacchiola, A. <ada...@tr...> - 2012-01-19 19:29:24
|
If I have a class B that inherits from class A, and have a List<A> which contains As and Bs, how can I prevent the Bs from being serialized? Thanks, Adam |
|
From: Onno H. <on...@aq...> - 2012-01-18 14:42:10
|
Hi,
I solved the problem the following way and would be happy for a comment if thats a good and performant way,
especially if it's OK to ignore all methods of the Value Interface except the getType():Class? If i'm right, default behavior is used for the rest.
Strategy strategy = new Strategy() {
@Override
public boolean write(Type arg0, Object arg1,
NodeMap<OutputNode> arg2, Map arg3) throws Exception {
return false;
}
@Override
public Value read(Type arg0, NodeMap<InputNode> arg1, Map arg2)
throws Exception {
if (arg0.getType().equals(Field.class)) {
InputNode typeNode = arg1.getNode().getAttribute("type");
String typeValue = typeNode.getValue();
// remove namespace prefix
int idx = typeValue.indexOf(':');
String typeV = typeValue.substring(idx + 1,
typeValue.length());
if (typeV.equals("FieldSubClass1")) {
return new Value() {
@Override
public void setValue(Object arg0) {
}
@Override
public boolean isReference() {
return false;
}
@Override
public Object getValue() {
return null;
}
@Override
public Class getType() {
return FieldSubClass1.class;
}
@Override
public int getLength() {
return 0;
}
};
} else if (typeV.equals("FieldSubClass2")) {
return new Value() {
@Override
public void setValue(Object arg0) {
}
@Override
public boolean isReference() {
return false;
}
@Override
public Object getValue() {
return null;
}
@Override
public Class getType() {
return FieldSubClass2.class;
}
@Override
public int getLength() {
return 0;
}
};
}
}
return null;
}
};
Serializer serializer = new Persister(strategy);
Wrapper wrapperItem = serializer.read(Wrapper.class, reader,
false);
Am 18.01.2012 um 13:21 schrieb Vincent Schlatter:
> Hello,
>
> I'm struggling with the following problem.
>
> Let's say we have the following XML:
>
> <?xml version="1.0"?>
> <wrapper xmlns="http://www.example.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <obj xsi:type="FieldSubClass1">
> <property1>some text</property1>
> <property2>some text</property2>
> </obj>
> <obj xsi:type="FieldSubClass2">
> <property1>some text</property1>
> <property2>some text</property2>
> <property3>some text</property3>
> </obj>
> <obj xsi:type="FieldSubClass3">
> <property1>some text</property1>
> <property2>some text</property2>
> </obj>
> </wrapper>
>
> The Java classes are:
>
> public class Wrapper {
> private List<Field> fieldList = null;
> }
>
> public class Field {
> private String property1 = null;
> }
>
> public class FieldSubClass1 extends Field {
> private String property2 = null;
> }
>
> public class FieldSubClass2 extends Field {
> private String property2 = null;
> private String property3 = null;
> }
>
> public class FieldSubClass3 extends Field {
> private String property2 = null;
> }
>
> Is it possible to use Simple for this problem? Simple would need to analyse the xsi:type attribute to find out which sub class to instantiate, as the sub classes cannot be distinguished by their properties.
>
> I tried a lot of different combinations of annotations but haven't been able to created the designated result.
>
> Any help would be much appreciated.
>
> Kind regards,
> Vincent
|
|
From: Vincent S. <vin...@gm...> - 2012-01-18 12:22:08
|
Hello, I'm struggling with the following problem. Let's say we have the following XML: <?xml version="1.0"?> <wrapper xmlns="http://www.example.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <obj xsi:type="FieldSubClass1"> <property1>some text</property1> <property2>some text</property2> </obj> <obj xsi:type="FieldSubClass2"> <property1>some text</property1> <property2>some text</property2> <property3>some text</property3> </obj> <obj xsi:type="FieldSubClass3"> <property1>some text</property1> <property2>some text</property2> </obj> </wrapper> The Java classes are: public class Wrapper { private List<Field> fieldList = null; } public class Field { private String property1 = null; } public class FieldSubClass1 extends Field { private String property2 = null; } public class FieldSubClass2 extends Field { private String property2 = null; private String property3 = null; } public class FieldSubClass3 extends Field { private String property2 = null; } Is it possible to use Simple for this problem? Simple would need to analyse the xsi:type attribute to find out which sub class to instantiate, as the sub classes cannot be distinguished by their properties. I tried a lot of different combinations of annotations but haven't been able to created the designated result. Any help would be much appreciated. Kind regards, Vincent -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de |
|
From: Cody D D. <cdd...@st...> - 2012-01-16 20:42:02
|
Hello, I have been trying to figure this out for some time now and have decided its time to consult the mailing list. My issue deals with the creation of a GPX file for GPS use in Android. The basic structure that I am wanting for my XML file is shown below. I have achieved the structure using Simple, but cannot figure out how to only add additional trkpt elements when I update the file. Every time my android device receives a GPS location I need to just write another trkpt to the existing xml file, but my program is repeating the entire structure shown below with each new location. I am assuming there is a way to append just a single element to an already existing XML file and have it maintain the tree structure (just like the two trkpts shown below). I have also placed a copy of the code that is currently run every time my application receives a new location point below. Thanks for any help you can offer! Cody File Structure <?xml version="1.0" encoding="UTF-8"?> <gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Cody" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1/gpx.xsd"> <trk> <trkseg> <trkpt lon="9.860624216140083" lat="54.9328621088893"> <ele>228.0</ele> <time>2011-12-20T22:46:16Z</time> <speed>13.0</speed> <src>gps</src> </trkpt> <trkpt lon="9.860624216140083" lat="54.9328621088893"> <ele>228.0</ele> <time>2011-12-20T22:46:16Z</time> <speed>13.0</speed> <src>gps</src> </trkpt> </trkseg> </trk> </gpx> Current Writing Code String prolog = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; Format format = new Format(prolog); Serializer serializer = new Persister(format); Gpx gpx = new Gpx(); Trk trk = new Trk(); gpx.setTrk(trk); Trkseg trkseg = new Trkseg(); trk.setTrkseg(trkseg); Trkpt trkpt = new Trkpt(); trkpt.setLon(String.valueOf(loc.getLongitude())); trkpt.setLat(String.valueOf(loc.getLatitude())); trkpt.setEle(String.valueOf(loc.getAltitude())); trkpt.setTime(dateTimeString); trkpt.setSpeed(String.valueOf(loc.getSpeed())); trkpt.setSrc(loc.getProvider()); trkseg.setTrkpt(trkpt); FileWriter fstream = new FileWriter(gpxFile, true); BufferedWriter out = new BufferedWriter(fstream); serializer.write(gpx, out); |
|
From: Rangel R. <ran...@gm...> - 2012-01-14 02:30:03
|
Hmm I seem to have sent my response to a personal email, instead of the list. I tested this on other Android devices and the emulator, and this only seems to happen on my Galaxy Tab 10.1 with Honeycomb, on other targets this function does not use so much cycles. So it should be a honeycomb problem, this specific example. Thanks, Rangel On Fri, Jan 13, 2012 at 10:54 PM, Niall Gallagher <gal...@ya... > wrote: > Hi, > > Ill take a look at this. It seems very strange that it would spend 44% of > its time on this method. Perhaps the profiler you are using is a sampling > profiler, and it simply has not got enough samples to determine where the > time is being lost accurately. At any rate I will look in to it. The > problem I have had with profiling is that Simple uses a lot of recursive > algorithms, so profiling by method visits etc is not very useful. I will > try to write some tests to profile individual non-recursive parts > separately, perhaps there are some gains to be made, likely with reflection > I would think, but also with how the schema is constructed and used > internally. > > Thanks, > Niall > > *From:* Rangel Reale <ran...@gm...> > *To:* sim...@li... > *Sent:* Tuesday, 10 January 2012 5:00 AM > *Subject:* [Simple-support] Android performance - strange profiling > > Hello, > > I am having performance issues in Android parsing a very large XML file. > > Profiling trying to find where the bottleneck is, if I undestood > correctly, the application is 44% of the time in the function > "KXmlParser.getLineNumber", called from PullReader$Start.<init>, but > looking at its source code it seems to only read an instance variable an > nothing more. > > Can someone shed a light on this? > > I don't know it posting images is allowed here, so I uplodaded to an image > sharing site: > > http://imgur.com/C5ocm > > Thanks, > Rangel > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this all-in-one solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Simple-support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simple-support > > > |
|
From: Niall G. <gal...@ya...> - 2012-01-14 01:19:04
|
I am sure its possible to speed things up quite signifigantly, ill take a close look and see what is going on that is taking up the time. However, first time reads will always take longer, as it needs to scan for annotations. ________________________________ From: Robert Massaioli <rob...@gm...> To: Niall Gallagher <gal...@ya...> Cc: Rangel Reale <ran...@gm...>; "sim...@li..." <sim...@li...> Sent: Saturday, 14 January 2012 12:15 PM Subject: Re: [Simple-support] Android performance - strange profiling That response is interesting. Is it possible that if the stack is going too deep then that is causing a slowdown? Also, I just found the benchmark code in the simple-xml repository and this is what it displayed for me on my computer: Execution of JAXB Test 1 10000 times: read=1229 ms read-total=1358 write=824 ms write-total=824 ms average-read=0 ms average-write=0 ms Execution of Simple Test 1 10000 times: read=1729 ms read-total=1736 write=1346 ms write-total=1346 ms average-read=0 ms average-write=0 ms Execution of JAXB Test 2 10000 times: read=614 ms read-total=618 write=241 ms write-total=241 ms average-read=0 ms average-write=0 ms Execution of Simple Test 2 10000 times: read=744 ms read-total=747 write=709 ms write-total=709 ms average-read=0 ms average-write=0 ms Execution of JAXB Test 3 10000 times: read=551 ms read-total=554 write=247 ms write-total=247 ms average-read=0 ms average-write=0 ms Execution of Simple Test 3 10000 times: read=719 ms read-total=721 write=699 ms write-total=699 ms average-read=0 ms average-write=0 ms So there is a significant speedup after the first run but it is still a little bit on the slow side. This code also only uses a single core to do the processing so since I have 4 3.3GHz cores in this computer and Android devices commonly have 1.2GHz cores it is easy to see the correlation in speed. That said the speed results are pretty close to JAXB, which makes me think that if I want to get to the speeds that I eventually desire that I might have to hand write a SAX parser or something. It would be good to get Simple XML to run in a second on an Android device, but that would mean it would have to double the efficiency that it is currently running at and get those benchmarks into the 300-400ms range. On Sat, Jan 14, 2012 at 11:54 AM, Niall Gallagher <gal...@ya...> wrote: Hi, > >Ill take a look at this. It seems very strange that it would spend 44% of its time on this method. Perhaps the profiler you are using is a sampling profiler, and it simply has not got enough samples to determine where the time is being lost accurately. At any rate I will look in to it. The problem I have had with profiling is that Simple uses a lot of recursive algorithms, so profiling by method visits etc is not very useful. I will try to write some tests to profile individual non-recursive parts separately, perhaps there are some gains to be made, likely with reflection I would think, but also with how the schema is constructed and used internally. > >Thanks, >Niall > > >From: Rangel Reale <ran...@gm...> >To: sim...@li... >Sent: Tuesday, 10 January 2012 5:00 AM >Subject: [Simple-support] Android performance - strange profiling > > > >Hello, > > >I am having performance issues in Android parsing a very large XML file. > > >Profiling trying to find where the bottleneck is, if I undestood correctly, the application is 44% of the time in the function "KXmlParser.getLineNumber", called from PullReader$Start.<init>, but looking at its source code it seems to only read an instance variable an nothing more. > > >Can someone shed a light on this? > > >I don't know it posting images is allowed here, so I uplodaded to an image sharing site: > > >http://imgur.com/C5ocm > > >Thanks, >Rangel > >------------------------------------------------------------------------------ >Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex >infrastructure or vast IT resources to deliver seamless, secure access to >virtual desktops. With this all-in-one solution, easily deploy virtual >desktops for less than the cost of PCs and save 60% on VDI infrastructure >costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox >_______________________________________________ >Simple-support mailing list >Sim...@li... >https://lists.sourceforge.net/lists/listinfo/simple-support > > > >------------------------------------------------------------------------------ >RSA(R) Conference 2012 >Mar 27 - Feb 2 >Save $400 by Jan. 27 >Register now! >http://p.sf.net/sfu/rsa-sfdev2dev2 >_______________________________________________ >Simple-support mailing list >Sim...@li... >https://lists.sourceforge.net/lists/listinfo/simple-support > > |
|
From: Robert M. <rob...@gm...> - 2012-01-14 01:15:31
|
That response is interesting. Is it possible that if the stack is going too deep then that is causing a slowdown? Also, I just found the benchmark code in the simple-xml repository and this is what it displayed for me on my computer: Execution of JAXB Test 1 10000 times: read=1229 ms read-total=1358 write=824 ms write-total=824 ms average-read=0 ms average-write=0 ms Execution of Simple Test 1 10000 times: read=1729 ms read-total=1736 write=1346 ms write-total=1346 ms average-read=0 ms average-write=0 ms Execution of JAXB Test 2 10000 times: read=614 ms read-total=618 write=241 ms write-total=241 ms average-read=0 ms average-write=0 ms Execution of Simple Test 2 10000 times: read=744 ms read-total=747 write=709 ms write-total=709 ms average-read=0 ms average-write=0 ms Execution of JAXB Test 3 10000 times: read=551 ms read-total=554 write=247 ms write-total=247 ms average-read=0 ms average-write=0 ms Execution of Simple Test 3 10000 times: read=719 ms read-total=721 write=699 ms write-total=699 ms average-read=0 ms average-write=0 ms So there is a significant speedup after the first run but it is still a little bit on the slow side. This code also only uses a single core to do the processing so since I have 4 3.3GHz cores in this computer and Android devices commonly have 1.2GHz cores it is easy to see the correlation in speed. That said the speed results are pretty close to JAXB, which makes me think that if I want to get to the speeds that I eventually desire that I might have to hand write a SAX parser or something. It would be good to get Simple XML to run in a second on an Android device, but that would mean it would have to double the efficiency that it is currently running at and get those benchmarks into the 300-400ms range. On Sat, Jan 14, 2012 at 11:54 AM, Niall Gallagher <gal...@ya... > wrote: > Hi, > > Ill take a look at this. It seems very strange that it would spend 44% of > its time on this method. Perhaps the profiler you are using is a sampling > profiler, and it simply has not got enough samples to determine where the > time is being lost accurately. At any rate I will look in to it. The > problem I have had with profiling is that Simple uses a lot of recursive > algorithms, so profiling by method visits etc is not very useful. I will > try to write some tests to profile individual non-recursive parts > separately, perhaps there are some gains to be made, likely with reflection > I would think, but also with how the schema is constructed and used > internally. > > Thanks, > Niall > > *From:* Rangel Reale <ran...@gm...> > *To:* sim...@li... > *Sent:* Tuesday, 10 January 2012 5:00 AM > *Subject:* [Simple-support] Android performance - strange profiling > > Hello, > > I am having performance issues in Android parsing a very large XML file. > > Profiling trying to find where the bottleneck is, if I undestood > correctly, the application is 44% of the time in the function > "KXmlParser.getLineNumber", called from PullReader$Start.<init>, but > looking at its source code it seems to only read an instance variable an > nothing more. > > Can someone shed a light on this? > > I don't know it posting images is allowed here, so I uplodaded to an image > sharing site: > > http://imgur.com/C5ocm > > Thanks, > Rangel > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this all-in-one solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Simple-support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simple-support > > > > > ------------------------------------------------------------------------------ > RSA(R) Conference 2012 > Mar 27 - Feb 2 > Save $400 by Jan. 27 > Register now! > http://p.sf.net/sfu/rsa-sfdev2dev2 > _______________________________________________ > Simple-support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simple-support > > |
|
From: Niall G. <gal...@ya...> - 2012-01-14 00:54:37
|
Hi, Ill take a look at this. It seems very strange that it would spend 44% of its time on this method. Perhaps the profiler you are using is a sampling profiler, and it simply has not got enough samples to determine where the time is being lost accurately. At any rate I will look in to it. The problem I have had with profiling is that Simple uses a lot of recursive algorithms, so profiling by method visits etc is not very useful. I will try to write some tests to profile individual non-recursive parts separately, perhaps there are some gains to be made, likely with reflection I would think, but also with how the schema is constructed and used internally. Thanks, Niall ________________________________ From: Rangel Reale <ran...@gm...> To: sim...@li... Sent: Tuesday, 10 January 2012 5:00 AM Subject: [Simple-support] Android performance - strange profiling Hello, I am having performance issues in Android parsing a very large XML file. Profiling trying to find where the bottleneck is, if I undestood correctly, the application is 44% of the time in the function "KXmlParser.getLineNumber", called from PullReader$Start.<init>, but looking at its source code it seems to only read an instance variable an nothing more. Can someone shed a light on this? I don't know it posting images is allowed here, so I uplodaded to an image sharing site: http://imgur.com/C5ocm Thanks, Rangel ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Simple-support mailing list Sim...@li... https://lists.sourceforge.net/lists/listinfo/simple-support |
|
From: Robert M. <rob...@gm...> - 2012-01-14 00:51:20
|
Sweet! I would absolutely love to see it on github! I actually think that many developers prefer a repository that they can find on Github (or Bitbucket too for that matter) but git is great. On Sat, Jan 14, 2012 at 11:48 AM, Niall Gallagher <gal...@ya... > wrote: > Hi, > > Ya, it should be possible, ill make sure to sync it up soon. I was > actually thinking of hosting it on github, but have to check it out in more > detail. Ill let you know. > > Regards, > Niall > > *From:* Robert Massaioli <rob...@gm...> > *To:* sim...@li... > *Sent:* Saturday, 14 January 2012 9:24 AM > *Subject:* [Simple-support] What ever happened to the git repository? > > Hi Niall and others, > > I was wondering what ever happened to the git repository for Simple XML. > The last time it was updated was 2009 ( > http://simple.git.sourceforge.net/git/gitweb.cgi?p=simple/simple;a=shortlog). > This is unfortunate because I like developing in git rather than SVN. I was > wondering if it would be possible to update that git repo to the latest > version of Simple XML? > > Thanks, > Robert > > > ------------------------------------------------------------------------------ > RSA(R) Conference 2012 > Mar 27 - Feb 2 > Save $400 by Jan. 27 > Register now! > http://p.sf.net/sfu/rsa-sfdev2dev2 > _______________________________________________ > Simple-support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simple-support > > > |
|
From: Niall G. <gal...@ya...> - 2012-01-14 00:48:46
|
Hi, Ya, it should be possible, ill make sure to sync it up soon. I was actually thinking of hosting it on github, but have to check it out in more detail. Ill let you know. Regards, Niall ________________________________ From: Robert Massaioli <rob...@gm...> To: sim...@li... Sent: Saturday, 14 January 2012 9:24 AM Subject: [Simple-support] What ever happened to the git repository? Hi Niall and others, I was wondering what ever happened to the git repository for Simple XML. The last time it was updated was 2009 (http://simple.git.sourceforge.net/git/gitweb.cgi?p=simple/simple;a=shortlog). This is unfortunate because I like developing in git rather than SVN. I was wondering if it would be possible to update that git repo to the latest version of Simple XML? Thanks, Robert ------------------------------------------------------------------------------ RSA(R) Conference 2012 Mar 27 - Feb 2 Save $400 by Jan. 27 Register now! http://p.sf.net/sfu/rsa-sfdev2dev2 _______________________________________________ Simple-support mailing list Sim...@li... https://lists.sourceforge.net/lists/listinfo/simple-support |
|
From: Niall G. <gal...@ya...> - 2012-01-14 00:44:52
|
This is really a question for the underlying parser, Simple uses StAX, DOM, or KXML depending on the platform you are on. Simple does not deal directly with parsing.
________________________________
From: Alexander Poulikakos <ale...@er...>
To: "sim...@li..." <sim...@li...>
Sent: Friday, 13 January 2012 8:27 AM
Subject: [Simple-support] How to parse an xml element with a provided default value from xsd?
Hi
I have an xml-schema (my.xsd) and an xml document (my.xml), as shown below. I have made two classes (Element.java and Elements.java also shown below) to parse the xml-document.
When doing the following, everything works as expected:
==========================================
publicstaticvoidmain(String[] args) throwsThrowable {
Serializer serializer = newPersister();
Elements elements = serializer.read(Elements.class, newFile("my.xml"));
Element element = elements.getElementByName("propB");
System.out.println(element.getValue());
}
==========================================
And “BBB” is printed on the console. However, if I remove the following from my.xml file “value="BBB"” and run the same code I would expect the default value (as defined in my.xsd) to be returned. But instead I get “null”. What am I doing wrong? How do I return the default value (“CCC” in this case)?
I’m quite new to XML, so it is possible that I have missed the concept of xml-schemas…
Regards,
Alex
my.xml
==========================================
<?xmlversion="1.0"encoding="UTF-8"?>
<elements
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="my.xsd">
<elementname="propA"value="AAA"/>
<elementname="propB"value="BBB"/>
</elements>
==========================================
my.xsd
==========================================
<?xmlversion="1.0"?>
<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexTypename="elementType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" default="CCC" />
</xs:complexType>
<xs:elementname="elements">
<xs:complexType>
<xs:sequence>
<xs:element name="element" type="elementType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
==========================================
Elements.java
==========================================
packagesimple;
importorg.simpleframework.xml.Attribute;
importorg.simpleframework.xml.ElementList;
importorg.simpleframework.xml.Root;
importorg.simpleframework.xml.util.Dictionary;
@Root(name="elements")
publicclassElements {
@Attribute(name="noNamespaceSchemaLocation") privateString noNamespaceSchemaLocation;
@ElementList(entry = "element", inline = true)
privateDictionary<Element> elements= newDictionary<Element>();
publicElements(@ElementList(entry = "element", inline = true) Dictionary<Element> resources) {
this.elements= resources;
}
publicElement getElementByName(String name){
returnelements.get(name);
}
}
==========================================
Element.java
packagesimple;
importorg.simpleframework.xml.Attribute;
importorg.simpleframework.xml.Root;
importorg.simpleframework.xml.util.Entry;
@Root
publicclassElement implementsEntry{
@Attribute(name="name") private String name;
@Attribute(name="value", required=false) private String value;
public Element(@Attribute(name="name") String name, @Attribute(name="value", required=false) String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
==========================================
------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Simple-support mailing list
Sim...@li...
https://lists.sourceforge.net/lists/listinfo/simple-support |
|
From: Niall G. <gal...@ya...> - 2012-01-14 00:35:20
|
Hi Jean, I order to answer this question I would need more information, what do you mean by attribute group, is this just a collection of name value pairs that always appear? Thanks, Niall ________________________________ From: Jean Calixte <jlc...@ya...> To: "sim...@li..." <sim...@li...> Sent: Thursday, 5 January 2012 1:41 PM Subject: [Simple-support] Serializing Attribute Groups Hi Everyone, I have a XML schema that I would like to serialize using Simple. The schema contains elements whose attributes are part of attribute groups. Several types contain references to multiple attribute groups. Is there an ideal way to serialize this reference in the class I'm creating? I would like to avoid having to specify each attribute every time the attribute group appears in the schema--this would get messy if an update to the schema changes the attributes in a given group. Thanks! ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Simple-support mailing list Sim...@li... https://lists.sourceforge.net/lists/listinfo/simple-support |
|
From: Robert M. <rob...@gm...> - 2012-01-13 22:24:58
|
Hi Niall and others, I was wondering what ever happened to the git repository for Simple XML. The last time it was updated was 2009 ( http://simple.git.sourceforge.net/git/gitweb.cgi?p=simple/simple;a=shortlog). This is unfortunate because I like developing in git rather than SVN. I was wondering if it would be possible to update that git repo to the latest version of Simple XML? Thanks, Robert |
|
From: Dawid W. <daw...@gm...> - 2012-01-13 07:26:20
|
You really don't need to emit this header as it is exactly the default
every XML processor will have to use. You should emit it if you need
content encoding other than UTF-8; if so, then I would just do:
Writer w = new OutputStreamWriter(outputStream, "UTF-32");
w.write("<?xml encoding=\"UTF-32\" version=\"1.0\" ?>\n");
Persister persister = ...; // initialize to your liking.
persister.write(object, w);
There is also a method accepting an OutputStream and a charset on
Persister, but I don't remember if it emits the prologue (verify if it
does).
Dawid
On Fri, Jan 13, 2012 at 2:05 AM, Sony Ericsson <101...@gm...> wrote:
> Hello
>
> I need to create XML files as below:
>
> <?XML version "1.0"?>
> <fruit>
> <tag1>Apple</tag1>
> <tag2>Orange</tag2>
> </fruit>
>
> I am only having difficulty inserting XML 1.0 Namespace specification
> (highlighted in red). How to do that ? Does SimpleXML support it ?
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Mar 27 - Feb 2
> Save $400 by Jan. 27
> Register now!
> http://p.sf.net/sfu/rsa-sfdev2dev2
> _______________________________________________
> Simple-support mailing list
> Sim...@li...
> https://lists.sourceforge.net/lists/listinfo/simple-support
>
|
|
From: Sony E. <101...@gm...> - 2012-01-13 01:05:14
|
Hello
I need to create XML files as below:
<?XML version "1.0"?>
<fruit>
<tag1>Apple</tag1>
<tag2>Orange</tag2>
</fruit>
I am only having difficulty inserting XML 1.0 Namespace specification
(highlighted in red). How to do that ? Does SimpleXML support it ?
|
|
From: Robert M. <rob...@gm...> - 2012-01-12 21:40:01
|
SimplsXML does not read or follow your XML schema when parsing your XML ust
youe attributes. If it did then it would be getting closer in functionality
to JAXB and this is supposed to ba a simple library. However this is not a
problem as you should see no loss of functionality without using a schema.
To do what you want is simple however. From memory just add a default
clause to the value attribute annotation. Like this:
@Attribute(name = "value", required = false, default = "CCC")
Robert
(Sent from my ASUS Transformer tablet)
On Jan 13, 2012 8:29 AM, "Alexander Poulikakos" <
ale...@er...> wrote:
> Hi
>
> I have an xml-schema (my.xsd) and an xml document (my.xml), as shown
> below. I have made two classes (Element.java and Elements.java also shown
> below) to parse the xml-document.
>
> When doing the following, everything works as expected:
> ==========================================
> *public* *static* *void* main(String[] args) *throws* Throwable {
> Serializer serializer = *new* Persister();
> Elements elements = serializer.read(Elements.*class*, *new*File(
> "my.xml"));
> Element element = elements.getElementByName("propB");
> System.*out*.println(element.getValue());
> }
> ==========================================
>
> And “BBB” is printed on the console. However, if I remove the following
> from my.xml file “value=*"BBB"*” and run the same code I would expect the
> default value (as defined in my.xsd) to be returned. But instead I get
> “null”. What am I doing wrong? How do I return the default value (“*CCC*”
> in this case)?
>
> I’m quite new to XML, so it is possible that I have missed the concept of
> xml-schemas…
>
> Regards,
> Alex
>
> my.xml
> ==========================================
> <?xml version=*"1.0"* encoding=*"UTF-8"*?>
> <elements
> xmlns:xsi=*"http://www.w3.org/2001/XMLSchema-instance"*
> xsi:noNamespaceSchemaLocation=*"my.xsd"*>
>
> <element name=*"propA"* value=*"AAA"* />
> <element name=*"propB"* value=*"BBB"* />
> </elements>
> ==========================================
>
> my.xsd
> ==========================================
> <?xml version=*"1.0"*?>
> <xs:schema xmlns:xs=*"http://www.w3.org/2001/XMLSchema"*>
>
> <xs:complexType name=*"elementType"*>
> <xs:attribute name=*"name"* type=*"xs:string"* use=*"required"* />
> <xs:attribute name=*"value"* type=*"xs:string"* default=*"**CCC**"* />
> </xs:complexType>
>
> <xs:element name=*"elements"*>
> <xs:complexType>
> <xs:sequence>
> <xs:element name=*"element"* type=*"elementType"* maxOccurs=*
> "unbounded"*/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> </xs:schema>
> ==========================================
>
>
> Elements.java
> ==========================================
> *package* simple;
>
> *import* org.simpleframework.xml.Attribute;
> *import* org.simpleframework.xml.ElementList;
> *import* org.simpleframework.xml.Root;
> *import* org.simpleframework.xml.util.Dictionary;
>
> @Root(name="elements")
> *public* *class* Elements {
> @Attribute(name="noNamespaceSchemaLocation") *private* String
> noNamespaceSchemaLocation;
>
> @ElementList(entry = "element", inline = *true*)
> *private* Dictionary<Element> elements = *new*Dictionary<Element>();
>
> *public* Elements(@ElementList(entry = "element", inline = *true*)
> Dictionary<Element> resources) {
> *this*.elements = resources;
> }
>
> *public* Element getElementByName(String name){
> *return* elements.get(name);
> }
> }
> ==========================================
>
> Element.java
> *package* simple;
>
> *import* org.simpleframework.xml.Attribute;
> *import* org.simpleframework.xml.Root;
> *import* org.simpleframework.xml.util.Entry;
>
> @Root
> *public* *class* Element *implements* Entry{
> @Attribute(name="name") *private* String name;
> @Attribute(name="value", required=*false*) *private* String value;
>
> *public* Element(@Attribute(name="name") String name, @Attribute(name=
> "value", required=*false*) String value) {
> *this*.name = name;
> *this*.value = value;
> }
>
> *public* String getName() {
> *return* name;
> }
>
> *public* String getValue() {
> *return* value;
> }
> }
> ==========================================
>
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Mar 27 - Feb 2
> Save $400 by Jan. 27
> Register now!
> http://p.sf.net/sfu/rsa-sfdev2dev2
> _______________________________________________
> Simple-support mailing list
> Sim...@li...
> https://lists.sourceforge.net/lists/listinfo/simple-support
>
>
|
|
From: Alexander P. <ale...@er...> - 2012-01-12 21:27:47
|
Hi
I have an xml-schema (my.xsd) and an xml document (my.xml), as shown below. I have made two classes (Element.java and Elements.java also shown below) to parse the xml-document.
When doing the following, everything works as expected:
==========================================
public static void main(String[] args) throws Throwable {
Serializer serializer = new Persister();
Elements elements = serializer.read(Elements.class, new File("my.xml"));
Element element = elements.getElementByName("propB");
System.out.println(element.getValue());
}
==========================================
And "BBB" is printed on the console. However, if I remove the following from my.xml file "value="BBB"" and run the same code I would expect the default value (as defined in my.xsd) to be returned. But instead I get "null". What am I doing wrong? How do I return the default value ("CCC" in this case)?
I'm quite new to XML, so it is possible that I have missed the concept of xml-schemas...
Regards,
Alex
my.xml
==========================================
<?xml version="1.0" encoding="UTF-8"?>
<elements
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="my.xsd">
<element name="propA" value="AAA" />
<element name="propB" value="BBB" />
</elements>
==========================================
my.xsd
==========================================
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="elementType">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" default="CCC" />
</xs:complexType>
<xs:element name="elements">
<xs:complexType>
<xs:sequence>
<xs:element name="element" type="elementType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
==========================================
Elements.java
==========================================
package simple;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.util.Dictionary;
@Root(name="elements")
public class Elements {
@Attribute(name="noNamespaceSchemaLocation") private String noNamespaceSchemaLocation;
@ElementList(entry = "element", inline = true)
private Dictionary<Element> elements = new Dictionary<Element>();
public Elements(@ElementList(entry = "element", inline = true) Dictionary<Element> resources) {
this.elements = resources;
}
public Element getElementByName(String name){
return elements.get(name);
}
}
==========================================
Element.java
package simple;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.util.Entry;
@Root
public class Element implements Entry{
@Attribute(name="name") private String name;
@Attribute(name="value", required=false) private String value;
public Element(@Attribute(name="name") String name, @Attribute(name="value", required=false) String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
==========================================
|
|
From: Dawid W. <daw...@gm...> - 2012-01-10 17:15:44
|
Thanks for clarification, bubbleguuum. Is there a way to build it in advance or not build the schema then? We have one-time configuration loading code so any caching is not going to make any difference. I also experimented with pull parser replacement and it did provide some speedup, but it was a fraction of the total first-parse initialization cost under .NET. Dawid On Tue, Jan 10, 2012 at 5:20 PM, bubbleguuum <bub...@fr...> wrote: > On 10/01/2012 17:11, Dawid Weiss wrote: >> >> This is not only the case with Android I think. We compile simple-xml >> to .NET via IKVM and the startup time lag is significant too. I think >> it's the sheer amount of classes involved is the problem (initial >> JITting). >> >> I would appreciate if you could share your findings and I would be >> interested in helping to improve it if possible. >> >> Dawid >> > > First parsing is slow as a model of the schema is constructed (and cached). > Subsequent parse should be much faster. > > However I have recently converted a simple-xml parser to straight > XmlPullParser and it was 3-5x faster. > Notably, direct XmlPullParser allocates way less temp objects which in turn > lessen garbage collection a lot. > > At this point, I wouldn't use simple-xml on Android when parsing performance > is important or critical. > |
|
From: bubbleguuum <bub...@fr...> - 2012-01-10 16:20:27
|
On 10/01/2012 17:11, Dawid Weiss wrote: > This is not only the case with Android I think. We compile simple-xml > to .NET via IKVM and the startup time lag is significant too. I think > it's the sheer amount of classes involved is the problem (initial > JITting). > > I would appreciate if you could share your findings and I would be > interested in helping to improve it if possible. > > Dawid > First parsing is slow as a model of the schema is constructed (and cached). Subsequent parse should be much faster. However I have recently converted a simple-xml parser to straight XmlPullParser and it was 3-5x faster. Notably, direct XmlPullParser allocates way less temp objects which in turn lessen garbage collection a lot. At this point, I wouldn't use simple-xml on Android when parsing performance is important or critical. |
|
From: Dawid W. <daw...@gm...> - 2012-01-10 16:11:48
|
This is not only the case with Android I think. We compile simple-xml to .NET via IKVM and the startup time lag is significant too. I think it's the sheer amount of classes involved is the problem (initial JITting). I would appreciate if you could share your findings and I would be interested in helping to improve it if possible. Dawid On Tue, Jan 10, 2012 at 2:00 PM, Robert Massaioli <rob...@gm...> wrote: > I just started doing timing tests on my XML and I discovered that on an ASUS > Transformer (Original) that a 31 line XML file took 2 seconds to load and a > 219 line xml file took around 2.8 seconds to load. Those times are quite > large, it is obviously preferably if we could cut them by about a fifth. I > suspect that the massive amounts of branching contribute to the delay > somewhat but more investigation needs to be done. Niall probably also knows > what the cause of the problems are. > > I will be looking into it soon. I my goal would be to get the entire process > down to 0.5 seconds on an Android device for any file that has 1000 lines or > less. Maybe the reflection code also causes quite a bit of a slowdown. We > shall see. I wonder how much of the reflection calls get cached as the > parsing goes along. > > Robert > > On Tue, Jan 10, 2012 at 5:00 AM, Rangel Reale <ran...@gm...> wrote: >> >> Hello, >> >> I am having performance issues in Android parsing a very large XML file. >> >> Profiling trying to find where the bottleneck is, if I undestood >> correctly, the application is 44% of the time in the function >> "KXmlParser.getLineNumber", called from PullReader$Start.<init>, but looking >> at its source code it seems to only read an instance variable an nothing >> more. >> >> Can someone shed a light on this? >> >> I don't know it posting images is allowed here, so I uplodaded to an image >> sharing site: >> >> http://imgur.com/C5ocm >> >> Thanks, >> Rangel >> >> >> ------------------------------------------------------------------------------ >> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex >> infrastructure or vast IT resources to deliver seamless, secure access to >> virtual desktops. With this all-in-one solution, easily deploy virtual >> desktops for less than the cost of PCs and save 60% on VDI infrastructure >> costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox >> _______________________________________________ >> Simple-support mailing list >> Sim...@li... >> https://lists.sourceforge.net/lists/listinfo/simple-support >> > > > ------------------------------------------------------------------------------ > Write once. Port to many. > Get the SDK and tools to simplify cross-platform app development. Create > new or port existing apps to sell to consumers worldwide. Explore the > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join > http://p.sf.net/sfu/intel-appdev > _______________________________________________ > Simple-support mailing list > Sim...@li... > https://lists.sourceforge.net/lists/listinfo/simple-support > |