- From: G. Ken Holman <gkholman@CraneSoftwrights.com>
- Date: Sat, 02 May 2009 22:20:29 -0400
- To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
At 2009-04-30 22:06 +1000, Paul Steckler wrote:
> I want to create an element, say "Foo" that contains a sequence
> of elements which
>have different tags, say "Bar" and "Glob". So these would be legal:
>
> <Foo><Glob/><Bar/></Foo>
>
> <Foo><Bar/><Glob/></Foo>
>
> <Foo><Bar/><Glob/><Bar/></Foo>
>
>In the complexType for Foo elements, can you specify that it
>contains a sequence
>of alternative elements, in arbitrary order?
Yes, it could be called an "unbounded choice".
Unless, perhaps, by "alternative" you mean that they alternate from
one to the other? I'm guessing not.
>Or do I have to create a wrapper element
>for the alternatives and place them in a union?
Nope.
I hope the example below helps.
. . . . . . . Ken
t:\ftemp>type steckler1.xml
<Foo><Glob/><Bar/></Foo>
t:\ftemp>type steckler2.xml
<Foo><Bar/><Glob/></Foo>
t:\ftemp>type steckler3.xml
<Foo><Bar/><Glob/><Bar/></Foo>
t:\ftemp>type steckler4-bad.xml
<Foo><Bar/><Baz/></Foo>
t:\ftemp>type steckler.xsd
<?xml version="1.0" encoding="US-ASCII"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Paul's example
</xsd:documentation>
</xsd:annotation>
<xsd:element name="Foo">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="Bar"/>
<xsd:element name="Glob"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
t:\ftemp>w3cschema-saxon steckler.xsd steckler1.xml
No validation errors.
t:\ftemp>w3cschema-saxon steckler.xsd steckler2.xml
No validation errors.
t:\ftemp>w3cschema-saxon steckler.xsd steckler3.xml
No validation errors.
t:\ftemp>w3cschema-saxon steckler.xsd steckler4-bad.xml
Validation error on line 1 column 18 of steckler4-bad.xml:
In content of element <Foo>: The content model does not allow
element <Baz> to appear
here. Expected one of: Bar, Glob (See
http://www.w3.org/TR/xmlschema-1/#cvc-complex-type clause 2.4)
No validation errors.
t:\ftemp>
--
XQuery/XSLT/XSL-FO hands-on training - Los Angeles, USA 2009-06-08
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman mailto:gkholman@CraneSoftwrights.com
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/x/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Received on Sunday, 3 May 2009 02:22:37 UTC