Registration of media type application/wsdl+xml
Hugo Haas
hugo at w3.org
Wed Aug 17 12:47:42 CEST 2005
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 at 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 at 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 at w3.org - http://www.w3.org/People/Hugo/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 307 bytes
Desc: Digital signature
Url : http://eikenes.alvestrand.no/pipermail/ietf-types/attachments/20050817/3914d65a/attachment-0001.bin
More information about the Ietf-types
mailing list