OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XML-Schema Help

[ Lists Home | Date Index | Thread Index ]

> My question is this, in a Schema is it possible to have an element be
> required only if its parent element exists.
>
> For example in the code below if timeframetype exists then either
> earliestdate or latestdate would be required, 1 or the other but both are
> not required.
>
> <xs:complexType name="timeframeType">
> <xs:sequence>
> <xs:element ref="description"/>
> <xs:element ref="earliestdate" minOccurs="0"/>
> <xs:element ref="latestdate" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
>

There are a lot of different ways you could do this, but here's a go:

<xs:complexType name="timeframeType">
  <xs:sequence>
    <xs:element ref="description"/>
    <xs:choice>
      <xs:element ref="earliestdate" minOccurs="0"/>
      <xs:element ref="latestdate" minOccurs="0"/>
    </xs:choice>

    <xs:choice>
      <xs:element ref="earliestdate" minOccurs="0"/>
    </xs:choice>

    <xs:choice>
      <xs:element ref="latestdate" minOccurs="0"/>
    </xs:choice>
  </xs:sequence>
</xs:complexType>

you could refactor this into groups for easier reading...

-BKN





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS