<xsd:complexTypename="tInvoke"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlations needs to be a Local Element Declaration, because there is another correlations element defined for the non-invoke activities. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tActivity"> <xsd:sequence> <xsd:elementname="correlations"type="tCorrelationsWithPattern"minOccurs="0"/> <xsd:elementref="catch"minOccurs="0"maxOccurs="unbounded"/> <xsd:elementref="catchAll"minOccurs="0"/> <xsd:elementref="compensationHandler"minOccurs="0"/> <xsd:elementref="toParts"minOccurs="0"/> <xsd:elementref="fromParts"minOccurs="0"/> </xsd:sequence> <xsd:attributename="partnerLink"type="xsd:NCName"use="required"/> <xsd:attributename="portType"type="xsd:QName"use="optional"/> <xsd:attributename="operation"type="xsd:NCName"use="required"/> <xsd:attributename="inputVariable"type="BPELVariableName"use="optional"/> <xsd:attributename="outputVariable"type="BPELVariableName"use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tCorrelationsWithPattern"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlation needs to be a Local Element Declaration, because there is another correlation element defined for the non-invoke activities. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tExtensibleElements"> <xsd:sequence> <xsd:elementname="correlation"type="tCorrelationWithPattern"minOccurs="1"maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tPick"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element onAlarm needs to be a Local Element Declaration, because there is another onAlarm element defined for event handlers. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tActivity"> <xsd:sequence> <xsd:elementref="onMessage"minOccurs="1"maxOccurs="unbounded"/> <xsd:elementname="onAlarm"type="tOnAlarmPick"minOccurs="0"maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributename="createInstance"type="tBoolean"default="no"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tReceive"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlations needs to be a Local Element Declaration, because there is another correlations element defined for the invoke activity. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tActivity"> <xsd:sequence> <xsd:elementname="correlations"type="tCorrelations"minOccurs="0"/> <xsd:elementref="fromParts"minOccurs="0"/> </xsd:sequence> <xsd:attributename="partnerLink"type="xsd:NCName"use="required"/> <xsd:attributename="portType"type="xsd:QName"use="optional"/> <xsd:attributename="operation"type="xsd:NCName"use="required"/> <xsd:attributename="variable"type="BPELVariableName"use="optional"/> <xsd:attributename="createInstance"type="tBoolean"default="no"/> <xsd:attributename="messageExchange"type="xsd:NCName"use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tReply"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlations needs to be a Local Element Declaration, because there is another correlations element defined for the invoke activity. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tActivity"> <xsd:sequence> <xsd:elementname="correlations"type="tCorrelations"minOccurs="0"/> <xsd:elementref="toParts"minOccurs="0"/> </xsd:sequence> <xsd:attributename="partnerLink"type="xsd:NCName"use="required"/> <xsd:attributename="portType"type="xsd:QName"use="optional"/> <xsd:attributename="operation"type="xsd:NCName"use="required"/> <xsd:attributename="variable"type="BPELVariableName"use="optional"/> <xsd:attributename="faultName"type="xsd:QName"/> <xsd:attributename="messageExchange"type="xsd:NCName"use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tScope"> <xsd:annotation> <xsd:documentation> There is no schema-level default for "exitOnStandardFault" at "scope". Because, it will inherit default from enclosing scope or process. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tActivity"> <xsd:sequence> <xsd:elementref="partnerLinks"minOccurs="0"/> <xsd:elementref="messageExchanges"minOccurs="0"/> <xsd:elementref="variables"minOccurs="0"/> <xsd:elementref="correlationSets"minOccurs="0"/> <xsd:elementref="faultHandlers"minOccurs="0"/> <xsd:elementref="compensationHandler"minOccurs="0"/> <xsd:elementref="terminationHandler"minOccurs="0"/> <xsd:elementref="eventHandlers"minOccurs="0"/> <xsd:groupref="activity"minOccurs="1"/> </xsd:sequence> <xsd:attributename="isolated"type="tBoolean"default="no"/> <xsd:attributename="exitOnStandardFault"type="tBoolean"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:elementname="compensationHandler"type="tActivityContainer"> <xsd:annotation> <xsd:documentation> This element can contain all activities including the activities compensate and compensateScope. </xsd:documentation> </xsd:annotation> </xsd:element>
实际上就是一个tActivityContainer
element:terminationHandler
1 2 3 4 5 6 7
<xsd:elementname="terminationHandler"type="tActivityContainer"> <xsd:annotation> <xsd:documentation> This element can contain all activities including the activities compensate and compensateScope. </xsd:documentation> </xsd:annotation> </xsd:element>
<xsd:complexTypename="tEventHandlers"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element onAlarm needs to be a Local Element Declaration, because there is another onAlarm element defined for the pick activity. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tExtensibleElements"> <xsd:sequence> <xsd:elementref="onEvent"minOccurs="0"maxOccurs="unbounded"/> <xsd:elementname="onAlarm"type="tOnAlarmEvent"minOccurs="0"maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tOnMsgCommon"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlations needs to be a Local Element Declaration, because there is another correlations element defined for the invoke activity. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tExtensibleElements"> <xsd:sequence> <xsd:elementname="correlations"type="tCorrelations"minOccurs="0"/> <xsd:elementref="fromParts"minOccurs="0"/> </xsd:sequence> <xsd:attributename="partnerLink"type="xsd:NCName"use="required"/> <xsd:attributename="portType"type="xsd:QName"use="optional"/> <xsd:attributename="operation"type="xsd:NCName"use="required"/> <xsd:attributename="messageExchange"type="xsd:NCName"use="optional"/> <xsd:attributename="variable"type="BPELVariableName"use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:complexTypename="tCorrelations"> <xsd:annotation> <xsd:documentation> XSD Authors: The child element correlation needs to be a Local Element Declaration, because there is another correlation element defined for the invoke activity. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extensionbase="tExtensibleElements"> <xsd:sequence> <xsd:elementname="correlation"type="tCorrelation"minOccurs="1"maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType>
<xsd:annotation> <xsd:documentation> Schema for Executable Process for WS-BPEL 2.0 OASIS Standard 11th April, 2007 </xsd:documentation> </xsd:annotation>
<xsd:elementname="process"type="tProcess"> <xsd:annotation> <xsd:documentation> This is the root element for a WS-BPEL 2.0 process. </xsd:documentation> </xsd:annotation> </xsd:element>
<xsd:complexTypename="tExtensibleElements"> <xsd:annotation> <xsd:documentation> This type is extended by other component types to allow elements and attributes from other namespaces to be added at the modeled places. </xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:elementref="documentation"minOccurs="0"maxOccurs="unbounded"/> <xsd:anynamespace="##other"processContents="lax"minOccurs="0"maxOccurs="unbounded"/> </xsd:sequence> <xsd:anyAttributenamespace="##other"processContents="lax"/> </xsd:complexType>
<xsd:groupname="activity"> <xsd:annotation> <xsd:documentation> All standard WS-BPEL 2.0 activities in alphabetical order. Basic activities and structured activities. Addtional constraints: - rethrow activity can be used ONLY within a fault handler (i.e. "catch" and "catchAll" element) - compensate or compensateScope activity can be used ONLY within a fault handler, a compensation handler or a termination handler </xsd:documentation> </xsd:annotation> <xsd:choice> <xsd:elementref="assign"/> <xsd:elementref="compensate"/> <xsd:elementref="compensateScope"/> <xsd:elementref="empty"/> <xsd:elementref="exit"/> <xsd:elementref="extensionActivity"/> <xsd:elementref="flow"/> <xsd:elementref="forEach"/> <xsd:elementref="if"/> <xsd:elementref="invoke"/> <xsd:elementref="pick"/> <xsd:elementref="receive"/> <xsd:elementref="repeatUntil"/> <xsd:elementref="reply"/> <xsd:elementref="rethrow"/> <xsd:elementref="scope"/> <xsd:elementref="sequence"/> <xsd:elementref="throw"/> <xsd:elementref="validate"/> <xsd:elementref="wait"/> <xsd:elementref="while"/> </xsd:choice> </xsd:group>
<xsd:elementname="catch"type="tCatch"> <xsd:annotation> <xsd:documentation> This element can contain all activities including the activities compensate, compensateScope and rethrow. </xsd:documentation> </xsd:annotation> </xsd:element>
<xsd:elementname="catchAll"type="tActivityContainer"> <xsd:annotation> <xsd:documentation> This element can contain all activities including the activities compensate, compensateScope and rethrow. </xsd:documentation> </xsd:annotation> </xsd:element>
<xsd:importnamespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"> <!-- "http://www.w3.org/2001/xml.xsd" --> <xsd:annotation> <xsd:documentation> Get access to the xml: attribute groups for xml:lang as declared on 'Label' and 'Documentation' below </xsd:documentation> </xsd:annotation> </xsd:import>
让我们举例说明:我们的用户来自英国和挪威。我们希望有能力让用户选择在 XML 文档中使用挪威语的元素名称还是英语的元素名称。 为了解决这个问题,我们可以在 XML schema 中定义一个 substitutionGroup。首先,我们声明主元素,然后我们会声明次元素,这些次元素可声明它们能够替换主元素。