W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2006

Re: xs:choice and xs:sequence question

From: George Cristian Bina <george@oxygenxml.com>
Date: Thu, 12 Jan 2006 10:55:30 +0200
Message-ID: <43C61982.7000700@oxygenxml.com>
To: d_a_carver@yahoo.com
CC: xmlschema-dev@w3.org

Hi Dave,

I doubt any processor validates your schema, the obvious error is that 
you use both ref and type attributes on xs:element, see for instance:

 > <xs:element ref="DescriptionMessage" type="Description"
 > minOccurs="1" maxOccurs="unbounded" />

Then, inside the same content model no matter if you use different 
models like choice or sequence the element declaration must be 
consistent, that means you cannot have something like

<xs:choice>
  <xs:sequence>
   <xs:element name="a" type="Type1"/>
  </xs:sequence>
  <xs:sequence>
   <xs:element name="a" type="Type2"/>
  </xs:sequence>
</xs:choice>

If you still have problems please post a full cut down sample schema.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


David Carver wrote:
> 
> I have the following complexType coded:
> 
>   <xs:complexType name="ProcessingOutcomeMessage">
>       <xs:choice>
>           <xs:sequence>
>               <xs:element ref="DescriptionMessage" minOccurs="0" 
> maxOccurs="unbounded" />
>               <xs:element ref="MessageReasonCode" minOccurs="0" />
>           </xs:sequence>
>           <xs:sequence>
>               <xs:element ref="DescriptionMessage" type="Description" 
> minOccurs="1" maxOccurs="unbounded" />
>               <xs:element ref="MessageReasonCode" 
> type="MessageReasonCode" minOccurs="1" />
>               <xs:element ref="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>
> 
> It validates fine if using Xerces J 2.7.0 or XSV 2.5.  However, 
> Microsoft's XML, XML Spy 2006 SP2, and Oxygen complain about 
> DescriptionMessage being defined twice, even though they are in seperate 
> sequence groups.
> 
> What I want to do is require DescriptionMessage, MeassageReasonCode if 
> there is an ApplicationReasonCode, if there isn't an 
> ApplicationReasonCode, then DescriptionMessage and MessageReasonCode are 
> optional.
> 
> Any help would be appreciated.
> 
> Thanks.
> 
> Dave
> 
> 
Received on Thursday, 12 January 2006 08:52:12 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:52 GMT