[XMLSCHEMA-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: conditional schemas

From: Erik Beijnoff <erik@addsystems.com>
Date: Wed, 28 Nov 2001 13:53:19 +0100
To: "'Eddie Robertsson'" <eddie@allette.com.au>
Cc: <lieve.laporte@uz.kuleuven.ac.be>, <xmlschema-dev@w3.org>
Message-ID: <914A89E9F99D2C4B8E14FB8CC083F9BC7399@addex001.addsystems.com>
Re: conditional schemas
>> <actions name="access">
>>     ...
>>     ==> the document has to contain tag <tag>
>>     ...
>> </actions>
>>
>> <actions name="settings">
>>     ...
>>     ==> the document may not contain tag <tag>
>>     ...
>> </actions>
>>
>> In this case, can I express in the schema that if the value
>of name is
>> access, the <tag> should be present, and if the value of
>name is settings,
>> it shouldn't?
>
>Unfortunately you can't do this with W3C XML Schema. RELAX-NG
>can do this and
>the other alternative is to use W3C XML Schema with embedded
>Schematron rules.
>See my previous post [1] for an example of how to use embedded
>Schematron rules.
>

Wouldn't it be possible to express this with something on the form:

<xs:element name="testelement">
  <xs:complexType>
    <xs:choice>

      <xs:element name="actions">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="tag"/>
          </xs:sequence>
            <xs:attribute name="name" use="required" fixed="access"/>
        </xs:complexType>
      </xs:element>

      <xs:element name="actions">
        <xs:complexType>
          <xs:attribute name="name" use="required" fixed="settings"/>
        </xs:complexType>
      </xs:element>

    </xs:choice>
  </xs:complexType>
</xs:element>

This is, of curse only valid under the condition that attribute "name" only
can have the values "access" ot "settings". And if you feel uncomfortable
with defining actions twice, make  the element declaration references two
global elements, which extends a common "actions" base type.

Best regards

Erik Beijnoff
Systems development

erik.beijnoff@addsystems.com
erik@beijnoff.com
Received on Wednesday, 28 November 2001 07:56:49 GMT

Subscribe to the Stylus Scoop newsletter for helpful XML tips and tutorials.
Email
First Name
Last Name
Company

Download Stylus Studio 6 XML Enterprise Edition

Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.