- From: Arthur Ryman via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 14 Apr 2006 02:36:43 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/test-suite/interchange
In directory hutz:/tmp/cvs-serv16688/test-suite/interchange
Added Files:
wsdlcm.xsd
Log Message:
Reworked schema for WSDL Component Model interchange format.
--- NEW FILE: wsdlcm.xsd ---
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2002/ws/desc/wsdl/component"
targetNamespace="http://www.w3.org/2002/ws/desc/wsdl/component"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd" />
<xs:annotation>
<xs:documentation>
This schema represents the WSDL 2.0 Component Model. The
following rules have been used to map the WSDL 2.0
specification to this schema.
<ol>
<li>
All element names start with a lowercase letter.
</li>
<li>All type names start with an uppercase letter.</li>
<li>
There are no anonymous types. This allows types to
be reused and simplifies bindings to prgramming
languages.
</li>
<li>
Each component type is mapped to a complex type. The
name of the complex type is the name of the
component with the suffix Component appended. If the
component name has several parts, these are
concatenated. For example the Interface Operation
component is mapped to the
InterfaceOperationComponent complex type. All
component complex type derive from the base
Component type which has an id attribute.
</li>
<li>
Each property name is mapped to an element of its
component complex type. The name of element is the
camel-cased name of the property. For example, the
{message label} property is mapped to the
messageLabel element.
</li>
<li>
A property that contains a set has minoccurs="0".
The type of the property is a sequence of elements
with minoccurs="1". If the set is empty then the
element is absent. If the set is non-empty then the
element is present and contains at least one item.
</li>
<li>
QNames are mapped to a complex type that contains
both the namespace name and the local name rather
then a usual QName with namespace prefix. This
design makes it easier to compare QNames.
</li>
</ol>
</xs:documentation>
</xs:annotation>
<xs:complexType name="Any">
<xs:sequence>
<xs:any namespace="##any" processContents="lax"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Direction">
<xs:restriction base="xs:token">
<xs:enumeration value="in" />
<xs:enumeration value="out" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="MessageContentModel">
<xs:restriction base="xs:token">
<xs:enumeration value="#any" />
<xs:enumeration value="#none" />
<xs:enumeration value="#other" />
<xs:enumeration value="#element" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="QName">
<xs:sequence>
<xs:element name="namespaceName" type="xs:anyURI" />
<xs:element name="localName" type="xs:NCName" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Ref">
<xs:attribute name="ref" type="xs:IDREF" />
</xs:complexType>
<xs:simpleType name="Uris">
<xs:list itemType="xs:anyURI" />
</xs:simpleType>
<xs:complexType name="Component" abstract="true">
<xs:sequence>
<xs:any namespace="##any" processContents="strict"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="xml:id" />
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
<xs:element name="descriptionComponent" type="DescriptionComponent" />
<xs:complexType name="DescriptionComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaces" minOccurs="0"
type="InterfaceComponents" />
<xs:element name="bindings" minOccurs="0"
type="BindingComponents" />
<xs:element name="services" minOccurs="0"
type="ServiceComponents" />
<xs:element name="elementDeclarations" minOccurs="0"
type="ElementDeclarationComponents" />
<xs:element name="typeDefinitions" minOccurs="0"
type="TypeDefinitionComponents" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterfaceComponents">
<xs:sequence>
<xs:element name="interfaceComponent" minOccurs="1"
maxOccurs="unbounded" type="InterfaceComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="extendedInterfaces" minOccurs="0"
type="InterfaceRefs" />
<xs:element name="interfaceFaults" minOccurs="0"
type="InterfaceFaultComponents" />
<xs:element name="interfaceOperations" minOccurs="0"
type="InterfaceOperationComponents" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterfaceRefs">
<xs:sequence>
<xs:element name="interface" minOccurs="1"
maxOccurs="unbounded" type="Ref" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceFaultComponents">
<xs:sequence>
<xs:element name="interfaceFaultComponent" minOccurs="1"
maxOccurs="unbounded" type="InterfaceFaultComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceFaultComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="elementDeclaration" minOccurs="0"
type="Ref" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterfaceOperationComponents">
<xs:sequence>
<xs:element name="interfaceOperationComponent" minOccurs="0"
maxOccurs="unbounded" type="InterfaceOperationComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceOperationComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="messageExchangePattern"
type="xs:anyURI" />
<xs:element name="interfaceMessageReferences"
minOccurs="0" type="InterfaceMessageReferenceComponents" />
<xs:element name="interfaceFaultReferences"
minOccurs="0" type="InterfaceFaultReferenceComponents" />
<xs:element name="style" minOccurs="0" type="Uris" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterfaceMessageReferenceComponents">
<xs:sequence>
<xs:element name="interfaceMessageReferenceComponent"
minOccurs="1" maxOccurs="unbounded"
type="InterfaceMessageReferenceComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceFaultReferenceComponents">
<xs:sequence>
<xs:element name="interfaceFaultReferenceComponent"
minOccurs="1" maxOccurs="unbounded"
type="InterfaceMessageReferenceComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterfaceMessageReferenceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="messageLabel" type="xs:NCName" />
<xs:element name="direction" type="Direction" />
<xs:element name="messageContentModel"
type="MessageContentModel" />
<xs:element name="elementDeclaration" minOccurs="0"
type="Ref" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterfaceFaultReferenceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaceFault" type="Ref" />
<xs:element name="messageLabel" type="xs:NCName" />
<xs:element name="direction" type="Direction" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FeatureComponents">
<xs:sequence>
<xs:element name="featureComponent" minOccurs="1"
maxOccurs="unbounded" type="FeatureComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FeatureComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="ref" type="xs:anyURI" />
<xs:element name="required" type="xs:boolean" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PropertyComponents">
<xs:sequence>
<xs:element name="propertyComponent" minOccurs="1"
maxOccurs="unbounded" type="PropertyComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PropertyComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="ref" type="xs:anyURI" />
<xs:element name="valueConstraint" minOccurs="0"
type="Ref" />
<xs:element name="value" minOccurs="0" type="Any" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BindingComponents">
<xs:sequence>
<xs:element name="bindingComponent" minOccurs="1"
maxOccurs="unbounded" type="BindingComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BindingComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="interface" minOccurs="0"
type="Ref" />
<xs:element name="type" type="xs:anyURI" />
<xs:element name="bindingFaults" minOccurs="0"
type="BindingFaultComponents" />
<xs:element name="bindingOperations" minOccurs="0"
type="BindingOperationComponents" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BindingFaultComponents">
<xs:sequence>
<xs:element name="bindingFaultComponent" minOccurs="1"
maxOccurs="unbounded" type="BindingFaultComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BindingFaultComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaceFault" type="Ref" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BindingOperationComponents">
<xs:sequence>
<xs:element name="bindingOperationComponent" minOccurs="1"
maxOccurs="unbounded" type="BindingOperationComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BindingOperationComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaceOperation" type="Ref" />
<xs:element name="bindingFaultReferences"
minOccurs="0">
</xs:element>
<xs:element name="bindingMessageReferences"
minOccurs="0" type="BindingMessageReferenceComponents" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BindingMessageReferenceComponents">
<xs:sequence>
<xs:element name="BindingMessageReferenceComponent"
minOccurs="1" maxOccurs="unbounded"
type="BindingMessageReferenceComponents" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BindingMessageReferenceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaceMessageReference"
type="Ref" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BindingFaultReferenceComponents">
<xs:sequence>
<xs:element name="BindingFaultReferenceComponent"
minOccurs="1" maxOccurs="unbounded"
type="BindingFaultReferenceComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BindingFaultReferenceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="interfaceFaultReference"
type="Ref" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServiceComponents">
<xs:sequence>
<xs:element name="serviceComponent" minOccurs="1"
maxOccurs="unbounded" type="ServiceComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="interface" type="Ref" />
<xs:element name="endpoints"
type="EndpointComponents" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndpointComponents">
<xs:sequence>
<xs:element name="endpointComponent" minOccurs="1"
maxOccurs="unbounded" type="EndpointComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="EndpointComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="xs:NCName" />
<xs:element name="binding" type="Ref" />
<xs:element name="address" type="xs:anyURI"
minOccurs="0" />
<xs:element name="features" minOccurs="0"
type="FeatureComponents" />
<xs:element name="properties" minOccurs="0"
type="PropertyComponents" />
<xs:element name="parent" type="Ref" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ElementDeclarationComponents">
<xs:sequence>
<xs:element name="elementDeclarationComponent" minOccurs="1"
maxOccurs="unbounded" type="ElementDeclarationComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ElementDeclarationComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="system" type="xs:anyURI" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TypeDefinitionComponents">
<xs:sequence>
<xs:element name="typeDefinitionComponent" minOccurs="1"
maxOccurs="unbounded" type="TypeDefinitionComponent" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypeDefinitionComponent">
<xs:complexContent>
<xs:restriction base="Component">
<xs:sequence>
<xs:element name="name" type="QName" />
<xs:element name="system" type="xs:anyURI" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Received on Friday, 14 April 2006 02:36:48 UTC