2002/ws/desc/test-suite/interchange wsdlcm.xsd,NONE,1.1

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