-- 作者:admin
-- 发布时间:6/20/2006 3:33:00 PM
--
这是WSDL 1.1的Schema: (摘自http://www.w3.org/TR/wsdl#A4) A 4.1 WSDL Schema <schema xmlns="http://www.w3.org/2000/10/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified"> <element name="documentation"> <complexType mixed="true"> <choice minOccurs="0" maxOccurs="unbounded"> <any minOccurs="0" maxOccurs="unbounded"/> </choice> <anyAttribute/> </complexType> </element> <complexType name="documented" abstract="true"> <sequence> <element ref="wsdl:documentation" minOccurs="0"/> </sequence> </complexType> <complexType name="openAtts" abstract="true"> <annotation> <documentation> This type is extended by component types to allow attributes from other namespaces to be added. </documentation> </annotation> <sequence> <element ref="wsdl:documentation" minOccurs="0"/> </sequence> <anyAttribute namespace="##other"/> </complexType> <element name="definitions" type="wsdl:definitionsType"> <key name="message"> <selector xpath="message"/> <field xpath="@name"/> </key> <key name="portType"> <selector xpath="portType"/> <field xpath="@name"/> </key> <key name="binding"> <selector xpath="binding"/> <field xpath="@name"/> </key> <key name="service"> <selector xpath="service"/> <field xpath="@name"/> </key> <key name="import"> <selector xpath="import"/> <field xpath="@namespace"/> </key> <key name="port"> <selector xpath="service/port"/> <field xpath="@name"/> </key> </element> <complexType name="definitionsType"> <complexContent> <extension base="wsdl:documented"> <sequence> <element ref="wsdl:import" minOccurs="0" maxOccurs="unbounded"/> <element ref="wsdl:types" minOccurs="0"/> <element ref="wsdl:message" minOccurs="0" maxOccurs="unbounded"/> <element ref="wsdl:portType" minOccurs="0" maxOccurs="unbounded"/> <element ref="wsdl:binding" minOccurs="0" maxOccurs="unbounded"/> <element ref="wsdl:service" minOccurs="0" maxOccurs="unbounded"/> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"> <annotation> <documentation>to support extensibility elements </documentation> </annotation> </any> </sequence> <attribute name="targetNamespace" type="uriReference" use="optional"/> <attribute name="name" type="NMTOKEN" use="optional"/> </extension> </complexContent> </complexType> <element name="import" type="wsdl:importType"/> <complexType name="importType"> <complexContent> <extension base="wsdl:documented"> <attribute name="namespace" type="uriReference" use="required"/> <attribute name="location" type="uriReference" use="required"/> </extension> </complexContent> </complexType> <element name="types" type="wsdl:typesType"/> <complexType name="typesType"> <complexContent> <extension base="wsdl:documented"> <sequence> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </sequence> </extension> </complexContent> </complexType> <element name="message" type="wsdl:messageType"> <unique name="part"> <selector xpath="part"/> <field xpath="@name"/> </unique> </element> <complexType name="messageType"> <complexContent> <extension base="wsdl:documented"> <sequence> <element ref="wsdl:part" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="name" type="NCName" use="required"/> </extension> </complexContent> </complexType> <element name="part" type="wsdl:partType"/> <complexType name="partType"> <complexContent> <extension base="wsdl:openAtts"> <attribute name="name" type="NMTOKEN" use="optional"/> <attribute name="type" type="QName" use="optional"/> <attribute name="element" type="QName" use="optional"/> </extension> </complexContent> </complexType> <element name="portType" type="wsdl:portTypeType"/> <complexType name="portTypeType"> <complexContent> <extension base="wsdl:documented"> <sequence> <element ref="wsdl:operation" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="name" type="NCName" use="required"/> </extension> </complexContent> </complexType> <element name="operation" type="wsdl:operationType"/> <complexType name="operationType"> <complexContent> <extension base="wsdl:documented"> <choice> <group ref="wsdl:one-way-operation"/> <group ref="wsdl:request-response-operation"/> <group ref="wsdl:solicit-response-operation"/> <group ref="wsdl:notification-operation"/> </choice> <attribute name="name" type="NCName" use="required"/> </extension> </complexContent> </complexType> <group name="one-way-operation"> <sequence> <element ref="wsdl:input"/> </sequence> </group> <group name="request-response-operation"> <sequence> <element ref="wsdl:input"/> <element ref="wsdl:output"/> <element ref="wsdl:fault" minOccurs="0" maxOccurs="unbounded"/> </sequence> </group> <group name="solicit-response-operation"> <sequence> <element ref="wsdl:output"/> <element ref="wsdl:input"/> <element ref="wsdl:fault" minOccurs="0" maxOccurs="unbounded"/> </sequence> </group> <group name="notification-operation"> <sequence> <element ref="wsdl:output"/> </sequence> </group> <element name="input" type="wsdl:paramType"/> <element name="output" type="wsdl:paramType"/> <element name="fault" type="wsdl:faultType"/> <complexType name="paramType"> <complexContent> <extension base="wsdl:documented"> <attribute name="name" type="NMTOKEN" use="optional"/> <attribute name="message" type="QName" use="required"/> </extension> </complexContent> </complexType> <complexType name="faultType"> <complexContent> <extension base="wsdl:documented"> <attribute name="name" type="NMTOKEN" use="required"/> <attribute name="message" type="QName" use="required"/> </extension> </complexContent> </complexType> <complexType name="startWithExtensionsType" abstract="true"> <complexContent> <extension base="wsdl:documented"> <sequence> <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </sequence> </extension> </complexContent> </complexType> <element name="binding" type="wsdl:bindingType"/> <complexType name="bindingType"> <complexContent> <extension base="wsdl:startWithExtensionsType"> <sequence> <element name="operation" type="wsdl:binding_operationType" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="name" type="NCName" use="required"/> <attribute name="type" type="QName" use="required"/> </extension> </complexContent> </complexType> <complexType name="binding_operationType"> <complexContent> <extension base="wsdl:startWithExtensionsType"> <sequence> <element name="input" type="wsdl:startWithExtensionsType" minOccurs="0"/> <element name="output" type="wsdl:startWithExtensionsType" minOccurs="0"/> <element name="fault" minOccurs="0" maxOccurs="unbounded"> <complexType> <complexContent> <extension base="wsdl:startWithExtensionsType"> <attribute name="name" type="NMTOKEN" use="required"/> </extension> </complexContent> </complexType> </element> </sequence> <attribute name="name" type="NCName" use="required"/> </extension> </complexContent> </complexType> <element name="service" type="wsdl:serviceType"/> <complexType name="serviceType"> <complexContent> <extension base="wsdl:documented"> <sequence> <element ref="wsdl:port" minOccurs="0" maxOccurs="unbounded"/> <any namespace="##other" minOccurs="0"/> </sequence> <attribute name="name" type="NCName" use="required"/> </extension> </complexContent> </complexType> <element name="port" type="wsdl:portType"/> <complexType name="portType"> <complexContent> <extension base="wsdl:documented"> <sequence> <any namespace="##other" minOccurs="0"/> </sequence> <attribute name="name" type="NCName" use="required"/> <attribute name="binding" type="QName" use="required"/> </extension> </complexContent> </complexType> <attribute name="arrayType" type="string"/> </schema> A 4.2 SOAP Binding Schema <schema xmlns="http://www.w3.org/2000/10/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://schemas.xmlsoap.org/wsdl/soap/"> <element name="binding" type="soap:bindingType"/> <complexType name="bindingType"> <attribute name="transport" type="uriReference" use="optional"/> <attribute name="style" type="soap:styleChoice" use="optional"/> </complexType> <simpleType name="styleChoice"> <restriction base="string"> <enumeration value="rpc"/> <enumeration value="document"/> </restriction> </simpleType> <element name="operation" type="soap:operationType"/> <complexType name="operationType"> <attribute name="soapAction" type="uriReference" use="optional"/> <attribute name="style" type="soap:styleChoice" use="optional"/> </complexType> <element name="body" type="soap:bodyType"/> <complexType name="bodyType"> <attribute name="encodingStyle" type="uriReference" use="optional"/> <attribute name="parts" type="NMTOKENS" use="optional"/> <attribute name="use" type="soap:useChoice" use="optional"/> <attribute name="namespace" type="uriReference" use="optional"/> </complexType> <simpleType name="useChoice"> <restriction base="string"> <enumeration value="literal"/> <enumeration value="encoded"/> </restriction> </simpleType> <element name="fault" type="soap:faultType"/> <complexType name="faultType"> <complexContent> <restriction base="soap:bodyType"> <attribute name="parts" type="NMTOKENS" use="prohibited"/> </restriction> </complexContent> </complexType> <element name="header" type="soap:headerType"/> <complexType name="headerType"> <all> <element ref="soap:headerfault"> </all> <attribute name="message" type="QName" use="required"/> <attribute name="parts" type="NMTOKENS" use="required"/> <attribute name="use" type="soap:useChoice" use="required"/> <attribute name="encodingStyle" type="uriReference" use="optional"/> <attribute name="namespace" type="uriReference" use="optional"/> </complexType> <element name="headerfault" type="soap:headerfaultType"/> <complexType name="headerfaultType"> <attribute name="message" type="QName" use="required"/> <attribute name="parts" type="NMTOKENS" use="required"/> <attribute name="use" type="soap:useChoice" use="required"/> <attribute name="encodingStyle" type="uriReference" use="optional"/> <attribute name="namespace" type="uriReference" use="optional"/> </complexType> <element name="address" type="soap:addressType"/> <complexType name="addressType"> <attribute name="location" type="uriReference" use="required"/> </complexType> </schema> A 4.3 HTTP Binding Schema <schema xmlns="http://www.w3.org/2000/10/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://schemas.xmlsoap.org/wsdl/http/"> <element name="address" type="http:addressType"/> <complexType name="addressType"> <attribute name="location" type="uriReference" use="required"/> </complexType> <element name="binding" type="http:bindingType"/> <complexType name="bindingType"> <attribute name="verb" type="NMTOKEN" use="required"/> </complexType> <element name="operation" type="http:operationType"/> <complexType name="operationType"> <attribute name="location" type="uriReference" use="required"/> </complexType> <element name="urlEncoded"> <complexType> </complexType> </element> <element name="urlReplacement"> <complexType> </complexType> </element> </schema> A 4.4 MIME Binding Schema <schema targetNamespace="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="content" type="mime:contentType"/> <complexType name="contentType" content="empty"> <attribute name="type" type="string" use="optional"/> <attribute name="part" type="NMTOKEN" use="optional"/> </complexType> <element name="multipartRelated" type="mime:multipartRelatedType"/> <complexType name="multipartRelatedType" content="elementOnly"> <element ref="mime:part" minOccurs="0" maxOccurs="unbounded"/> </complexType> <element name="part" type="mime:partType"/> <complexType name="partType" content="elementOnly"> <any namespace="targetNamespace" minOccurs="0" maxOccurs="unbounded"/> <attribute name="name" type="NMTOKEN" use="required"/> </complexType> <element name="mimeXml" type="mime:mimeXmlType"/> <complexType name="mimeXmlType" content="empty"> <attribute name="part" type="NMTOKEN" use="optional"/> </complexType> </schema>
|