- From: Timothy W. Cook <tim@mlhim.org>
- Date: Thu, 19 Mar 2015 14:15:55 -0300
- To: XMLSchema-dev <xmlschema-dev@w3.org>
- Message-ID: <CA+=OU3VjaOvwV7GHNrk2tWCz8=hbLS_KftLEN0STtNDnafaPjA@mail.gmail.com>
I am using oXygen XML Editor 16.1 using SaxonEE set for XML Schema 1.1 for
these tests.
I want to insure that elements in a complexType that is a restriction of a
base complexType, have the same number of enumerations. (Code below)
The sample complexType (bottom of email) should fail this assert:
<xs:assert test="count(//xs:element[@name='id-name']//xs:enumeration) eq
count(//xs:element[@name='issuer']//xs:enumeration)
and
count(//xs:element[@name='issuer']//xs:enumeration) eq
count(//xs:element[@name='assignor']//xs:enumeration)"></xs:assert>
because assignor has three enumerations and the other elements have two.
Whether I put this in the base complexType or the restricted complexType it
still shows the restriction as a valid schema.
If I execute this
count(//xs:element[@name='id-name']//xs:enumeration) eq
count(//xs:element[@name='issuer']//xs:enumeration) and
count(//xs:element[@name='issuer']//xs:enumeration) eq
count(//xs:element[@name='assignor']//xs:enumeration)
in the XPath editor it fails
(returns false)
as expected as well as passes
(returns true)
when all three have two enumerations.
Sample restriction:
<xs:complexType name='mytype' xml:lang='en-US'>
<xs:complexContent>
<xs:restriction base='myBaseType'>
<xs:sequence>
<xs:element maxOccurs='1' minOccurs='1' name='id-name'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='URI'></xs:enumeration>
<xs:enumeration value='ID Number'></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element maxOccurs='1' minOccurs='1' name='issuer'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='Owner'/>
<xs:enumeration value='Owner'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element maxOccurs='1' minOccurs='1' name='assignor'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='Owner'/>
<xs:enumeration value='Owner'/>
<xs:enumeration value='Owner'/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
What am I missing? Can't I establish asserts on a restriction complexType
or do asserts only get evaluated for instance data?
Thanks,
Tim
============================================
Timothy Cook
LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook
MLHIM http://www.mlhim.org
Received on Thursday, 19 March 2015 17:16:28 UTC