[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Determinism as seen by relaxMeter and trang
Hi,
Let's consider the following:
grammar{
start = element root{(first?,second)|(second,third?)}
first=element first{empty}
second=element second{empty}
third=element third{empty}
}
This schema is ambiguous because if we validate:
<root><second/></root>
we cannot say which branch of the choice has been used.
However, relaxMeter says "no collision detected" and trang generates a WXS
schema which violates WXS' UPA rule:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"> <xs:element name="root">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element minOccurs="0" ref="first"/>
<xs:element ref="second"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="second"/>
<xs:element minOccurs="0" ref="third"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="first">
<xs:complexType/>
</xs:element>
<xs:element name="second">
<xs:complexType/>
</xs:element>
<xs:element name="third">
<xs:complexType/>
</xs:element>
</xs:schema>
Error message from Xerces:
[Error] cdr4.xsd:2:87: Error: cos-nonambig: (,second) and (,second)
violate the "Unique Particle Attribution" rule.
Is there any way we could help users to fall into this kind of pitfalls?
Thanks
Eric
--
Freelance consulting and training.
http://dyomedea.com/english/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]