Subject:Fixed order of attributes Author:Ron van der Sterren Date:26 Oct 2006 03:20 AM
Hi,
I want to created a fixed order of attributes in my XSD. Now the application (SAP XI) sending an XML message based on the XSD is changing this order.
XSD:
<xsd:element name="PayloadEntry">
<xsd:complexType>
<xsd:attribute name="format" type="xsd:string"
use="required" />
<xsd:attribute name="operation" type="xsd:string"
use="required" />
<xsd:attribute name="type" type="xsd:string"
use="required" />
</xsd:complexType>
</xsd:element>
In the message the order of the attributes of element PayloadEntry is changed in format, type, operation. (in External Definition it is format, operation, type).
I tried to create an attributegroup like this
<xsd:element name="PayloadEntry">
<xsd:complexType>
<xsd:attributeGroup>
<xsd:attribute name="format" type="xsd:string"
use="required" />
<xsd:attribute name="operation" type="xsd:string"
use="required" />
<xsd:attribute name="type" type="xsd:string"
use="required" />
</xsd:attributeGroup>
</xsd:complexType>
</xsd:element>
then I get the error
<attributeGroup> must have a name or a ref attribute - declaration ignored
Subject:Re: Fixed order of attributes Author:(Deleted User) Date:26 Oct 2006 04:45 AM
Hi Ron,
what you are asking is not possible: XML mandates that attributes are
not ordered, so XMLSchema doesn't have a construct to specify it.
As for the error you are getting, an xsd:attributeGroup must be
declared at the top level of the schema with a "name" attribute that
give him a name; inside the xssd:element you can then reference it by
using an xsd:attributeGroup construct using the "ref" attribute
having the same value of that "name" attribute.