[xsd-users] Issue with maintaining order
Babinskas, Albert
albert.babinskas at imagingsciences.com
Wed Feb 18 15:12:51 EST 2015
HI,
I have issue with order of my elements.
I have XSD that looks like this:
<xs:complexType name="annotations_t">
<xs:sequence>
<xs:element name="pixelWidth" type="xs:int"/>
<xs:element name="pixelHeight" type="xs:int"/>
<xs:element name="imageTitle" type="xs:string" minOccurs="0"/>
<xs:element name="annotationList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="tns:ellipse"/>
<xs:element ref="tns:line"/>
<xs:element ref="tns:rectangle"/>
...
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Where <tns:line> looks like this:
<xs:complexType name="line_t">
<xs:complexContent>
<xs:sequence>
<xs:element name="point1" type="tns:coordinate_t" minOccurs="0"/>
<xs:element name="point1Type" type="tns:lineCapType_t" minOccurs="0"/>
<xs:element name="point1Size" type="tns:lineCapSize_t" minOccurs="0"/>
<xs:element name="point2" type="tns:coordinate_t" minOccurs="0"/>
<xs:element name="point2Type" type="tns:lineCapType_t" minOccurs="0"/>
<xs:element name="point2Size" type="tns:lineCapSize_t" minOccurs="0"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>
Codesynthesis provides me with
AnnotationList.line()
AnnotationList.Polygon()
AnnotationList.Ellipse()
But the order is not preserved.
If I have: Line, 2 Polygons, and another Line. It will be serialized as 2 Lines, and 2 Polygons.
Is there a way to preserve the order in which I serialize?
Secondly If I am reading xml that has mixed lines and polygons, all my lines, and polygons will be in their distinct lists, and not in 1 main list where I could check type. Again same question is there a way to preserve order? Is there a way after XML is parsed into XSD objects, to access DOM structure of that Object? For example if I would be able to access annotationList Document, or have an iterator over the annotationList.
Thank you!
-Albert
Imaging Sciences International
More information about the xsd-users
mailing list