- From: Arthur Ryman <ryman@ca.ibm.com>
- Date: Thu, 16 Feb 2006 07:09:19 -0500
- To: www-ws-desc@w3.org
- Cc: lmandel@ca.ibm.com
- Message-ID: <OF90B951F6.9A133161-ON85257117.003E8EA5-85257117.0042C26E@ca.ibm.com>
Here is my proposal for resolving CR005 [1]. The issue is that the spec currently says that a WSDL document does not need to <xsd:import> the XSD namespace when it refers to it components in it [2], but the spec doesn't say if those components are always present in the WSDL component model. A WSDL 2.0 document MUST NOT refer to XML Schema components in a given namespace unless an xs:import or xs:schema element information item for that namespace is present or the namespace is the XML Schema namespace which contains built-in types as defined in XML Schema Part 2: Datatypes Second Edition [XML Schema: Datatypes]. In fact, the only built-in types defined by XML Schema are the simple datatypes like xs:string, xs:int, etc., and the only WSDL components that could possibly references these are Property components via the {value constrain} property.[3] For example, suppose you want to define a Property that has a xsd:string value. <property ref="http://example.org/property/foo"> <constraint>xs:string</constraint> </property> The spec says the WSDL document does not have to <xs:import> http://www.w3.org/2001/XMLSchema This exception was introduced as a simplification for authors because I thought authors would frequently refer to the built-in types. But in fact they are only references from Property components and authors might well define there own types anyway to express additional constraints, e.g. using facets. There are two possible resolutions. R1 - remove the exception so that document do have to import the XML Schema namespace. This means that any document that references the XML Schema built-in types would have to include a section like: <type/> <xs:import namespace="http://www.w3.org/2001/XMLSchema " /> </type> R2 - add a statement to the state stating that every component model contains the built in types. I would add the following statement to 2.1.1 The Description Component The {type definitions} property of the Description component MUST contain all of the built-in datatypes defined by XML Schema Part 2: Datatypes Second Edition [XMLSchema: Datatypes] [4], namely string, boolean, decimal, float, double, duration, dateTime, time, date, gYearMonth, gYear, gMonthDay, gDay, gMonth, hexBinary, base64, Binary, anyURI, QName, NOTATION, normalizedString, token, language, NMTOKEN, NMTOKENS, Name, NCName, ID, IDREF, IDREFS, ENTITY, ENTITIES, integer, nonPositiveInteger, negativeInteger, long, int, short, byte, nonNegativeInteger, unsignedLong, unsignedInt, unsignedShort, unsignedByte, positiveInteger. After reflection on this issue, I recommend R1 because I don't think it is really much of a burden to authors to add the <xs:import> in those cases where they actually define Property components that directly reference built-in XML Schema types.. It makes the spec simpler since there are no exceptions to the import rule. It makes the component model simpler since it removes some of the coupling with XML Schema. [1] http://www.w3.org/2002/ws/desc/5/cr-issues/issues.html#CR005 [2] http://www.w3.org/TR/2006/CR-wsdl20-20060106/#xsd-types [3] http://www.w3.org/TR/2006/CR-wsdl20-20060106/#property-Property.valueconstraint [4] http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#built-in-datatypes Arthur Ryman, IBM Software Group, Rational Division blog: http://ryman.eclipsedevelopersjournal.com/ phone: +1-905-413-3077, TL 969-3077 assistant: +1-905-413-2411, TL 969-2411 fax: +1-905-413-4920, TL 969-4920 mobile: +1-416-939-5063, text: 4169395063@fido.c
Received on Thursday, 16 February 2006 12:09:36 UTC