- From: David Carver <d_a_carver@yahoo.com>
- Date: Thu, 12 Jan 2006 09:16:42 -0500
- To: xmlschema-dev@w3.org
- CC: George Cristian Bina <george@oxygenxml.com>
George you are correct, after re-running some tests yesterday none of the processors validated it, not sure what happened on the first run with Xerces and XSV. Anyway, I did finally manage to get working what I wanted by doing the following: This works: <xs:complexType name="ProcessingOutcomeMessage"> <xs:choice> <xs:sequence> <xs:element name="ApplicationReasonCode" type="ApplicationReasonCode" /> <xs:element name="Description" type="Description" maxOccurs="unbounded" /> <xs:element name="MessageReasonCode" type="MessageReasonCode" /> </xs:sequence> <xs:sequence> <xs:element name="Description" type="Description" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="MessageReasonCode" type="MessageReasonCode" minOccurs="0" /> </xs:sequence> </xs:choice> </xs:complexType> The below doesn't work: <xs:complexType name="ProcessingOutcomeMessage"> <xs:choice> <xs:sequence> <xs:element name="Description" type="Description" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="MessageReasonCode" type="Description" minOccurs="0" /> </xs:sequence> <xs:sequence> <xs:element name="Description" type="Description" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="MessageReasonCode" type="MessageReasonCode" minOccurs="1" /> <xs:element name="ApplicationReasonCode" type="ApplicationReasonCode" minOccurs="1"> <xs:annotation> <xs:documentation source="http://www.starstandard.org">Contains a software specific application reason code.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:choice> </xs:complexType> The only way to get this to work was to have ApplicationReasonCode as the ApplicationReasonCode as the first element in the first sequence. If it was included after MessageReasonCode in the first sequence, every parser would complain about not being able to determine how to handle the Description element. I would have thought that it wouldn't have mattered what order the elements were setup in the sequence but apparently in this case it does. It would have been helpful if the specs were a bit clearer on exactly what has to occur in this type of situation. Anyways, it now validates against Xerces, XSV, XML Spy, MSXML and Oxygen.
Received on Thursday, 12 January 2006 15:22:46 UTC