- From: <noah_mendelsohn@us.ibm.com>
- Date: Thu, 22 Mar 2007 17:00:47 -0300
- To: Nataraj Ramalingam <Nataraj.Ramalingam@aricent.com>
- Cc: "Pete Cordell" <petexmldev@tech-know-ware.com>, xmlschema-dev@w3.org
This is trickier. In schema 1.0, this schema is not legal. It violates
what's known as the unique particle attribution constraint. Reason: if
you give it the instance <a/><c/>, you would have to look ahead to realize
that the <c/> needs to be matched against the element reference and not
the wildcard. Schemas with such ambiguities or lookahead requirements are
illegal in schema 1.0. Still, I can translate what this schema is trying
to say:
* the <a/> must come first
* a <c/> must come last
* any number of additional things including <a/>'s and </c>'s can come in
the middle.
My point is: order always matters in a sequence the fact that the <any>
tends to accept lots of different things may appear to obscure that, but
in the end, sequences are always ordered.
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
Nataraj Ramalingam <Nataraj.Ramalingam@aricent.com>
Sent by: xmlschema-dev-request@w3.org
03/22/2007 02:48 PM
To: "Pete Cordell" <petexmldev@tech-know-ware.com>
cc: xmlschema-dev@w3.org, (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: Re: Attributes ordering
Does the same hold good, if wildcard is used?
In the same mentioned example, instead of b, let's assume that a wildcard
appears.
=========================================================================
<xs:complexType name="test">
<xs:sequence>
<xs:element name="a" type="xs:string"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="c" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="test" type="test"/>
====================================================================================
In this case, can there be instances of following possibilities,
a,b,c
a,c,b
b,a,c
a,c, b, b where b is an element of some other namespace.
I see that in some of the IETF protocols, only whenever wildcard is used,
the order of elements inside a sequence seems strange. It simply allows
any possibilities, almost breaking the expected sequence behavior.
COuld this be clarified?
Kind Regards,
Nataraj.
"Pete Cordell" <petexmldev@tech-know-ware.com>
Sent by: xmlschema-dev-request@w3.org
03/22/2007 11:27 PM
To
Nataraj Ramalingam/CHE/HSS@HSS
cc
<xmlschema-dev@w3.org>
Subject
Re: Attributes ordering
Original Message From: "Nataraj Ramalingam" <Nataraj.Ramalingam@...>
>. I have one more doubt w.r.t ordering of elements.
> consider the following example.
> =====================================================
> <xs:complexType name="test">
> <xs:sequence>
> <xs:element name="a" type="xs:string"/>
> <xs:element name="b" type="xs:string" minOccurs="0"/>
> <xs:element name="c" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="test" type="test"/>
> =====================================================
>
> Eventhough we use a sequence type here, does this mandate the order of
> elements in the instance to be only a,b,c.
> Or, since "b" is optional ( minOccurs=0 ), can it (should it, by any
means
> )come after "c" in the instance? for example, can the ordering be a,c,b?
As it's a sequence, if b is present, then it must appear between a and c
(i.e. the same order as specified in the definition). (so a, b, c or just
a, c.)
The xs:all construct for the order to be changed, but there are currently
numerous restrictions on that.
HTH,
Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================
*********************** Aricent-Private ***********************
"DISCLAIMER: This message is proprietary to Aricent and is intended solely
for the use of
the individual to whom it is addressed. It may contain privileged or
confidential information and should not be
circulated or used for any purpose other than for what it is intended. If
you have received this message in error,
please notify the originator immediately. If you are not the intended
recipient, you are notified that you are strictly
prohibited from using, copying, altering, or disclosing the contents of
this message. Aricent accepts no responsibility for
loss or damage arising from the use of the information transmitted by this
email including damage from virus."
Received on Thursday, 22 March 2007 20:01:31 UTC