RE: Help on XSD for a xml

> 
> The following is my xml for which I require to write the xsd schema
> 
> <type>
> <foo/>
> <bar/>
> </type>
> 
> In the above xml for type element the following conditions 
> should be satisfied 1] Atleast one element either foo or bar 
> must be present 2] foo or bar can have a maximum occurance of 
> one 3] Both foo and bar can be present
> 

You don't say whether you want to allow <bar/><foo/>.

In XSD 1.0, you have to spell it out:

<xs:choice>
  <xs:sequence>
    <xs:element name="foo"/>
    <xs:element name="bar" minOccurs="0"/>
  </xs:sequence>
  <xs:sequence>
    <xs:element name="bar" minOccurs="0"/>
  </xs:sequence>
</xs:choice>

In XSD 1.1 it's simpler to write

  <xs:sequence>
    <xs:element name="foo" minOccurs="0"/>
    <xs:element name="bar" minOccurs="0"/>
  </xs:sequence>
  <xs:assert test="exists(*)"/>

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay 

Received on Friday, 21 August 2009 09:36:39 UTC