- 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