- From: <Noah_Mendelsohn@lotus.com>
- Date: Thu, 12 Apr 2001 16:54:22 -0400
- To: "Affan Dar" <affandar@microsoft.com>
- Cc: xml-dist-app@w3.org
Affan Dar writes:
>> As I understand - 'xsd' cannot be used to qualify
>> elements in an instance document. It should be
>> SOAP-ENC:string instead of xsd:string.
I'm sorry, but your understanding is not correct. Not only can types from
the XML schema datatypes be used, there are common circumstances in which
they should be. First of all from the SOAP spec [1]:
"Throughout this document, the namespace prefix "xsi" is assumed to be
associated with the URI "http://www.w3.org/1999/XMLSchema-instance" which
is defined in the XML Schemas specification [11]. Similarly, the namespace
prefix "xsd" is assumed to be associated with the URI
"http://www.w3.org/1999/XMLSchema" which is defined in [10]."
As always in XML, you can use any prefix you like, it's the associated URI
that matters. I'll use the same convention here.
That said, if you want to tell me that something is an integer, the right
way to do it is:
<AGE xsi:type="xsd:integer">12</age>
The precise definition of the xsi:type attribute is found at [2], and a
more informal introduction can be foundin the schema primer at [3].
As far as I know (I'm disconnected at the moment and can't easily check),
SOAP-ENC:string is an element declaration, not a type. Predefined
elements such as SOAP-ENC:string are indeed useful in certain specific
situations, such as in certain arrays, but there is nothing wrong with
using xsi:type and the built in (or user defined, if you know that schemas
are around) types. Of course, if you use user-defined types, you may
cause some challenges for certain dynamically typed non-schema-aware
environements (certain script based implementations, for example).
Hope this is helpful.
[1] http://www.w3.org/TR/SOAP/#_Toc478383489
[2] http://www.w3.org/TR/xmlschema-1/
[3] http://www.w3.org/TR/xmlschema-0/
------------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
Lotus Development Corp. Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------------
Received on Thursday, 12 April 2001 16:57:00 UTC