[xsd-users] Attribute named "type" generates post_xxx() skeleton
code with invalid return data type
Edward Brabant
ebrabant at ramlabs.com
Wed Feb 5 21:36:49 EST 2014
The XSD definition of the element iwhich contains the attribute named "type":
<xs:element name='domainfinder'>
<xs:complexType>
<xs:attribute name='type' use='required'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='filesystem'/>
<xs:enumeration value='eventchannel'/>
<xs:enumeration value='application'/>
<xs:enumeration value='servicename'/>
<xs:enumeration value='servicetype'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='name' type='xs:string' use='optional'/>
</xs:complexType>
</xs:element>
The corresponding entry in the XSD map file is:
type std::string;
This causes XSD version 3.3.0 (on CentOS 6.3) to generate skeleton code with the signature:
virtual void post_type ();
The return type should be std::string, per the entry in the XSD map file above, but is void instead.
Note that if I change the attribute name to something other than "type", e.g. "types", the skeleton code is generated correctly, i.e. the return type is std::string.
Regards,
Ed Brabant
Contractor
JTRS Test Application (JTAP) team, JTRS Test and Evaluation Lab (JTEL),
Joint Tactical Networking Center (JTNC) Technical Directorate (TD),
Space and Naval Warfare (SPAWAR) Systems Command (SSC) Pacific
More information about the xsd-users
mailing list