OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

asap message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: WSDL


I have attached files for describing the current draft of ASAP in WSDL.
These are rough draft documents that have not been proofed. 

The asap.xsd describes the payloads
The asap.wsdl is the basis for all ASAP services

The concept here is to treat ASAP as a binding. The message structures
are all the same, the programmer only has to define the ContextData and
the ResultsData elements. 

The checkInventory.wsdl and productLevel.xsd files provide an example of
this ASAP-as-a-binding approach.

Ricker
<?xml version="1.0"?>
<wsd:definitions name="ASAP" 
                 targetNamespace="http://www.oasis-open.org/asap/0.9/asap.wsdl";
                 xmlns:asdl="http://www.oasis-open.org/asap/0.9/asap.wsdl";
                 xmlns:asap="http://www.oasis-open.org/asap/0.9/asap.xsd";
                 xmlns:wsd="http://schemas.xmlsoap.org/wsdl/";
                 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                 xmlns:xsd="http://www.w3.org/2000/10/XMLSchema";>

<import namespace="asap" location="http://www.awsp.info/spec/1.0/awsp.xsd"/>

<wsd:documentation>

	Asynchronous Service Access Protocol (ASAP)
	Jeffrey Ricker 
	
	DRAFT 
	Original 2002.02.18
	revised 2003.11.04
 
	The purpose of this document is to show the ASAP defined in the 
	Web Services Description Language (WSDL)[http://www.w3.org/TR/wsdl/]. 
	This document is for reference only. Programmers should import this document 
	and use the ASAP binding extension to WSDL to specify actual services.

</wsd:documentation>

<wsd:types>
  <wsd:documentation> All types located in the asap.xsd file </wsd:documentation>
</wsd:types>

<!-- Messages =========== -->

<wsd:message name="completedRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:CompletedRq"/>
</wsd:message>

<wsd:message name="completedResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:CompletedRs"/>
</wsd:message>

<wsd:message name="createInstanceRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:CreateInstanceRq"/>
</wsd:message>

<wsd:message name="createInstanceResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:CreateInstanceRs"/>
</wsd:message>

<wsd:message name="getPropertiesRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:GetPropertiesRq"/>
</wsd:message>

<wsd:message name="getPropertiesResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:GetPropertiesRs"/>
</wsd:message>

<wsd:message name="listInstancesRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:ListInstancesRq"/>
</wsd:message>

<wsd:message name="listInstancesResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:ListInstancesRs"/>
</wsd:message>

<wsd:message name="notifyRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:NotifyRq"/>
</wsd:message>

<wsd:message name="notifyResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:NotifyRs"/>
</wsd:message>

<wsd:message name="terminateRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:TerminateRq"/>
</wsd:message>

<wsd:message name="terminateResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:TerminateRs"/>
</wsd:message>

<wsd:message name="terminatedRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:TerminatedRq"/>
</wsd:message>

<wsd:message name="terminatedResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:TerminatedRs"/>
</wsd:message>

<wsd:message name="setPropertiesRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:SetPropertiesRq"/>
</wsd:message>

<wsd:message name="setPropertiesResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:SetPropertiesRs"/>
</wsd:message>

<wsd:message name="subscribeRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:SubscribeRq"/>
</wsd:message>

<wsd:message name="subscribeResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:SubscribeRs"/>
</wsd:message>

<wsd:message name="unsubscribeRequest"> 
  <part name="head" element="asap:Request"/>
  <part name="body" element=asap:UnsubscribeRq"/>
</wsd:message>

<wsd:message name="unsubscribeResponse"> 
  <part name="head" element="asap:Response"/>
  <part name="body" element=asap:UnsubscribeRs"/>
</wsd:message>


<!-- Port types ============== -->

<wsd:portType name="InstancePortType">
  <wsd:operation name="GetProperties">
    <wsd:input message="getPropertiesRequest"/>
    <wsd:output message="getPropertiesResponse">
  </wsd:operation>
  <wsd:operation name="SetProperties">
    <wsd:input message="setPropertiesRequest"/>
    <wsd:output message="setPropertiesResponse">
  </wsd:operation>
  <wsd:operation name="Terminate">
    <wsd:input message="terminateRequest"/>
    <wsd:output message="terminateResponse">
  </wsd:operation> 
  <wsd:operation name="Subscribe">
    <wsd:input message="subscribeRequest"/>
    <wsd:output message="subscribeResponse">
  </wsd:operation>
  <wsd:operation name="Unsubscribe">
    <wsd:input message="unsubscribeRequest"/>
    <wsd:output message="unsubscribeResponse">
  </wsd:operation>
</wsd:portType>

<wsd:portType name="FactoryPortType">
  <wsd:operation name="GetProperties">
    <wsd:input message="getPropertiesRequest"/>
    <wsd:output message="getPropertiesResponse">
  </wsd:operation>
  <wsd:operation name="CreateInstance">
    <wsd:input message="createInstanceRequest"/>
    <wsd:output message="createInstanceResponse">
  </wsd:operation>
  <wsd:operation name="ListInstances">
    <wsd:input message="listInstancesRequest"/>
    <wsd:output message="listInstancesResponse">
  </wsd:operation>
</wsd:portType>

<wsd:portType name="ObserverPortType">
  <wsd:operation name="GetProperties">
    <wsd:input message="getPropertiesRequest"/>
    <wsd:output message="getPropertiesResponse">
  </wsd:operation>
  <wsd:operation name="Completed">
    <wsd:input message="completedRequest"/>
    <wsd:output message="completedResponse">
  </wsd:operation>
  <wsd:operation name="Terminated">
    <wsd:input message="terminatedRequest"/>
    <wsd:output message="terminatedResponse">
  </wsd:operation> 
  <wsd:operation name="Notify">
    <wsd:input message="notifyRequest"/>
    <wsd:output message="notifyResponse">
  </wsd:operation>
</wsd:portType>

<wsd:portType name="ActivityPortType">
  <wsd:operation name="GetProperties">
    <wsd:input message="getPropertiesRequest"/>
    <wsd:output message="getPropertiesResponse">
  </wsd:operation>
</wsd:portType>

<!-- Bindings ============== -->

<wsd:binding name="AsapInstanceBinding">
   <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
   <wsd:operation name="GetProperties">
      <soap:operation/>
      <wsd:input message="getPropertiesRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="getPropertiesResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="SetProperties">
      <soap:operation/>
      <wsd:input message="setPropertiesRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="setPropertiesRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="setPropertiesResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="setPropertiesResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="Terminate">
      <soap:operation/>
      <wsd:input message="terminateRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="terminateRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="terminateResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="terminateResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation> 
   <wsd:operation name="Subscribe">
      <soap:operation/>
      <wsd:input message="subscribeRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="subscribeRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="subscribeResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="subscribeResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="Unsubscribe">
      <soap:operation/>
      <wsd:input message="unsubscribeRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="unsubscribeRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="unsubscribeResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="unsubscribeResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
</wsd:binding>

<wsd:binding name="AsapFactoryBinding">
   <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
   <wsd:operation name="GetProperties">
      <soap:operation/>
      <wsd:input message="getPropertiesRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="getPropertiesResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="CreateInstance">
      <soap:operation/>
      <wsd:input message="createInstanceRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="createInstanceRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="createInstanceResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="createInstanceResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="ListInstances">
      <soap:operation/>
      <wsd:input message="listInstancesRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="listInstancesRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="listInstancesResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="listInstancesResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
</wsd:binding>

<wsd:binding name="AsapObserverBinding">
   <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
   <wsd:operation name="GetProperties">
      <soap:operation/>
      <wsd:input message="getPropertiesRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="getPropertiesResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="getPropertiesResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="Completed">
      <soap:operation/>
      <wsd:input message="completedRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="completedRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="completedResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="completedResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="Terminated">
      <soap:operation/>
      <wsd:input message="terminatedRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="terminatedRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="terminatedResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="terminatedResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
   <wsd:operation name="Notify">
      <soap:operation/>
      <wsd:input message="notifyRequest">
         <soap:body parts="body" use="literal"/>
         <soap:header message="notifyRequest" part="head" use="literal"/>
      </wsd:input>
      <wsd:output message="notifyResponse">
         <soap:body parts="body" use="literal"/>
         <soap:header message="notifyResponse" part="head" use="literal"/>
      </wsd:output>
   </wsd:operation>
</wsd:binding>


<!-- 

	Since ASAP is a protocol, we cannot define actual services with URIs in this document. 
	Import this document into your service description file.

-->
  
</wsd:definitions>

<?xml version="1.0"?>
<xsd:schema targetNamespace="http://www.oasis-open.org/asap/0.9/asap.xsd";
        xmlns:xsd="http://www.w3.org/2000/10/XMLSchema";>
       
       
 <annotation>
   <documentation xml:lang="en">
   
       	Asynchronous Service Access Protocol
       	
      	Jeffrey Ricker
		DRAFT 
		Original 2002.02.18
		Revised 2003.11.04
           
   </documentation> 
 </annotation>

<!-- headers ============ -->

<xsd:element name="Request">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="SenderKey" type="xsd:anyURI" minOccurs="0"/>
      <xsd:element name="ReceiverKey" type="xsd:anyURI"/>
      <xsd:element name="ResponseRequired" type="YesNoIfError">
      <xsd:element name="RequestID" type="xsd:anyURI" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:simpleType name="YesNoIfError">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="Yes"/>
    <xsd:enumeration value="No"/>
    <xsd:enumeration value="IfError"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:element name="Response">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="SenderKey" minOccurs="0"/>
      <xsd:element ref="ReceiverKey"/>
      <xsd:element ref="RequestID" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<!-- properties ============= -->

<xsd:group name="instanceProperties">
  <xsd:sequence>
    <xsd:element name="Key" type="xsd:anyURI"/>
    <xsd:element name="ResourceType" type="resourceType" maxOccurs="unbounded"/>
    <xsd:element name="State" type="stateType"/>
    <xsd:element name="Name" type="xsd:string"/>
    <xsd:element name="Subject" type="xsd:string"/>
    <xsd:element name="Description" type="xsd:string"/>
    <xsd:element name="ReqestingUser" type="userType"/>
    <xsd:element name="AccessUsers">
      <xsd:complexType>  
        <xsd:sequence>
          <xsd:element name="AccessUser" type="userType" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="ValidStates" type="stateType" maxOccurs="unbounded"/>
   <xsd:element name="FactoryKey" type="xsd:anyURI"/>
   <xsd:element name="Observers">
     <xsd:complexType>  
       <xsd:sequence>
         <xsd:element name="ObserverKey" type="xsd:anyURI" maxOccurs="unbounded"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:element>
   <xsd:element name="ContextData" type="xsd:anyType"/>
   <xsd:element name="ResultData" type="xsd:anyType"/>
   <xsd:element name="Priority" type="xsd:int"/>
   <xsd:element name="LastModified" type="xsd:date"/>
   <xsd:element name="Activities">
     <xsd:complexType>
       <xsd:sequence>
         <xsd:element name="ActivityKey" type="xsd:anyURI" maxOccurs="unbounded"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:element>
   <xsd:element name="History" type="historyType"/>
 </xsd:sequence>
</xsd:group>

<xsd:group name="factoryProperties">
  <xsd:sequence>
    <xsd:element ref="Key"/>
    <xsd:element ref="ResourceType" maxOccurs="unbounded"/>
    <xsd:element ref="Name"/>
    <xsd:element ref="Subject"/>
    <xsd:element ref="Description"/>
    <xsd:element ref="ValidStates" maxOccurs="unbounded"/>
    <xsd:element name="ContextDataSchema" type="schemaType"/>
    <xsd:element name="ResultDataSchema" type="schemaType"/>
    <xsd:element name="Expiration" type="xsd:duration"/>
  </xsd:sequence>
</xsd:group>
<xsd:complexType name="schemaType">
  <xsd:sequence>
    <xsd:any namespace="##other"/>
  </xsd:sequence>
  <xsd:attribute name="href" type="anyURI"/>
</xsd:complexType>

<xsd:group name="observerProperties">
  <xsd:sequence>
    <xsd:element ref="Key"/>
    <xsd:element ref="ResourceType" maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:group>


<!-- messages =================== -->

<xsd:element name="GetPropertiesRq"/>
<xsd:element name="GetPropertiesRs">
  <xsd:complexType>
    <xsd:choice>
      <xsd:group ref="instanceProperties"/>
      <xsd:group ref="factoryProperties"/>
      <xsd:group ref="observerProperties"/>
    </xsd:choice>
  </xsd:complexType>
</xsd:element>

<xsd:element name="SetPropertiesRq">
  <xsd:complexType>
    <xsd:element ref="Subject"/>
    <xsd:element ref="Description"/>
    <xsd:element ref="State"/>
    <xsd:element ref="Priority"/>
    <xsd:element name="Data" type="xsd:anyType">
  </xsd:complexType>
</xsd:element>
<xsd:element name="SetPropertiesRs">
  <xsd:complexType>
    <xsd:group ref="instanceProperties"/>
  </xsd:complexType>  
</xsd:element>

<xsd:element name="TerminateRq"/>
<xsd:element name="TerminateRs">
  <xsd:complexType>
    <xsd:group ref="instanceProperties"/>
  </xsd:complexType>  
</xsd:element>

<xsd:element name="SubscribeRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="ObserverKey"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="SubscribeRs"/>

<xsd:element name="UnsubscribeRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="ObserverKey"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="UnsubscribeRs"/>

<xsd:element name="CreateInstanceRq">
  <xsd:complexType>
    <xsd:sequence>
       <xsd:element name="StartImmediately" type="xsd:boolean"/>
        <xsd:element ref="ObserverKey" minOccurs="0"/>
        <xsd:element ref="Name" minOccurs="0"/>
        <xsd:element ref="Subject" minOccurs="0"/>
        <xsd:element ref="Description" minOccurs="0"/>
        <xsd:element ref="ContextData"/>
    </xsd:sequence>
</xsd:element>
<xsd:element name="CreateInstanceRs">
  <xsd:element name="InstanceKey"  type="xsd:anyURI"/>
</xsd:element>

<xsd:element name="ListInstancesRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="Filter" type="xsd:string">
        <xsd:attribute name="filterType" type="xsd:NMTOKEN"/>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="ListInstancesRs">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="InstanceKey"/>
      <xsd:element ref="Name" minOccurs="0"/>
      <xsd:element ref="Subject" minOccurs="0"/>
      <xsd:element ref="Priority" minOccurs="0"/>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="CompletedRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="InstanceKey"/>
      <xsd:element ref="ResultData"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="CompletedRs"/>

<xsd:element name="TerminatedRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="Reason" type="xsd:string" minOccurs="0"/>
      <xsd:group ref="instanceProperties"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="TerminatedRs"/>

<xsd:element name="NotifyRq">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="Event"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="NotifyRs"/>


</xsd:schema>

<?xml version="1.0"?>
<wsd:definitions name="checkInventory" 
	targetNamespace="http://demo.izartech.com/schema/checkInventory.wsdl";
	xmlns:asap="http://www.oasis-open.org/asap/0.9/asap.xsd";
	xmlns:asdl="http://www.oasis-open.org/asap/0.9/asap.wsdl";
	xmlns:izar="http://demo.izartech.com/schema/productlevel.xsd";
	xmlns:wsd="http://schemas.xmlsoap.org/wsdl/";
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
	xmlns:xsd="http://www.w3.org/2000/10/XMLSchema";>

<import 
	namespace="http://www.oasis-open.org/asap/0.9/asap.wsdl"; 
    location="http://www.oasis-open.org/asap/0.9/asap.wsdl"/>

<import namespace="http://www.usonia.net/schema/productlevel.xsd"; 
	location="http://demo.izartech.com/schema/productlevel.xsd"/>

<wsd:documentation>

   Inventory levels for IzarTech.
   
   This web service provides inventory levels by part number (SKU). 
   If you do not know the correct SKU, please see http:/demo.izartech.com/catalog/ 
   or call Dave Stephenson at 201.555.7263. As an option, you can also submit the 
   product name for clarification and the quantity you. The process will return the SKU, 
   official product name and the quantity we currently have in inventory.

</wsd:documentation>

<wsd:service name="CheckInventoryService">
   <wsd:documentation>Check inventory level</wsd:documentation>
   <wsd:port name="CheckInventoryFactory" binding="asdl:AsapFactoryBinding">
      <asap:Key uri="http://demo.izartech.com/engine/checkInventory"/>
      <asap:ContextDataSchema element="izar:product"/>
      <asap:ResultDataSchema element="izar:product"/>
   </wsd:port>
</wsd:service>

</wsd:definitions>
<?xml version="1.0"?>
<schema targetNamespace="http://demo.izartech.com/schema/productlevel.xsd";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns="http://demo.izartech.com/schema/productlevel.xsd";>

 <annotation>
   <documentation xml:lang="en">
     Inventory levels for IzarTech
   </documentation> 
 </annotation>

 <xsd:complexType name="product">
   <xsd:sequence>
     <xsd:element name="prodNum" type="SKU"/>
     <xsd:element name="prodName" type="xsd:string" minOccurs="0"/>
     <xsd:element name="quantity" minOccurs="0">
       <xsd:simpleType>
         <xsd:restriction base="xsd:positiveInteger">
           <xsd:maxExclusive value="100"/>
         </xsd:restriction>
       </xsd:simpleType>
     </xsd:element>
   </xsd:sequence>
 </xsd:complexType>

 <!-- Stock Keeping Unit, a code for identifying products -->
 <xsd:simpleType name="SKU">
   <xsd:restriction base="xsd:string">
     <xsd:pattern value="\d{3}-[A-Z]{2}"/>
   </xsd:restriction>
 </xsd:simpleType>
 
</xsd:schema>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]