- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Fri, 12 Oct 2001 18:28:33 +0100
- To: "Gary Robertson" <gazinyork@hotmail.com>
- CC: xmlschema-dev@w3.org
Hi Gary,
> Yes, sorry, the information that I did not convey was that I wanted
> inheritance _and_ identity constraints: I wanted to have both an
> ObjectType (from which to inherit other types/elements) and a global
> Object element (of type ObjectType) to attach my unique construct to
> (and reference at various points within my root element).
I might be missing something, but if that's what you want, why don't
do you do it? There's nothing to stop you having a global element
declaration that uses a named complex type definition (defined at the
top level of the schema).
<xs:complexType name="ObjectType">
<xs:complexContent>
<xs:extension base="AbstractMooDElementType">
<xs:sequence>
<xs:element ref="Object" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="State" type="StateType"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Object" type="ObjectType">
<xs:unique name="StateNamesUniqueWithinAnObject">
<xs:selector xpath="State"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
As long as all the Object elements that you want to be bound by the
uniqueness constraint have the same type (ObjectType) then this should
work fine, I think.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
Received on Friday, 12 October 2001 13:28:41 UTC