- From: Hugo Haas <hugo@w3.org>
- Date: Wed, 17 Aug 2005 12:47:42 +0200
- To: ietf-types@iana.org
- Cc: ietf-xml-mime@imc.org, www-ws-desc@w3.org
- Message-ID: <20050817104742.GD24041@w3.org>
Following the procedure outlined in How to Register an Internet Media Type for a W3C Specification[1], I would like to request comments about the definition of the application/wsdl+xml media type. This new media type is defined in Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language, W3C Working Draft 3 August 2005, which is a Last Call Working Draft[2], for which comments are invited until 19 September 2005 to the public-ws-desc-comments@w3.org mailing list (Reply-To set appropriately). The Web Services Description Language Version 2.0 (WSDL 2.0) is an XML language for describing Web services. Note that a previous Last Call Working Draft was published on 3 August 2005, for which feedback on the registration of application/wsdl+xml was requested on 4 October 2004[3] and the comment received[4] has been addressed in this new version. The definition of the media type can be found in appendix A. The application/wsdl+xml Media Type[5] of Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language. A text copy of the section follows: A. The application/wsdl+xml Media Type This appendix defines the "application/wsdl+xml" media type which can be used to describe WSDL 2.0 documents serialized as XML. A.1 Registration MIME media type name: application MIME subtype name: wsdl+xml Required parameters: none Optional parameters: charset This parameter has identical semantics to the charset parameter of the "application/xml" media type as specified in [RFC 3023]. Encoding considerations: Identical to those of "application/xml" as described in [RFC 3023 ], section 3.2, as applied to the WSDL document Infoset. Security considerations: See section A.3 Security considerations. Interoperability considerations: There are no known interoperability issues. Published specifications: This document and [WSDL 2.0 Adjuncts]. Applications which use this media type: No known applications currently use this media type. Additional information: File extension: wsdl Fragment identifiers: Either a syntax identical to that of "application/xml" as described in [RFC 3023], section 5 or the syntax defined in A.2 Fragment Identifiers. Base URI: As specified in [RFC 3023], section 6. Macintosh File Type code: WSDL Person and email address to contact for further information: World Wide Web Consortium <web-human@w3.org> Intended usage: COMMON Author/Change controller: The WSDL 2.0 specification set is a work product of the World Wide Web Consortium's Web Service Description Working Group. The W3C has change control over these specifications. A.2 Fragment Identifiers This section defines a fragment identifier syntax for identifying components of a WSDL 2.0 document. This fragment identifier syntax is compliant with the [XPointer Framework]. A WSDL 2.0 fragment identifier consists of zero or more xmlns pointer parts followed by a pointer part as defined below. The pointer parts have a scheme name that corresponds to one of the standard WSDL 2.0 component types, and scheme data that is a path composed of names that identify the components. The scheme names all begin with the prefix "wsdl." to avoid name conflicts with other schemes. The names in the path are of type either QName, NCName, IRI, URI, or Pointer Part depending on the context. For QNames, any prefix MUST be defined by a preceding xmlns pointer part. If a QName does not have a prefix then its namespace name is the target namespace of the WSDL 2.0 document. The fragment identifier is typically constructed from the {name} property of the component and the {name} properties of its ancestors as a path according to Table A-1. The first column of this table gives the name of the WSDL 2.0 component. Columns labeled 1 through 4 specify the identifiers that uniquely identify the component within its context. Identifiers are typically formed from the {name} property, although in several cases references to other components are used. These identifiers are then used to construct the pointer part in the last column. Table A-1. Rules for determining pointer parts for WSDL 2.0 components ┌───────────┬─────────┬─────────────────────────┬───────┬───────┬──────────────────────────────┐ │ Component │ 1 │ 2 │ 3 │ 4 │ Pointer Part │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Description│n/a │n/a │n/a │n/a │wsdl.description() │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Element │element │n/a │n/a │n/a │wsdl.elementDeclaration( │ │Declaration│QName │ │ │ │element) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Element │element │system URI │n/a │n/a │wsdl.elementDeclaration( │ │Declaration│QName │ │ │ │element,system) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Type │type │n/a │n/a │n/a │wsdl.typeDefinition(type) │ │Definition │QName │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Type │type │system URI │n/a │n/a │wsdl.typeDefinition(type, │ │Definition │QName │ │ │ │system) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Interface │interface│n/a │n/a │n/a │wsdl.interface(interface) │ │ │NCName │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Interface │interface│fault NCName │n/a │n/a │wsdl.interfaceFault(interface/│ │Fault │NCName │ │ │ │fault) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Interface │interface│operation NCName │n/a │n/a │wsdl.interfaceOperation( │ │Operation │NCName │ │ │ │interface/operation) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Interface │interface│ │message│ │wsdl.interfaceMessageReference│ │Message │NCName │operation NCName │NCName │n/a │(interface/operation/message) │ │Reference │ │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Interface │interface│ │message│fault │wsdl.interfaceFaultReference( │ │Fault │NCName │operation NCName │NCName │QName │interface/operation/message/ │ │Reference │ │ │ │ │fault) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Binding │binding │n/a │n/a │n/a │wsdl.binding(binding) │ │ │NCName │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Binding │binding │fault QName │n/a │n/a │wsdl.bindingFault(binding/ │ │Fault │NCName │ │ │ │fault) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Binding │binding │operation QName │n/a │n/a │wsdl.bindingOperation(binding/│ │Operation │NCName │ │ │ │operation) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Binding │binding │ │message│ │wsdl.bindingMessageReference( │ │Message │NCName │operation QName │NCName │n/a │binding/operation/message) │ │Reference │ │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Binding │binding │ │fault │message│wsdl.bindingFaultReference( │ │Fault │NCName │operation QName │QName │NCName │binding/operation/fault/ │ │Reference │ │ │ │ │message) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Service │service │n/a │n/a │n/a │wsdl.service(service) │ │ │NCName │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Endpoint │service │endpoint NCName │n/a │n/a │wsdl.endpoint(service/endpoint│ │ │NCName │ │ │ │) │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │ │parent │ │ │ │ │ │Feature │Pointer │feature IRI │n/a │n/a │wsdl.feature(parent/feature) │ │ │Part │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │ │parent │ │ │ │ │ │Property │Pointer │property IRI │n/a │n/a │wsdl.property(parent/property)│ │ │Part │ │ │ │ │ ├───────────┼─────────┼─────────────────────────┼───────┼───────┼──────────────────────────────┤ │Extensions │namespace│identifier │n/a │n/a │wsdl.extension(namespace, │ │ │URI │extension-specific-syntax│ │ │identifier) │ └───────────┴─────────┴─────────────────────────┴───────┴───────┴──────────────────────────────┘ Note that the above rules are defined in terms of component properties rather than the XML Infoset representation of the component model. The following sections specify in detail how the pointer parts are constructed from the component model. A.2.1 The Description Component wsdl.description() A.2.2 The Element Declaration Component wsdl.elementDeclaration(element) wsdl.elementDeclaration(element,system) 1. element is the {name} property of the Element Declaration component. 2. system is the absolute URI of the extension type system used for the Element Declaration component. This parameter is absent if XML Schema is the type system. A.2.3 The Type Definition Component wsdl.typeDefinition(type) wsdl.typeDefinition(type,system) 1. type is the {name} property of the Type Definition component. 2. system is the absolute URI of the extension type system used for the Type Definition component. This parameter is absent if XML Schema is the type system. A.2.4 The Interface Component wsdl.interface(interface) 1. interface is the local name of the {name} property of the Interface component. A.2.5 The Interface Fault Component wsdl.interfaceFault(interface/fault) 1. interface is the local name of the {name} property of the parent Interface component. 2. fault is the local name of the {name} property of the Interface Fault component. A.2.6 The Interface Operation Component wsdl.interfaceOperation(interface/operation) 1. interface is the local name of the {name} property of the parent Interface component. 2. operation is the local name of the {name} property of the Interface Operation component. A.2.7 The Interface Message Reference Component wsdl.interfaceMessageReference(interface/operation/message) 1. interface is the local name of the {name} property of the grandparent Interface component. 2. operation is the local name of the {name} property of the parent Interface Operation component. 3. message is the {message label} property of the Interface Message Reference component. A.2.8 The Interface Fault Reference Component wsdl.interfaceFaultReference(interface/operation/message/fault) 1. interface is the local name of the {name} property of the grandparent Interface component. 2. operation is the local name of the {name} property of the parent Interface Operation component. 3. message is the {message label} property of the Interface Fault Reference component. 4. fault is the {name} property of the Interface Fault component referred to by the {interface fault} property of the Interface Fault Reference component. A.2.9 The Binding Component wsdl.binding(binding) 1. binding is the local name of the {name} property of the Binding component. A.2.10 The Binding Fault Component wsdl.bindingFault(binding/fault) 1. binding is the local name of the {name} property of the parent Binding component. 2. fault is the {name} property of the Interface Fault component referred to by the {interface fault} property of the Binding Fault component. A.2.11 The Binding Operation Component wsdl.bindingOperation(binding/operation) 1. binding is the local name of the {name} property of the parent Binding component. 2. operation is the {name} property of the Interface Operation component referred to by the {interface operation} property of the Binding Operation component. A.2.12 The Binding Message Reference Component wsdl.bindingMessageReference(binding/operation/message) 1. binding is the local name of the {name} property of the grandparent Binding component. 2. operation is the {name} property of the Interface Operation component referred to by the {interface operation} property of the parent Binding Operation component. 3. message is the {message label} property of the Interface Message Reference component referred to by the {interface message reference} property of the Binding Message Reference component. A.2.13 The Binding Fault Reference Component wsdl.bindingFaultReference(binding/operation/fault/message) 1. binding is the local name of the {name} property of the grandparent Binding component. 2. operation is the {name} property of the Interface Operation component referred to by the {interface operation} property of the parent Binding Operation component. 3. fault is the {name} property of the Interface Fault component referred to by the {interface fault} property of the Interface Fault Reference component referred to by the {interface fault reference} property of the Binding Fault Reference component. 4. message is the {message label} property of the Interface Fault Reference component referred to by the {interface fault reference } property of the Binding Fault Reference component. A.2.14 The Service Component wsdl.service(service) 1. service is the local name of the {name} property of the Service component. A.2.15 The Endpoint Component wsdl.endpoint(service/endpoint) 1. service is the local name of the {name} property of the parent Service component. 2. endpoint is the {name} property of the Endpoint component. A.2.16 The Feature Component wsdl.feature(parent/feature) 1. parent is the pointer part of the parent component. 2. feature is the {ref} property of the Feature component. A.2.17 The Property Component wsdl.property(parent/property) 1. parent is the pointer part of the parent component. 2. property is the {ref} property of the Property component. A.2.18 Extension Components WSDL 2.0 is extensible and it is possible for an extension to define new components types. The XPointer Framework scheme for extension components is: wsdl.extension(namespace, identifier) 1. namespace is the namespace URI that identifies the extension, e.g. for the WSDL 2.0 SOAP 1.2 Binding the namespace is http:// www.w3.org/2005/08/wsdl/soap. 2. identifier is defined by the extension using a syntax specific to the extension. The owner of the extension must define any components contributed by the extension and a syntax for identifying them. A.3 Security considerations This media type uses the "+xml" convention, it shares the same security considerations as described in [RFC 3023], section 10. Regards, Hugo 1. http://www.w3.org/2002/06/registering-mediatype#Planned 2. http://www.w3.org/2004/02/Process-20040205/tr.html#last-call 3. http://eikenes.alvestrand.no/pipermail/ietf-types/2004-October/000438.html 4. http://www.alvestrand.no/pipermail/ietf-types/2005-February/000595.html 5. http://www.w3.org/TR/2005/WD-wsdl20-20050803/#ietf-draft -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Wednesday, 17 August 2005 10:47:53 UTC