 |
 |
 |
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.
|
 | 

|  |
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.
|  |
| |
 |
 |
 |