Hi,
js wrote:
> trying to create CodeType and child Code classes from this xml with Codes
> in alphabetical order based upon <codeValue>
You can't. That's not what a FieldKeySorter is for. Such an implementation
defines the sequence of the fields (incl. inherited) of a specific type i.e.
you can "sort" "codeValue" and "description" for the members of Code.class.
However, a SortableFieldKeySorter requires the defined sequence for *all*
fields of the type, otherwise it complains with a StreamException.
>
> <codeType>
> <codeTypeValue>AddressType</codeTypeValue>
>
> -
>
<file:///C:/myFiles/sustain/documentation/conversion/newDawn/xmlCodeFiles/codes/AddressType.xml#>
> <codes>
> -
>
<file:///C:/myFiles/sustain/documentation/conversion/newDawn/xmlCodeFiles/codes/AddressType.xml#>
> <code>
> <codeValue>B</codeValue>
> <description>Business</description>
> </code>
>
> -
>
<file:///C:/myFiles/sustain/documentation/conversion/newDawn/xmlCodeFiles/codes/AddressType.xml#>
> <code>
> <codeValue>CON</codeValue>
> <description>Confidential Address</description>
> </code>
> </codes>
> </codeType>
>
>
>
> CodeType codeType = new CodeType();
> XStream xstream = new XStream(new StaxDriver());
> SortableFieldKeySorter sorter = new SortableFieldKeySorter();
> sorter.registerFieldOrder(Code.class, new String[] { "codeValue"
> }); xstream = new XStream(new PureJavaReflectionProvider(new
> FieldDictionary(sorter)));
>
> try {
> xstream.alias("codeType", CodeType.class);
> xstream.alias("code", Code.class);
> codeType = (CodeType)xstream.fromXML(xml.getInputStream());
> }
> catch { ... }
>
> jars:
> xstream-1.4.7.jar
> xpp3_min-1.1.4c.jar
> xmlpull-1.1.3.1.jar
>
> if i comment out:
> xstream = new XStream(new PureJavaReflectionProvider(new
> FieldDictionary(sorter)));
>
> it works.
>
> otherwise, all is null in CodeType
>
> whats the most basic way to enable sorting in Xstream?
Apart from the sequence of fields, XStream does not sort its output. You may
apply a stylesheet to perform the sorting in a post-processing step:
http://xstream.codehaus.org/manual-tweaking-output.html#Procesing_XSLT
Cheers,
Jörg
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email