Cover Pages Logo SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic

Web Service Choreography Interface 1.0 (WSCI). XML Schemas


Web Service Choreography Interface 1.0
XML Schemas

From: http://titan.intalio.com:8080/intalio/wsci/spec/index.html

Section 8.4 of the v1.0 WSCI specification WSCI Schema

8.4.1 Standard
8.4.2 Extended: Locate

<xsd:schema targetNamespace="http://www.w3.org/TR/2002/wsci10"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:wsci="http://www.w3.org/TR/2002/wsci10"
            elementFormDefault="qualified"
            blockDefault="#all">

<!-- Simple type definitions -->

<xsd:simpleType name="listOfQName">
  <xsd:annotation>
    <xsd:documentation>
      Simple type representing a list of QNames.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:list itemType="xsd:QName"/>
</xsd:simpleType>

<xsd:simpleType name="transactionType">
  <xsd:annotation>
    <xsd:documentation>
      Allowed transaction types.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="atomic"/>
    <xsd:enumeration value="open"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="instantiationType">
  <xsd:annotation>
    <xsd:documentation>
      Allowed instantiation types: message or other.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="message"/>
    <xsd:enumeration value="other"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="timeConstraintType">
  <xsd:annotation>
    <xsd:documentation>
      Time constraint type: duration or instance.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="duration"/>
    <xsd:enumeration value="dateTime"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="opName">
  <xsd:annotation>
    <xsd:documentation>
      Simple type representing a WSDL operation name
      (QName/NCName).
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[\i-[:]][\c-[:]]*:[\i-[:]][\c-[:]]*/[\i-[:]][\c-[:]]*"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="opNameList">
  <xsd:annotation>
    <xsd:documentation>
      Simple type representing a list of WSDL
      operation names.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:list itemType="wsci:opName"/>
</xsd:simpleType>

<xsd:simpleType name="twoOpNames">
  <xsd:annotation>
    <xsd:documentation>
      Simple type representing two WSDL operation names.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="wsci:opNameList">
    <xsd:length value="2"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="expression">
  <xsd:annotation>
    <xsd:documentation>
      Simple type representing an expression,
      possibly but not necessarily XPath.
      Cannot hold an empty string.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:minLength value="1"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="timeReference">
  <xsd:annotation>
    <xsd:documentation>
      Time reference: a property name or an activity name
      plus the @start or @end designator.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[\i-[:]][\c-[:]]*:[\i-[:]][\c-[:]]*(@start|@end)"/>
  </xsd:restriction>
</xsd:simpleType>

<!-- Complex type and element definitions (generic) -->

<xsd:complexType name="documented">
  <xsd:annotation>
    <xsd:documentation>
       This type is extended by all elements that
       allow documentation.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
  <xsd:element ref="wsci:documentation" minOccurs="0" maxOccurs="1"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="documentation">
  <xsd:annotation>
    <xsd:documentation>
       This element allows documentation to appear as
       mixed content using any schema.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType mixed="true">
    <xsd:sequence>
      <xsd:any namespace="##other" processContents="skip"
               minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="selector" type="wsci:selector"/>

<xsd:complexType name="selector">
  <xsd:annotation>
    <xsd:documentation>
      A property selector. Defines how a property value is
      instantiated from a message part given the type
      definition of the message part and an optional XPath
      expression. The element and type attributes are mutually
      exclusive. At least one type reference must be used.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented">
      <xsd:sequence>
        <xsd:any namespace="##other" processContents="strict"
                 minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="property" type="xsd:QName"
                     use="required"/>
      <xsd:attribute name="element" type="xsd:QName"
                     use="optional"/>
      <xsd:attribute name="type" type="xsd:QName"
                     use="optional"/>
      <xsd:attribute name="xpath" type="wsci:expression"
                     use="optional"/>
      <xsd:anyAttribute namespace="##other"
                        processContents="strict"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:element name="correlation" type="wsci:correlation"/>

<xsd:complexType name="correlation">
  <xsd:annotation>
    <xsd:documentation>
      A correlation definition. Names a correlation and
      specifies the properties that are used to identify the
      correlation instance.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented">
      <xsd:attribute name="name" type="xsd:NCName"
                     use="required"/>
      <xsd:attribute name="property" type="wsci:listOfQName"
                     use="required"/>
      <xsd:attribute name="extends" type="xsd:QName"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="correlate">
  <xsd:annotation>
    <xsd:documentation>
      Correlates an action by referencing the correlation
      definition and indicating whether that action is part
      of the correlation instantiation or part of an existing
      correlation instance.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="correlation" type="xsd:QName"
                 use="required"/>
  <xsd:attribute name="instantiation" type="xsd:boolean"
                 use="optional" default="false"/>
</xsd:complexType>

<!-- Generic type definitions used by activity types -->

<xsd:complexType name="activity">
  <xsd:annotation>
    <xsd:documentation>
       The base type for all activity elements. It defines
       the optional name attribute and includes the
       documentation element in the contents.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented">
      <xsd:attribute name="name" type="xsd:NCName"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:element name="activity" abstract="true" type="wsci:activity"/>

<xsd:group name="activitySet">
  <xsd:annotation>
    <xsd:documentation>
      A set of activities that perform in the same context.
      Allows the optional context element, and zero or more
      activities from all the activity types.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:element name="context" type="wsci:context"
                 minOccurs="0" maxOccurs="1">
      <xsd:key name="contextProcessConstraint">
        <xsd:selector xpath="./wsci:process"/>
        <xsd:field xpath="@name"/>
      </xsd:key>
      <xsd:key name="contextPropertyConstraint">
        <xsd:selector xpath="./wsci:property"/>
        <xsd:field xpath="@name"/>
      </xsd:key>
    </xsd:element>
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="action" type="wsci:action"/>
      <xsd:element name="all" type="wsci:all"/>
      <xsd:element name="call" type="wsci:call"/>
      <xsd:element name="choice" type="wsci:choice">
        <xsd:unique name="choiceFaultConstraint">
          <xsd:selector xpath="./wsci:onFault"/>
          <xsd:field xpath="@code"/>
        </xsd:unique>
        <xsd:key name="choiceTimeoutConstraint">
          <xsd:selector xpath="./wsci:onTimeout"/>
          <xsd:field xpath="@property"/>
        </xsd:key>
      </xsd:element>
      <xsd:element name="compensate"
                   type="wsci:compensate"/>
      <xsd:element name="delay" type="wsci:delay"/>
      <xsd:element name="empty" type="wsci:empty"/>
      <xsd:element name="fault" type="wsci:fault"/>
      <xsd:element name="foreach" type="wsci:foreach"/>
      <xsd:element name="join" type="wsci:join"/>
      <xsd:element name="sequence" type="wsci:sequence"/>
      <xsd:element name="spawn" type="wsci:spawn"/>
      <xsd:element name="switch" type="wsci:switch">
        <xsd:key name="switchConditionConstraint">
          <xsd:selector xpath="./wsci:case"/>
          <xsd:field xpath="./wsci:condition"/>
        </xsd:key>
      </xsd:element>
      <xsd:element name="until" type="wsci:until"/>
      <xsd:element name="while" type="wsci:while"/>
      <xsd:element ref="wsci:activity"/>
    </xsd:choice>
  </xsd:sequence>
</xsd:group>

<xsd:complexType name="condition">
  <xsd:annotation>
    <xsd:documentation>
       A condition expression. The expression is given
       as character data, the common understanding is
       that of an XPath expression. Extension attributes
       can be used to express other semantics.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="wsci:expression">
      <xsd:anyAttribute namespace="##other"
                        processContents="strict"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

<xsd:complexType name="eventHandler">
  <xsd:annotation>
    <xsd:documentation>
       The base type for all activity elements. It defines
       the optional name attribute and includes the
       documentation element in the contents.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented"/>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="onMessage">
  <xsd:annotation>
    <xsd:documentation>
      An event handler that is triggered by an
      inbound message. The first action activity
      that precedes the activity set must complete
      for this activity set to perform.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:eventHandler">
      <xsd:sequence>
        <xsd:element name="action" type="wsci:action"/>
        <xsd:group ref="wsci:activitySet"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="onTimeout">
  <xsd:annotation>
    <xsd:documentation>
      An event handler that is triggered by a timeout.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:eventHandler">
      <xsd:group ref="wsci:activitySet"/>
      <xsd:attribute name="property" type="xsd:QName"
                     use="required"/>
      <xsd:attribute name="type" type="wsci:timeConstraintType"
                     use="optional" default="duration"/>
      <xsd:attribute name="reference" type="wsci:timeReference"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="onFault">
  <xsd:annotation>
    <xsd:documentation>
      An event handler that is triggered by a fault.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:eventHandler">
      <xsd:group ref="wsci:activitySet"/>
      <xsd:attribute name="code" type="xsd:QName"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:group name="anyEvent">
  <xsd:annotation>
    <xsd:documentation>
      An event handler: onMessage, onTimeout or onFault.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:choice>
    <xsd:element name="onMessage" type="wsci:onMessage"/>
    <xsd:element name="onTimeout" type="wsci:onTimeout"/>
    <xsd:element name="onFault" type="wsci:onFault"/>
  </xsd:choice>
</xsd:group>

<!-- Type definitions for activities -->

<xsd:complexType name="action">
  <xsd:annotation>
    <xsd:documentation>
      The action activity references an abstract operation
      definition against which the action will occur.
      It also identifies which correlations are used to
      associate a message instance with an activity context.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence>
        <xsd:element name="correlate" type="wsci:correlate"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="call" type="wsci:call"
                     minOccurs="0" maxOccurs="1"/>
        <xsd:any namespace="##other" processContents="strict"
                 minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="operation" type="wsci:opName"
                     use="optional"/>
      <xsd:attribute name="role" type="xsd:QName"
                     use="optional"/>
      <xsd:anyAttribute namespace="##other"
                        processContents="strict"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="all">
  <xsd:annotation>
    <xsd:documentation>
      Performs all the activities in any order.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:group ref="wsci:activitySet"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="call">
  <xsd:annotation>
    <xsd:documentation>
      Invokes a process and waits for it complete.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence/>
      <xsd:attribute name="process" type="xsd:NCName"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="choice">
  <xsd:annotation>
    <xsd:documentation>
      Selects one activity set and performs it.
      The activity set is selected by an event
      handler or time onMessage, onTimeout or
      onFault. At least two event handlers must
      be specified.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:group ref="wsci:anyEvent"
                 minOccurs="2" maxOccurs="unbounded"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="compensate">
  <xsd:annotation>
    <xsd:documentation>
      Compensate for all completed instances of the
      named transaction that has not been compensated
      for yet.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence/>
      <xsd:attribute name="transaction" type="xsd:NCName"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="delay">
  <xsd:annotation>
    <xsd:documentation>
      Represents the passage of time.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:attribute name="property" type="xsd:QName"
                     use="required"/>
      <xsd:attribute name="type" type="wsci:timeConstraintType"
                     use="optional" default="duration"/>
      <xsd:attribute name="reference" type="wsci:timeReference"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="empty">
  <xsd:annotation>
    <xsd:documentation>
      An activity that does nothing.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity"/>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="fault">
  <xsd:annotation>
    <xsd:documentation>
      Signals a fault in the process and branches into
      exception handling.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:attribute name="code" type="xsd:QName"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="foreach">
  <xsd:annotation>
    <xsd:documentation>
      Repeats the activity set for each item in
      the pre-selected item list.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:group ref="wsci:activitySet"/>
      <xsd:attribute name="select" type="wsci:expression"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="join">
  <xsd:annotation>
    <xsd:documentation>
      Waits for all nested process instances to complete.
    </xsd:documentation>  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence/>
      <xsd:attribute name="process" type="xsd:NCName"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="sequence">
  <xsd:annotation>
    <xsd:documentation>
      Performs all the activities in sequence.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:group ref="wsci:activitySet"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="spawn">
  <xsd:annotation>
    <xsd:documentation>
      Instantiates a process without waiting for
      it to complete.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence/>
      <xsd:attribute name="process" type="xsd:NCName"
                     use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="switch">
  <xsd:annotation>
    <xsd:documentation>
      Selects one activity set and performs it.
      The condition of each case are evaluated in
      order and the first condition to be met (evaluate
      to true) will cause the activity set of that case
      to be performed and the switch activity to complete.
      If no condition is met, the activity set of the
      default case is performed and the switch activity
      completes. If the default case is missing, the
      switch activity completes immediately.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence>
        <xsd:element name="case"
                     minOccurs="1" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:complexContent>
              <xsd:extension base="wsci:documented">
                <xsd:sequence>
                  <xsd:element name="condition"
                               type="wsci:condition"/>
                  <xsd:group ref="wsci:activitySet"/>
                </xsd:sequence>
              </xsd:extension>
            </xsd:complexContent>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="default"
                     minOccurs="0" maxOccurs="1">
          <xsd:complexType>
            <xsd:complexContent>
              <xsd:extension base="wsci:documented">
                <xsd:group ref="wsci:activitySet"/>
              </xsd:extension>
            </xsd:complexContent>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="until">
  <xsd:annotation>
    <xsd:documentation>
      Repeats the activity set until the condition is
      not met (evaluates to false). The activity set
      will be repeated one or more times.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence>
        <xsd:element name="condition"
                     type="wsci:condition"/>
        <xsd:group ref="wsci:activitySet"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="while">
  <xsd:annotation>
    <xsd:documentation>
      Repeats the activity set while the condition is
      met (evaluates to true). The activity set will be
      repeated zero or more times.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:activity">
      <xsd:sequence>
        <xsd:element name="condition"
                     type="wsci:condition"/>
        <xsd:group ref="wsci:activitySet"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>


<!-- Type definitions for activity context -->

<xsd:complexType name="context">
  <xsd:annotation>
    <xsd:documentation>
      Defines the context for an activity set.
      All activities within the set perform in this context.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="process" type="wsci:process"/>
      <xsd:element name="property" type="wsci:property"/>
    </xsd:choice>
    <xsd:element name="exception"
                 minOccurs="0" maxOccurs="1">
      <xsd:annotation>
        <xsd:documentation>
          Defines exception handling.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexType>
        <xsd:group ref="wsci:anyEvent"
                   minOccurs="1" maxOccurs="unbounded"/>
      </xsd:complexType>
      <xsd:unique name="exceptionFaultConstraint">
        <xsd:selector xpath="./wsci:onFault"/>
        <xsd:field xpath="@code"/>
      </xsd:unique>
      <xsd:key name="exceptionTimeoutConstraint">
        <xsd:selector xpath="./wsci:onTimeout"/>
        <xsd:field xpath="@property"/>
      </xsd:key>
    </xsd:element>
    <xsd:element name="transaction"
                 minOccurs="0" maxOccurs="1">
      <xsd:annotation>
        <xsd:documentation>
          Defines the name of a transaction and the transaction
          type. Optionally defines compensating activity.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="compensation"
                       minOccurs="0" maxOccurs="1">
            <xsd:complexType>
              <xsd:complexContent>
                <xsd:extension base="wsci:documented">
                  <xsd:group ref="wsci:activitySet"/>
                </xsd:extension>
              </xsd:complexContent>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:NCName"
                       use="required"/>
        <xsd:attribute name="type" type="wsci:transactionType"
                       use="optional" default="atomic"/>
        <xsd:attribute name="retries" type="xsd:QName"
                       use="optional"/>
      </xsd:complexType>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="property">
  <xsd:annotation>
    <xsd:documentation>
      Defines a property within a context.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented">
      <xsd:sequence>
        <xsd:element name="value"
                     minOccurs="0" maxOccurs="1">
          <xsd:complexType mixed="true">
            <xsd:sequence>
              <xsd:any namespace="##other" processContents="skip"
                       minOccurs="0" maxOccurs="unbounded"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:QName"
                     use="required"/>
      <xsd:attribute name="select" type="wsci:expression"
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<!-- Element definitions -->

<xsd:complexType name="process">
  <xsd:annotation>
    <xsd:documentation>
      Defines a process. A process is an activity set that
      is not contained within any other activity.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:nameRequired">
      <xsd:group ref="wsci:activitySet"/>
      <xsd:attribute name="instantiation" type="wsci:instantiationType"
                     use="optional" default="message"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="nameRequired">
  <xsd:complexContent>
    <xsd:restriction base="wsci:activity">
      <xsd:sequence>
        <xsd:element ref="wsci:documentation" minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:NCName"
                     use="required"/>
    </xsd:restriction>
  </xsd:complexContent>
</xsd:complexType>

<xsd:element name="interface">
  <xsd:annotation>
    <xsd:documentation>
      TBD.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="wsci:documented">
        <xsd:sequence>
          <xsd:element name="process" type="wsci:process"
                       minOccurs="1" maxOccurs="unbounded">
            <xsd:unique name="processContextNameConstraint">
              <xsd:selector xpath="./*|./wsci:context/*"/>
              <xsd:field xpath="@name"/>
            </xsd:unique>
          </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:NCName"
                       use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:key name="processNameConstraint">
    <xsd:selector xpath="./wsci:process"/>
    <xsd:field xpath="@name"/>
  </xsd:key>
</xsd:element>

<xsd:element name="model">
  <xsd:annotation>
    <xsd:documentation>
      TBD.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="wsci:documented">
        <xsd:sequence minOccurs="1" maxOccurs="unbounded">
          <xsd:element name="interface">
            <xsd:complexType>
              <xsd:attribute name="ref" type="xsd:QName"
                             use="required"/>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="connect" type="wsci:connect"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:NCName"
                       use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:key name="interfaceNameConstraint">
    <xsd:selector xpath="./wsci:interface"/>
    <xsd:field xpath="@name"/>
  </xsd:key>
</xsd:element>

<xsd:complexType name="connect">
  <xsd:annotation>
    <xsd:documentation>
      Connects two operations in opposing port types.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci:documented">
      <xsd:sequence>
        <xsd:any namespace="##other" processContents="strict"
                 minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="operation" type="wsci:twoOpNames"
                     use="optional"/>
      <xsd:anyAttribute namespace="##other"
                        processContents="strict"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

</xsd:schema>


8.4.2 Extended: Locate


<xsd:schema targetNamespace="http://www.w3.org/TR/2002/wsci10/locate"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:wsci-core="http://www.w3.org/TR/2002/wsci10"
            xmlns:wsci-locate="http://www.w3.org/TR/2002/wsci10/locate"
            elementFormDefault="qualified"
            blockDefault="#all">

<xsd:import namespace="http://www.w3.org/TR/2002/wsci10"/>

<xsd:element name="locator" type="wsci-locate:locator"/>

<xsd:complexType name="locator">
  <xsd:annotation>
    <xsd:documentation>
      Defines a locator. An extension element and optional
      extension attributes are used to define the mechanism
      by which the service instance is identified.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexContent>
    <xsd:extension base="wsci-core:documented">
      <xsd:sequence>
        <xsd:any namespace="##other" processContents="strict"
                 minOccurs="1" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:NCName"
                     use="required"/>
      <xsd:anyAttribute namespace="##other"
                        processContents="strict"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:element name="locate" type="wsci-locate:locate"/>

<xsd:complexType name="locate">
  <xsd:annotation>
    <xsd:documentation>
      Locates a service instance. The property attribute
      names the properties that are used to locate the
      service instance. The locator attribute references
      a locator definition. If absent, the service is located
      by its end-point URI given by a single property.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="property" type="wsci-core:listOfQName"
                 use="optional"/>
  <xsd:attribute name="locator" type="xsd:QName"
                 use="optional"/>
</xsd:complexType>

</xsd:schema>


Prepared by Robin Cover for The XML Cover Pages archive. See the news item.


Globe Image

Document URL: http://xml.coverpages.org/WSCI-v10-Schemas.html