Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
XmlSchema 1.4.4, XmlSchema 1.4.6, XmlSchema 1.4.7
Description
GIven this original markup:
<xs:restriction base="xs:anyType">
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="0"/>
</xs:sequence>
<xs:attribute name="lang" use="optional"/>
</xs:restriction>
After parsing and serializing the schema with no intervening modification, the serialized result is:
<xs:restriction base="tns:SimpleLiteral">
<xs:attribute name="lang" use="prohibited"/>
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:restriction>
Note the xs:attribute before the xs:simpleType.
The bug appears to a simple coding error in org.apache.ws.commons.schema.XmlSchemaSerializer.serializeSimpleContentRestriction(Document, XmlSchemaSimpleContentRestriction, XmlSchema) in that it's putting the attributes out before the inline simple type.
I can provide a simple unit test that demonstrates the failure if needed.