[xsd-users] Problem with abstract objects
Romain Garrigues
romain.garrigues at c-s.cnes.fr
Fri Mar 16 04:29:03 EDT 2007
Hello all,
I'm a beginner in using this xsd library (parse version)
I have a problem with abstract objects.
This is my xsd file :
<xs:complexType name="AbstractTransformationModelType" abstract="true">
<xs:sequence>
<xs:element name="m_name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AffineTransformationModelType">
<xs:complexContent>
<xs:extension base="AbstractTransformationModelType">
<xs:sequence>
<xs:element name="m_a" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProjectiveTransformationModelType">
<xs:complexContent>
<xs:extension base="AbstractTransformationModelType">
<xs:sequence>
<xs:element name="m_b" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CoordinatesTransformationModelType">
<xs:sequence>
<xs:element name="m_transformation" type="AbstractTransformationModelType" />
</xs:sequence>
</xs:complexType>
I have defined an abstract concept (AbstractTransformationModelType), and two classes which are subclasses
of this concept (AffineTransformationModelType and ProjectiveTransformationModelType).
Then, CoordinatesTransformationModelType has an element which is that abstract concept.
Then, i have defined parsers for each complexType.
I don't understand how to define CoordinatesTransformationModel_parser in driver.cxx so i can parse different
xml files.
If i define it with AbstractTransformationModel_parser, i only have m_name of m_transformation.
If i define it with AffineTransformationModel_parser, it will be ok if there is an affine transformation
in xml file, but won't be ok if there is a projective transformation...
I just want a polymorphic comportment in fact...
The objective is to have the same code to parse different xml files, and i don't know how to do when
there are abstract type.
Best Regards.
Romain Garrigues.
More information about the xsd-users
mailing list