WSCL Schema Definition
From: Web Services Conversation Language (WSCL) 1.0 URL: http://www.e-speak.hp.com/media/wscl_5_16_01.pdf Appendix A: WSCL Schema Definition Appendix B: Example WSCL Specification
Appendix A: WSCL Schema Definition <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xsd:id="WSCL" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xsd:targetNamespace="http://www.e-speak.net/schema/WSCL" xsd:elementFormDefault="unqualified" xsd:attributeFormDefault="unqualified"> <xsd:element name="Conversation"> <xsd:complexType> <xsd:sequence> <xsd:element ref="ConversationInteractions"/> <xsd:element ref="ConversationTransitions"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="version" type="xsd:string" use="optional"/> <xsd:attribute name="description" type="xsd:string" use="optional"/> <xsd:attribute name="targetNamespace" type="xsd:uriReference" use="optional"/> <xsd:attribute name="hrefSchema" type="xsd:uriReference" use="optional"/> <xsd:attribute name="initialInteraction" type="xsd:IDREF" use="required"/> <xsd:attribute name="finalInteraction" type="xsd:IDREF" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="ConversationInteractions"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Interaction" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Interaction"> <xsd:complexType> <xsd:choice> <xsd:group ref="ReceiveSendDocumentGroup"/> <xsd:group ref="SendReceiveDocumentGroup"/> <xsd:group ref="ReceiveDocumentGroup"/> <xsd:group ref="SendDocumentGroup"/> <xsd:group ref="EmptyDocumentGroup"/> </xsd:choice> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="interactionType" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="SendReceive"/> <xsd:enumeration value="ReceiveSend"/> <xsd:enumeration value="Receive"/> <xsd:enumeration value="Send"/> <xsd:enumeration value="Empty"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:group name="EmptyDocumentGroup"/> <xsd:group name="ReceiveSendDocumentGroup"> <xsd:sequence> <xsd:element ref="InboundXMLDocument" /> <xsd:element ref="OutboundXMLDocument" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <xsd:group name="SendReceiveDocumentGroup"> <xsd:sequence> <xsd:element ref="OutboundXMLDocument"/> <xsd:element ref="InboundXMLDocument" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <xsd:group name="ReceiveDocumentGroup"> <xsd:sequence> <xsd:element ref="InboundXMLDocument"/> </xsd:sequence> </xsd:group> <xsd:group name="SendDocumentGroup"> <xsd:sequence> <xsd:element ref="OutboundXMLDocument"/> </xsd:sequence> </xsd:group> <xsd:element name="InboundXMLDocument" type="XMLDocumentType"/> <xsd:element name="OutboundXMLDocument" type="XMLDocumentType"/> <xsd:complexType name="XMLDocumentType"> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="hrefSchema" type="xsd:uriReference" use="optional"/> </xsd:complexType> <xsd:element name="ConversationTransitions"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Transition" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Transition"> <xsd:complexType> <xsd:sequence> <xsd:element ref="SourceInteraction" /> <xsd:element ref="DestinationInteraction" /> <xsd:element ref="SourceInteractionCondition" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="SourceInteraction"> <xsd:complexType> <xsd:attribute name="href" type="xsd:IDREF" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="DestinationInteraction"> <xsd:complexType> <xsd:attribute name="href" type="xsd:IDREF" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="SourceInteractionCondition"> <xsd:complexType> <xsd:attribute name="href" type="xsd:IDREF" use="required"/> </xsd:complexType> </xsd:element> </xsd:schema> Appendix B: Example WSCL Specification The following XML document is a WSCL specification for the example conversation shown in Figure 2. <?xml version="1.0" encoding="UTF-8"?> <Conversation name="StoreFrontServiceConversation" initialInteraction="Start" finalInteraction="End" > <ConversationInteractions> <Interaction interactionType="ReceiveSend" id="Login"> <InboundXMLDocument hrefSchema="http://conv123.org/LoginRQ.xsd" id="LoginRQ"/> <OutboundXMLDocument hrefSchema="http://conv123.org/ValidLoginRS.xsd" id="ValidLoginRS"/> <OutboundXMLDocument hrefSchema="http://conv123.org/InvalidLoginRS.xsd" id="InvalidLoginRS" /> </Interaction> <Interaction interactionType="ReceiveSend" id="Registration"> <InboundXMLDocument hrefSchema="http://conv123.org/RegistrationRQ.xsd" id="LoginRQ"/> <OutboundXMLDocument hrefSchema="http://conv123.org/RegistrationRS.xsd" id="RegistrationRS"/> </Interaction> <Interaction interactionType="Receive" id="Logout"> <InboundXMLDocument hrefSchema="http://conv123.org/Logout.xsd" id="LogoutMessage"/> <OutboundXMLDocument hrefSchema="http://conv123.org/RegistrationRS.xsd" id="RegistrationRS"/> </Interaction> <Interaction interactionType="ReceiveSend" id="CatalogInquiry" > <InboundXMLDocument hrefSchema=http://conv123.org/CatalogRQ.xsd id="CatalogRQ"/> <OutboundXMLDocument hrefSchema="http://conv123.org/CatalogRS.xsd" id="CatalogRS" /> </Interaction> <Interaction interactionType="ReceiveSend" id="Quote" > <InboundXMLDocument hrefSchema="http://conv123.org/QuoteRQ.xsd" id="QuoteRQ" /> <OutboundXMLDocument hrefSchema="http://conv123.org/QuoteRS.xsd" id="QuoteRS" /> </Interaction> <Interaction interactionType="ReceiveSend" id="Purchase" /> <InboundXMLDocument hrefSchema="http://conv123.org/PurchaseOrderRQ.xsd" id="PurchaseOrderRQ" /> <OutboundXMLDocument id="PurchaseOrderAcceptedRS" hrefSchema="http://conv123.org/PurchaseOrderAcceptedRS.xsd" /> <OutboundXMLDocument id="InvalidPaymentRS" hrefSchema="http://conv123.org/InvalidPaymentRS.xsd" /> <OutboundXMLDocument id="OutOfStockRS" hrefSchema="http://conv123.org/OutOfStockRS.xsd" /> </Interaction> <Interaction interactionType="Send" id="Shipping" > <OutboundXMLDocument id="ShippingInformation" hrefSchema="http://conv123.org/ShippingInformation.xsd" /> </Interaction> <Interaction interactionType="Empty" id="Start" /> <Interaction interactionType="Empty" id="End" /> </ConversationInteractions> <ConversationTransitions> <Transition> <SourceInteraction href="Start"/> <DestinationInteraction href="Login"/> </Transition> <Transition> <SourceInteraction href="Start"/> <DestinationInteraction href="Login"/> </Transition> <Transition> <SourceInteraction href="Registration"/> <DestinationInteraction href="Registration"/> </Transition> <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Registration"/> <SourceInteractionCondition href="InvalidLoginRS"/> </Transition> <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Login"/> <SourceInteractionCondition href="InvalidLoginRS"/> </Transition> <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="CatalogInquiry"/> <SourceInteractionCondition href="ValidLoginRS"/> </Transition> <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Quote"/> <SourceInteractionCondition href="ValidLoginRS"/> </Transition> <Transition> <SourceInteraction href="Login"/> <DestinationInteraction href="Purchase"/> <SourceInteractionCondition href="ValidLoginRS"/> </Transition> <Transition> <SourceInteraction href="CatalogInquiry"/> <DestinationInteraction href="CatalogInquiry"/> </Transition> <Transition> <SourceInteraction href="CatalogInquiry"/> <DestinationInteraction href="Quote"/> </Transition> <Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="CatalogInquiry"/> </Transition> <Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="Purchase"/> </Transition> <Transition> <SourceInteraction href="Purchase"/> <DestinationInteraction href="Purchase"/> <SourceInteractionCondition href="InvalidPaymentRS"/> </Transition> <Transition> <SourceInteraction href="Purchase"/> <DestinationInteraction href="Shipping"/> <SourceInteractionCondition href="PurchaseAcceptedRS"/> </Transition> <Transition> <SourceInteraction href="Shipping"/> <DestinationInteraction href="End"/> </Transition> <Transition> <SourceInteraction href="Purchase"/> <DestinationInteraction href="End"/> <SourceInteractionCondition href="InvalidPaymentRS"/> </Transition> <Transition> <SourceInteraction href="Purchase"/> <DestinationInteraction href="End"/> <SourceInteractionCondition href="OutOfStockRS"/> </Transition> <Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="Logout"/> </Transition> <Transition> <SourceInteraction href="CatalogInquiry"/> <DestinationInteraction href="Logout"/> </Transition> <Transition> <SourceInteraction href="Logout"/> <DestinationInteraction href="End"/> </Transition> </ConversationTransitions> </Conversation>
Prepared by Robin Cover for The XML Cover Pages archive. See: "Web Services Conversation Language (WSCL)."