Oxygen XML Editor
 
[XML-DEV Mailing List Archive Home] [By Thread] [By Date]

RE: [xml-dev] XML Schema and the Unique Particle Attribution (UPA) rule


  • From: Michael Kay <mike@...>
  • To: 'Azariah Jeyakumar' <ajeyakumar@...>, xml-dev@...
  • Date: Fri, 10 Aug 2007 22:31:45 +0100

This is a feature often requested in XML Schema called "cooccurrence constraints". It can't be done in XML Schema 1.0, unless you are prepared to change your <type> element into an xsi:type attribute. It will be possible in XML Schema 1.1, but that's still in the future.
 
Michael Kay
http://www.saxonica.com/
 


From: Azariah Jeyakumar [mailto:ajeyakumar@...]
Sent: 10 August 2007 22:22
To: xml-dev@...
Subject: [xml-dev] XML Schema and the Unique Particle Attribution (UPA) rule

Hi,

 

I would like to create an XML Schema for the content model like:

 

<M>

  <type>type1</type>

  <… several elements specific to type1 …>

</M>

 

<M>

  <type>type2</type>

  <… several elements specific to type2 …>

</M>

 

Etc

 

I was playing with a XML Schema like:

 

  <xs:complexType name="upa_test">

    <xs:choice>

      <xs:sequence>

        <xs:element name="type" type="xs:string" fixed="type1" />

        <xs:element name="B" type="xs:string"/>

      </xs:sequence>

      <xs:sequence>

        <xs:element name="type" type="xs:string" fixed="type2" />

        <xs:element name="C" type="xs:string"/>

      </xs:sequence>

    </xs:choice>

  </xs:complexType>

 

But the processor I am using rejects this Schema saying it violates the UPA rule. Shouldn’t the processor be able to uniquely determine the particle based on the element’s type and/or value? Can someone suggest an alternate XML Schema that would not violate the UPA rule?

 

Changing the content model to introduce an intermediate level for <type1>, <type2>, etc would work, but I can’t make this change as it would break backward compatibility.

 

Thanks

Azariah

 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
 
© 2002-2008 SyncRO Soft Ltd. All rights reserved. | Sitemap | Privacy Policy
This website was created & generated with <oXygen/> XML Editor
Keywords