- From: <noah_mendelsohn@us.ibm.com>
- Date: Tue, 13 Mar 2007 10:40:08 -0400
- To: "Swayam Vemuri -X \(swvemuri - WIPRO at Cisco\)" <swvemuri@cisco.com>
- Cc: "Michael Kay" <mike@saxonica.com>, xmlschema-dev@w3.org
- Message-ID: <OF352EBA15.A9DA28F4-ON8525729D.004FC9E0-8525729D.00509516@lotus.com>
Swayam Vemuri writes:
> The enumerations, the values are not in alphabetical order, I
> thought they appear
> As it is when I instantiate the schema Or it will come in sorted order ?
I'm afraid I'm not quite understanding what you mean, but I wonder whether
you are misunderstanding what enumerations are for. Have you by any
chance looked at the discussion of enumerations in the XML Schema Primer
[1]?
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AK"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="AR"/>
<!-- and so on ... -->
</xsd:restriction>
</xsd:simpleType>
If you then have an element declaration of that type:
<xsd:element name="myState" type="USState>
Then your XML document will validate if it has a single element like this:
<myState>AL</myState>
Alphabetical order is not an issue. In the original declaration, you can
list the enumeration in any order you like, but the specification makes
clear that what you get is a set, not an ordered list, so this would be
the exact same type:
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AR"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="AK"/>
</xsd:restriction>
</xsd:simpleType>
Quoting from the Recommentation [2]:
"[Definition:] enumeration constrains the ·value space· to a specified
set of values.
enumeration does not impose an order relation on the ·value space· it
creates; the value of the ·ordered· property of the ·derived· datatype
remains that of the datatype from which it is ·derived·. "
So, no order of either the values recorded in the schema, or of the value
space of the type (I.e. of the contents of elements or attributes
validated by the type) is implied.
Noah
[1] http://www.w3.org/TR/xmlschema-0/#CreatDt
[2] http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/#dt-enumeration
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
"Swayam Vemuri -X \(swvemuri - WIPRO at Cisco\)" <swvemuri@cisco.com>
Sent by: xmlschema-dev-request@w3.org
03/13/2007 09:55 AM
To: <noah_mendelsohn@us.ibm.com>, "Michael Kay"
<mike@saxonica.com>
cc: <xmlschema-dev@w3.org>, <xmlschema-dev-request@w3.org>
Subject: RE: How to get enumeration values in alphabetical
order
Oh! That’s an interesting piece of info.
Thanks a lot Noah and Mike for your responses.
Well What I was looking for is if I write a schema wherein while writing
The enumerations, the values are not in alphabetical order, I thought they
appear
As it is when I instantiate the schema Or it will come in sorted order ?
Thanks,
Swayam
From: noah_mendelsohn@us.ibm.com [mailto:noah_mendelsohn@us.ibm.com]
Sent: Tuesday, March 13, 2007 7:19 PM
To: Swayam Vemuri -X (swvemuri - WIPRO at Cisco)
Cc: xmlschema-dev@w3.org; xmlschema-dev-request@w3.org
Subject: Re: How to get enumeration values in alphabetical order
I'm not sure what you mean by "getting" enumeration values. If you want
to do something like extract them from the schema itself, well schema
documents are themselves XML documents, so you could run a stylesheet over
your schema document. Are you looking for something like:
<element name="container">
<sequence>
<element ref="e" type="someEnumeration" maxOccurs="*"/>
</sequence>
</element
and to insist that the values of e occur alphabetically. The answer in
Schema 1.0 is no, can't do it. In schema 1.1, the new "Assertions"
facility would let you put an XPath assertion on the container. If your
processor supported a sufficiently broad subset of the XPath language, and
if your definition of "alphatbetical order" involves a string comparision
that XPath can easily do, then yes, I think you could enforce that in XML
Schema 1.1.
Noah
[1] http://www.w3.org/TR/xmlschema11-1/#cAssertions
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
"Swayam Vemuri -X \(swvemuri - WIPRO at Cisco\)" <swvemuri@cisco.com>
Sent by: xmlschema-dev-request@w3.org
03/13/2007 09:26 AM
To: <xmlschema-dev@w3.org>
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: How to get enumeration values in alphabetical
order
Hi,
How to get enumeration values in alphabetical order.
Is there any way, pl let me know
Thanks
Swayam
Received on Tuesday, 13 March 2007 14:40:42 UTC