- From: Tom Moog <tmoog@sarvega.com>
- Date: Fri, 07 Jan 2005 08:25:34 -0600
- To: Michael Kay <mike@saxonica.com>
- CC: xmlschema-dev@w3.org
- Message-ID: <41DE9BDE.1090808@sarvega.com>
So which do you consider the appropriate check ? The "loose" UPA or the "strict" UPA ? <xs:choice> <xs:element ref="tns:A" /> <xs:element ref="tns:A" /> </xs:choice> Michael Kay wrote: > This is actually one of those examples where the Thompson/Tobin > algorithm used by XSV and Saxon doesn't give a UPA error, because the > two particles for element "error" both refer to the same element > declaration. The Thompson/Tobin algorithm lets a content model through > if the element declaration for each element can be determined > unambiguously, even if the particle can't. > > I think the following content model is equivalent, and passes the > stricter version of the UPA test: > > <xsd:element name="systemProvider"> > <xsd:complexType> > <xsd:sequence> > <xsd:sequence minOccurs="0" maxOccurs="unbounded"> > <xsd:element ref="admin"/> > <xsd:element ref="error" minOccurs="0"/> > </xsd:sequence> > <xsd:sequence minOccurs="0"> > <xsd:element ref="deviceTypeInfo" maxOccurs="unbounded"/> > <xsd:element ref="error" minOccurs="0"/> > </xsd:sequence> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > Michael Kay > http://www.saxonica.com/ > > ------------------------------------------------------------------------ > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Vinotha > Suntharalingam > Sent: 07 January 2005 05:33 > To: xmlschema-dev@w3.org > Subject: Need help with Unique Particle Attribution Rule > > Hi, > > I'm trying to parse an xsd with Xerces and I'm running into UPA > rule violation problems. Attached below is relevant sections in > the xsd where the problem is encountered. I'm finding it difficult > to define the 'systemProvider' element in such way it doesn't > violate this rule. Could someone please assist me on how it can be > done? > > (I tried to follow the name, first-name, last-name example to fix > the problem, but this particular element definition seems to be a > bit more complicated. Any help would be much appreciated.) > > <xsd:element name="systemProvider"> > <xsd:complexType> > <xsd:sequence> > <xsd:sequence minOccurs="0" maxOccurs="unbounded"> > <xsd:element ref="admin"/> > <xsd:element ref="error" minOccurs="0"/> > </xsd:sequence> > <xsd:element ref="deviceTypeInfo" minOccurs="0" > maxOccurs="unbounded"/> > <xsd:element ref="error" minOccurs="0"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > <!-- The following elements are referenced in the above piece of > code --> > > <xsd:element name="deviceTypeInfo"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="deviceType"/> > <xsd:element ref="category"/> > <xsd:element ref="maxPorts"/> > <xsd:element ref="protocolSupported" maxOccurs="unbounded"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > <xsd:element name="protocolSupported"> > <xsd:complexType> > <xsd:simpleContent> > <xsd:extension base="xsd:string"> > <xsd:attribute name="default" use="optional"> > <xsd:simpleType> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="true"/> > </xsd:restriction> > </xsd:simpleType> > </xsd:attribute> > </xsd:extension> > </xsd:simpleContent> > </xsd:complexType> > </xsd:element> > > <xsd:element name="error"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="id"/> > <xsd:element ref="summary"/> > <xsd:element ref="detail" minOccurs="0"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <xsd:element name="admin"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="userId"/> > <xsd:element ref="password" minOccurs="0"/> > <xsd:element ref="userName" minOccurs="0"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > <xsd:element name="summary" type="xsd:string"/> > <xsd:element name="id" type="xsd:string"/> > <xsd:element name="detail" type="xsd:string"/> > <xsd:element name="userId" type="xsd:string"/> > <xsd:element name="password" type="xsd:string"/> > <xsd:element name="userName" type="xsd:string"/> > <xsd:element name="deviceType" type="xsd:string"/> > <xsd:element name="category" type="xsd:string"/> > <xsd:element name="maxPorts" type="xsd:string"/> > > > Thank you in advance. > Vino >
Received on Friday, 7 January 2005 14:25:38 UTC