- From: Stefan Wachter <Stefan.Wachter@gmx.de>
- Date: Tue, 24 Sep 2002 10:24:36 +0200 (MEST)
- To: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>;xmlschema-dev@w3.org
Maybe you can just use an all-group.
--Stefan
>
> At 2002-09-23 07:16, Maggiulli, Patrick G (Patrick) wrote:
>
> >Greetings,
> >
> >I am seeking clarification on Unique Particle Attribution
> >as it applies to an XML Schema specification from ECMA for their
> >CSTA phase 3 protocol. ... When
> >invoked, the Xerces application reports the following error:
> >
> >Error...
> > Message: 'callID and 'callID" violate the Unique Particle
> > Attribution rule.
> >
> >On further investigation I concluded that the following complexType
> >definition in ECMA's XML Schema for call-connection-identifiers may
> >be the root cause of the problem:
> >
> > <xsd:complexType name="ConnectionID">
> > <xsd:choice>
> > <xsd:element name="callID" type="csta:CallID"/>
> > <xsd:element name="deviceID" type="csta:LocalDeviceID"/>
> > <xsd:sequence>
> > <xsd:element name="callID" type="csta:CallID"/>
> > <xsd:element name="deviceID" type="csta:LocalDeviceID"/>
> > </xsd:sequence>
> > </xsd:choice>
> > </xsd:complexType>
> >
> >I've some questions to ask, and I would be grateful to each of you
> >if you could help me find answers to them. My questions are:
> >
> >1) Is the complexType above in violation of the Unique Particle
> >Attribution Rule, and if so, why?
>
> Yes, it does. The UPA requires, in effect, that if someone
> reads out to you a sequence of generic identifiers, then as
> soon as they read one, you can point to the specific particle
> in the content model which that generic identifier matches.
>
> If the first element in the sequence is a 'callID' element, then
> it's not clear whether it should match the particle created
> >from the first child of the choice, or the particle created from
> the first child of the third child of the choice. This would
> be crucial if the two definitions of callID had different
> appinfo: the schema processor needs to know which appinfo to
> supply.
>
> >Appendix H, Analysis of the Unique Particle Attribution
> >Constraint (non-normative), in XML Schema Part 1: Structures,
> >identifies reasons for Unique Particle Attribution Rule
> >violations but I need to identify the exact rule that is
> >being violated, and I am having difficulty doing so.
>
> Hmm. The closest Appendix H comes is "A content model will violate
> the unique attribution constraint if it contains two particles which
> overlap and which ... are both in the {particles} of a choice" group.
> The second callID particle is only indirectly in the choice group,
> so I understand your confusion.
>
> The exact rule being violated is the Unique Particle Attribution
> Constraint itself. In the complex type definition as shown,
> it is not the case that "the particle ... with which to attempt
> to validate each [element information] item in the sequence in
> turn can be uniquely determined ... without any information
> about the items in the remainder of the sequence."
>
> >2) Is there a way to express a complexType for ConnectionID
> >above that allows (callID OR deviceID OR (callID AND deviceID))?
>
> Yes. Here is one way, that corresponds to (deviceID OR (callID AND
> OPTIONALLY deviceID)).
>
> <xsd:complexType name="ConnectionID">
> <xsd:choice>
> <xsd:element name="callID" type="csta:CallID"/>
> <xsd:element name="deviceID" type="csta:LocalDeviceID"/>
> <xsd:sequence>
> <xsd:element name="callID" type="csta:CallID"/>
> <xsd:element name="deviceID" type="csta:LocalDeviceID"/>
> </xsd:sequence>
> </xsd:choice>
> </xsd:complexType>
>
> I hope this helps.
>
> -C. M. Sperberg-McQueen
> World Wide Web Consortium
>
Received on Tuesday, 24 September 2002 04:25:25 UTC