- From: Costello, Roger L. <costello@mitre.org>
- Date: Tue, 30 Jun 2009 09:01:23 -0400
- To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Hi Folks,
Suppose one <assert> element says "The value of <Publisher> must be a string no longer than 140 characters."
Another <assert> element says "The value of <Publisher> must be a string no longer than 70 characters."
Which <assert> element wins?
Example: I have an <assert> element on the root element (<BarnesAndNoble>) which says "The value of each <Publisher> element must be a string no longer than 140 characters." I have another <assert> element directly on the <Publisher> element which says: "The value of <Publisher> must be a string no longer than 70 characters." Is <Publisher> constrained to a length of 140 characters or 70 characters?
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="Publisher">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:assert test="not(string-length(.) gt 70)" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Book">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" type="xs:string"/>
<xs:element name="Author" type="xs:string"/>
<xs:element name="Date" type="xs:gYear"/>
<xs:element name="ISBN" type="xs:string"/>
<xs:element ref="Publisher" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BarnesAndNoble">
<xs:complexType>
<xs:sequence>
<xs:element ref="Book" maxOccurs="unbounded" />
</xs:sequence>
<xs:assert test="not(Book[string-length(Publisher) gt 140])" />
</xs:complexType>
</xs:element>
</xs:schema>
/Roger
Received on Tuesday, 30 June 2009 13:02:03 UTC