- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Wed, 10 Oct 2001 16:53:42 +0200
- To: Gary Robertson <gazinyork@hotmail.com>
- Cc: xmlschema-dev@w3.org
Hi,
Gary Robertson wrote:
> I want to have a type "Object" that contains multiple "State" elements.
> I want the state names to be unique within each object instance but
> not globally. This is an example of a very common real world
> requirement.
Which means, if I get it right:
<root>
<object>
<State name="foo"/>
<State name="bar"/>
</object>
<object>
<State name="foo"/>
</object>
</root>
> Praise to Microsoft's MSXML4 beta 2 for letting me
> achieve my aims like so:
>
> <xs:complexType name="ObjectType">
> <xs:complexContent>
> <xs:extension base="AbstractElementType">
> <xs:sequence>
> <xs:element name="State" type="StateType" minOccurs="0"
> maxOccurs="unbounded">
This is invalid! "xs:unique" should come after xs:sequence as a direct
child of xs:element.
> <xs:unique name="StateNamesUniqueWithinAnObject">
> <xs:selector xpath="../State"/>
> <xs:field xpath="@name"/>
> </xs:unique>
> </xs:element>
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
> However, note use of parent node syntax (..) in the selector xpath.
> Is this illegal?
Yes.
> If so, how do I acheive my aim legally?
By defining the xs:unique in the definition of your object element:
<xs:element name="object">
.../...
<xs:unique name="singleStatePerObject">
<xs:selector xpath="State"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
> I intend to
> declare object instances at multiple points and levels in my schema
> and it would be extremely onerous and poor software engineering
> practice to have to attach a unique to every instance.
I am not sure I understand what you mean here, but -good or bad software
engineering practice- it's the way it needs to be defined by W3C XML
Schema !
Hope this helps
Eric
>
> --
> Gaz
>
--
Rendez-vous à Paris pour une visite guidee de la nebuleuse XML.
http://dyomedea.com/formation/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
http://xsltunit.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
Received on Wednesday, 10 October 2001 10:53:20 UTC