Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: How to choice the attribute group for element?

From: "Pete Cordell" <petexmldev@---------.--->
To: "bacoo_zh" <bacoo_zh@---.--->, "xmlschema-dev" <xmlschema-dev@--.--->
Date: 6/9/2009 8:33:00 AM
I'm afraid that currently you can't do what you want to do in XSD 1.0.  The 
still being developed XSD 1.1 will allow you to do what you want to do via 
xs:assert elements.

With regard to your example schema, this is not valid because it violates 
XSD's Unique Particle Attribution (UPA) Constraint.  In other words, it 
defines a schema such that when parsing an XML instance and encountering an 
element called "x" it is not possible for the parser to tell whether it 
refers to the first "x" definition or the second "x" definition.

The Relax NG schema language doesn't impose such constraints on a parser and 
I believe the equivalent form of your schema expressed in Relax NG would be 
valid.

HTH,

Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using XML C++
data binding to convert XSD schemas to C++ classes.
Visit http://www.xmldatabinding.net or http://www.xml2cpp.com
for more info
----- Original Message ----- 
From: "bacoo_zh" <bacoo_zh@1...>
To: "xmlschema-dev" <xmlschema-dev@w...>
Sent: Saturday, June 06, 2009 5:55 PM
Subject: How to choice the attribute group for element?


Hi,
This is my first time to have a discussion here. I'm new to XML Schema.
Now I want to define an element with three attributes: A, B and C. However, 
I don't want the three attributes occur simultaneously.
I need A and B occur simultaneously, or only C occurs singlely.

<x A="a" B="b"/>
or
<x C="c">

How to do this?
I use 'choic' to implement this as follows, but it don't work.
<xs:choice maxOccurs="unbounded">
      <xs:element name="x"  type="xs:string">
<xs:complexType>
<xs:attribute name="A" type="xs:string"/>
<xs:attribute name="B" type="xs:string"/>
</xs:complexType>
      </xs:element>
      <xs:element name="x"  type="xs:string">
<xs:complexType>
<xs:attribute name="C" type="xs:string"/>
</xs:complexType>
      </xs:element>
<£¯xs:choice>
By the way, after goooooogling, I found that the code above is right in the 
old XML Schema criteria, but nowadays I can't use it any more and the XMLSpy 
software will report errors with the code above. Is there anyone that know 
about the related information?
It has bothered me several days. I'll appreciate your help sincerely. 





transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent