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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-bp message

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


Subject: [ebBP] 10/22/2004: Editors' Update and Reminder about Team Call Today8 a.m. PDT


Reminder: 8 a.m. PDT, 30-minute team update on Editors' meeting, Friday, 
22 October. 866-882-3998, international 865 525 0769, passcode 9081038.
=================================================================================================
ebBP Editors' F2F Update (functional review):
We mapped the work items to resolutions, progress, the technical 
specification and schema changes. Here are the explicit work items and 
changes recommended. We will discuss on Monday whether the TC wishes to 
accept these recommendations. Some are clarifications or more detail 
related to our discussions or decisions (for the schema and the 
specification). Technical review of updates also provided by Moberg 
(Thanks Dale). New schema attached. We did some updates to the technical 
specification and JJ Dubray is working to have the specification ready 
by early November. Thanks to Dale, JJ, Sally St. Amand, and John Yunker 
for their work and contributions.

1. Work Item 11 Packaging:
Replacement of include element with XInclude. Semantics proposed to be 
that only a package can be included in a BPSS instance. Some implementor 
best practices will be provided in the technical specification. Packages 
are relevant to substitution and inclusion (can be used included and 
physically reused in multiple BPSS instances). We can show hierarchy of 
packages based on name or through that of the parent. Hierarchy is 
inferred from the references not the name.

2. Work Item 11 Packaging and Work Item 70 BPSS Extensibility:
Substitution: With the inclusion of variables, we now have less need to 
explicitly define document substitution. Therefore, the editors' propose 
we refine the substi
tution capability and more effectively use XPath for attribute 
substitution. The Specification element will be optional to encourage 
the definition of a logical business document that can be reused and 
refined for a physical business document specific to a particular domain.

3. Work Item 25 Multiple requests-responses and Work Item 23 Multiple 
documents in an envelope
a. Can also relate to multiple requests or responses to a particular 
request or response. Recommend these be handled in existing BTAs in a 
choreographed way.
b. On attachments, accept JEITA request to add min and maxOccurs 
attributes on Attachment element. Integrate into specification and schema.
Use Yano example in the technical specification.

Any complex expressions about state need to be computed as services on 
either end and provided/communicated in the message exchange. State 
alignment are the responsibility of messages; computations should be 
handled by services. Use variables, and XPath (simple) and XSLT 
(complex) capabilities to support.

Variable changes were to add a BTA references for context and a document 
ref for the document used to feed into the expression. If the language 
allows variables, all the variables that are populated up until that 
point, the variables need to be provided into the environment that uses 
them.

Example:
var name="qty" exp="/qty" language=XPATH documentref=doc1
var name="price" exp="/amount" language=XPATH documentref=doc1
var name="limit" exp="/limit" language=XPATH documentref=doc2
var name="IsLimit" exp="$qty*$price>$limit" language=XSLT

Example 2:
var name=poorderref expression=/po/orderid language=XPath 
businessdocument=po
var name=invoiceorderref expression=/invoice/originalorder/orderref 
language=XPath businessdocument=invoice
conditionexpression expression="$poorderref=$invoiceorderref" language=XSLT

4. Work Item 32 EDI support
Indicate partners may wish to used new functions available now or in the 
near future. XPath will operate on the result of rendering EDI into XML 
per ISO/DIS20625.

5. Work Item 12 WSDL/Web services support
Resolved the Operation Mapping proposed structure. Must specify input, 
output, fault, interface, operation, role, BTA and document envelope or 
signal reference.

Package
OperationMapping
MessageMap: BTA ref for interface, role reference
SignalMap

Operation name
Operation ref (input, output, fault)
doc env ref

6. Work Item 36-52-60-61 NOF and general exceptions
This adds the NOF and general exception. The general exception type is 
not a part of the BT patterns. This is related to the BSI and the 
business protocol.

7. Work Item 77 isIntelligibleCheckRequired
Place language in the specification that indicates this attribute means 
the party said the business document is actionable, i.e. it is parsable 
and reasable. Serm Kulvatunyou had asked a question if this is a SHOULD 
rather than a MUST. It is actually a MUST per Yunker.

Work Item 59 Additional transaction support
This asks if we can make changes to the understood pattern used by the 
parties under specific conditions. Consensus was to recommend that any 
changes should be made in the CPPA instead.

Work Item 62 Use of BT diagram to replace Figure 17
(turned into a discussion of business retries)
If desired, a party can use a business retry or a NOF after a timeout. 
Take this use case, $1 million transaction. Somewhere, a backend system 
drops a message. You get a TTP timeout. You can retry or you can NOF 
abandon and continue with complete restart.

Recommendation: Leave retryCount attribute as optional and revisit in 
v3.0 to see if we can include explicitly in the choreography.
Use BT diagram but ask for an update using AA on the response (requester 
signals to the responder). Request made to Roberts to update for use in 
the technical specification.

8. Work Item 22 BT patterns and Work Item 70 BPSS extensibility
The business transaction pattern can be extended using substitution for 
the Business Transaction.Be clear if a new pattern is created, the 
semantics and other supporting criteria will need to be defined. 
Extensibility is outside of the protocol. BT element has a pattern name 
which is extensible. Choreography can be used to handle this implicitly 
- define with multiple BTA within a binary collaboration in a choreography.

9. Work Item 36-52-60-61 NOF and General Exceptions
Added an exception type. No changes required for signal envelope type. 
The general exception can apply to an BT pattern. Use simple text in the 
technical specification that: NOF is a choreographed behavior for which 
you can plan. The general exception handles unchoreographed / unplanned 
events. The general exception has not been added to any of the 
predefined business transaction patterns. Detailed summary to be 
provided by Martin.

10. Work Item 43-66 Name and Name ID
Minor updates in schema confirmed after questions raised by Kenji Nagahashi.
a. The toRole on PerformsType is optional.
b. Use current and performs roles for PerformsType. Current role 
reference is required.

11. Work Item 47 Inner and Outer Collaboration or related collaborations
Retain the well-formedness rule that all non-isInnerCollaboration BC are 
eligible to start a complex BC or MPC. Any ambiquity on the initiating 
role should be resolved by a separate or distinguishing document envelope.

12. Work Item 53 TTP for Inner and Outer Collaboration
Retain the well-formedness rule: An outer collaboration TTP has to be no 
shorter than the longest inner collaboration.

13. Work Item 72 onInitiation
No changes other than those already specified. Use Moberg white paper 
for technical specification details.

14. Work Item 54 Attribute inconsistencies between BTA and CA
Retain a well-formedness rule: Any information referenced in a condition 
statement on a transition guard must be visible to the initiatingRole in 
the 'to' BTA.

15. Work Item 42 Visualization
Met again with BPMN team 21 October 2004. We are almost ready with a 
viable model using the BPMN notation. More detail can be added later and 
supported
by the BPMN notation. Dubray updated example attached.
=================================================================================================
Well-formedness rules thus far:
1. When a Specification element is optional on a business document 
element, this indicates that the business document
is abstract and substitution can be used to replace the logical business 
document with a physical one that is relevant
to a particular domain or use.
2. Only packages can be used with the XInclude mechanism.
3. A user is responsible to understand where to include packages that 
are valid when XInclude mechanism is used.
4. When you use the variable, it is cast in a type that is usable in 
that conditional expression.
5. Any variables used in the condition tree for the BTActivity guard 
must precede the guard in the execution of the BTA.
6. All non-isInnerCollaboration BC are eligible to start a complex BC or 
MPC.
7. Ambiquity should be resolved by a separate or distinguishing document 
envelope to clarify the intiating role.
8. An outer collaboration TTP has to be no shorter than long as the 
longest inner collaboration.
9. Any information referenced in a condition statement on a transition 
guard must be visible to the initiatingRole in the 'to' BTA.

More rules under development - Moberg, schema.
=================================================================================================
ebBP Editors' F2F Update (technical review):

*XML Mechanics*

*Resolved to optimize the amount of XML mechanics found in BPSS for 
clarity and efficiency. *

Deletions

   1. SubstitutionSet unneeded,
   2. SubstitutionSet child DocumentSubstitution deleted.
   3. Include deleted

Modifications
1. AttributeSubstitution retained but promoted. It now has three 
attributes, elementRef, attributeName, and value.

These elements are directives (following processing of XInclude include 
elements, see below) that do simple edits on attribute values of 
elements referencable by an ID. The elementRef attribute has a value 
with type IDREF that selects an element. The attributeName attribute has 
a value (type NMToken) that names the attribute to be modified, and 
value has the value to substitute. These directives result in the BPSS 
instance to be used. For example, a different BT can be pointed to in a 
BTA by edited the IDREF value of businessTransactionRef. Editing 
attributes of Specification elements within Document can change details 
of documents, updating versions or whatever. Hence this mechanism has as 
much power, probably more, than we need for simple edits. Other 
transforms can make use of xslt transforms, CAM or whatever.

2. The Xinclude is now a Candidate Rec and so we can replace our Include 
element with the xi:include element. The include processing will occur 
at the infoset level and must be done prior to instance validation. We 
constrain include constructs to be used to include Packages picked out 
using the XInclude apparatus from BPSS instances. Any 
AttributeSubstitution directed edits are done after XInclude processing.

*Attribute name and related cleanup*

1. Resolved to standardize on using a suffix of “Ref” when an attribute 
is type IDREF. This harmonized the mixed bag of names we had.
2. Resolved to formulate a list of well formedness rules providing 
constraints on just what IDREF expressions could reference.
3. collaborationRef replaces binaryCollaborationRef within 
CollaborationActivity, and these can now reference any of the 
Collaboration elements (which are now expanded to be: 
BinaryCollaboration, MultipartyCollaboration, and 
BusinessCollaboration). These should differ solely in the multiplicity 
of Roles. Both Package and ProcessSpecification updated to include 
BusinessCollaboration.
4. parentRef attribute added to Package to indicate subordination. 
Package is now just a convenience used to organize Collaborations and 
their referenced elements. They are also the units of inclusion, which 
is their primary reason to exist. While the Packages can nest, no 
particular semantics attaches to this nesting.
5. Changed attribute names on Performs to ones liked more by majority 
toRole and fromRole dropped in favor of currentRoleRef and performsRoleRef.

*New Content Models for Variable and OperationMapping*

Variables are being introduced to provide some very simple functionality 
that has been requested.

The *Variable* content model is:

<xsd:element name="Variable">
<xsd:annotation>
<xsd:documentation>Global.BtaRef and BdRef point to what context and 
documents are relevant to ConditionExpression evalutation. Variable 
assumes type, if any, from expression evaluation</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ConditionExpression"/>
</xsd:sequence>
<xsd:attributeGroup ref="name"/>
<xsd:attribute name="BtaRef" type="xsd:IDREF" use="optional"/>
<xsd:attribute name="BdRef" type="xsd:IDREF" use="optional"/>
</xsd:complexType>
</xsd:element>

Variables can be listed in Packages or in the root element, 
ProcessSpecification. They should be regarded as global in scope.

A BtaRef is used to indicate the choreographic context in which the 
Variable will be assigned a value. Multiple trips through a BTA will 
result in a list of values handled by the underlying implementation in 
accordance with its expressionLanguage. Two expression languages are to 
be supported for V2.0: xslt and xpath. The BdRef points to the 
BusinessDocument that is the source of data for processing of expressions.

A ConditionExpression contains a declaration of the expressionLanguage 
and the expression to be evaluated against the instance of BD 
encountered as the BTA is entered. XPath values are stored in variables. 
These variables can be used in xslt expressions that occur anywhere in 
ConditionExpressions. So a POId value from a Purchase Order can be 
stored in a variable PO, and a POId value from an Invoice can be stored 
in a variable I. Transition links can then use the equality or 
inequality of I and PO to control transition.

It was the editorial groups’ firm conviction that we would leverage 
other expression notations for xml processing. As these mature, more 
expressive power can be added to the apparatus if it is requested. But 
variables can be a complex and arduous for design (scope, assignment and 
reassignment, etc,) and we want to keep it simple. The variables mainly 
resemble xslt variables that can be input into xslt processing “from the 
environment” The main complication is that in effect each new transition 
to a BTA results in a new assignment to the global (resembling running a 
transform again). Saving values from previous passes over a BTA and 
using them in expressions stretches the notation. JJ and John will 
document how that functionality is to be supported. It will leave the 
responsibility to the implementer.

The *OperationMapping *content model is:

<xsd:complexType name="OperationMappingType">
<xsd:sequence>
<xsd:element name="MessageMap" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attributeGroup ref="map"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SignalMap" minOccurs="0" maxOccurs="8">
<xsd:complexType>
<xsd:attributeGroup ref="map"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="name"/>
<xsd:attribute name="roleRef" type="xsd:IDREF" use="required"/>
<xsd:attribute name="BtaRef" type="xsd:IDREF" use="required"/>
</xsd:complexType>

<xsd:attributeGroup name="map">
<xsd:attribute name="interfaceName" type="xsd:NMTOKEN" use="required">
<xsd:annotation>
<xsd:documentation>interface is called portType in WSDL 
1.1</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="operationName" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="operationStep" type="StepType" use="required"/>
<xsd:attribute name="docEnvRef" type="xsd:IDREF" use="required"/>
</xsd:attributeGroup>

<xsd:simpleType name="StepType">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="input"/>
<xsd:enumeration value="output"/>
<xsd:enumeration value="fault"/>
</xsd:restriction>
</xsd:simpleType>

The idea is that a BTA can be mapped into WSDL defined interfaces and 
operations. OperationMapping provides information on how the mapping 
works. The BtaRef refers to the BTA that is mapped. The roleRef 
indicates (I think) what is to have the service role in the WS that is 
mapped. A sequence of MessageMaps and SignalMaps then says what 
interface, operation, and operation “step” (input, output, or fault) 
goes with what document envelope. This is similar to saying, in wsdl 
1.1, what the type of the message is that is associated with the steps 
of the operation. If people think we should have qnames rather than 
NMTokens for some of the attribute values let me know. The editors' team 
determined qnames should not be used at this time.
=================================================================================================

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Dale Moberg (Web Services Description WG) -->
<xsd:schema targetNamespace="http://www.oasis-open.org/committees/ebBP/BPS/2.0"; xmlns="http://www.oasis-open.org/committees/ebBP/BPS/2.0"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xi="http://www.w3.org/2001/XInclude"; elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"; schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<xsd:element name="ProcessSpecification" type="ProcessSpecificationType">
		<xsd:unique name="ProcessSpecification-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="ProcessSpecificationType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="AttributeSubstitution" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ExternalRoles" minOccurs="0"/>
			<xsd:element ref="Signal" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="Variable" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="Package" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessDocument" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessTransaction" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BinaryCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="MultiPartyCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="OperationMapping" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="version" type="xsd:string" use="required"/>
		<xsd:attribute name="uuid" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="Package">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="PackageType"/>
			</xsd:complexContent>
		</xsd:complexType>
		<xsd:unique name="Package-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="PackageType">
		<xsd:choice maxOccurs="unbounded">
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="AttributeSubstitution" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ExternalRoles" minOccurs="0"/>
			<xsd:element ref="Signal" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="Variable" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="Package" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessDocument" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessTransaction" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BinaryCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="MultiPartyCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="BusinessCollaboration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="OperationMapping" minOccurs="0"/>
			</xsd:choice>
		</xsd:choice>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="parentRef" type="xsd:IDREF" use="optional"/>
	</xsd:complexType>
	<xsd:element name="Documentation" type="DocumentationType">
		<xsd:annotation>
			<xsd:documentation> xml:lang added.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="DocumentationType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="uri" type="xsd:anyURI"/>
				<xsd:attribute ref="xml:lang"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<!--AtributeSubstitution allowed to "edit" references (IDREFS)  or other attribute values. -->
	<xsd:element name="AttributeSubstitution">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="AttributeSubstitutionType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="AttributeSubstitutionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="nameIDRef" type="xsd:IDREF" use="required"/>
		<xsd:attribute name="attributeName" type="xsd:NMTOKEN" use="required"/>
		<xsd:attribute name="value" type="xsd:string" use="required"/>
	</xsd:complexType>
	<!--Include element is replaced by XInclude's include element. This include element is not imported into our schema, but should be processed (and replaced by the referenced XML) prior to validation of instances-->
	<xsd:element name="ExternalRoles" type="ExternalRolesType"/>
	<xsd:complexType name="ExternalRolesType">
		<xsd:sequence>
			<xsd:element name="BusinessPartnerRole" minOccurs="2" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="Documentation" minOccurs="0"/>
						<xsd:element name="Performs" type="PerformsType" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:attributeGroup ref="name"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="BinaryCollaboration" type="BinaryCollaborationType">
		<xsd:annotation>
			<xsd:documentation>Two roles</xsd:documentation>
		</xsd:annotation>
		<xsd:unique name="BinaryCollaboration-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
		<xsd:unique name="BinaryCollaborationRole-ID">
			<xsd:selector xpath=".//Role"/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="BinaryCollaborationType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="Role" minOccurs="2" maxOccurs="2">
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="RoleType"/>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="TimeToPerform"/>
			<xsd:element ref="Start"/>
			<xsd:choice maxOccurs="unbounded">
				<xsd:element ref="BusinessTransactionActivity" minOccurs="0"/>
				<xsd:element ref="CollaborationActivity" minOccurs="0"/>
				<xsd:element ref="ComplexBusinessTransactionActivity" minOccurs="0"/>
				<xsd:element ref="Success" minOccurs="0"/>
				<xsd:element ref="Failure" minOccurs="0"/>
				<xsd:element ref="Transition" minOccurs="0"/>
				<xsd:element ref="Fork" minOccurs="0"/>
				<xsd:element ref="Join" minOccurs="0"/>
				<xsd:element ref="Decision" minOccurs="0"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="pattern" type="xsd:anyURI"/>
		<xsd:attribute name="isInnerCollaboration" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<xsd:element name="MultiPartyCollaboration" type="MultiPartyCollaborationType">
		<xsd:annotation>
			<xsd:documentation>More than two roles.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="MultiPartyCollaborationType">
		<xsd:complexContent>
			<xsd:restriction base="BusinessCollaborationType">
				<xsd:sequence>
					<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="Role" minOccurs="3" maxOccurs="unbounded">
						<xsd:complexType>
							<xsd:complexContent>
								<xsd:extension base="RoleType"/>
							</xsd:complexContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element ref="TimeToPerform"/>
					<xsd:element ref="Start"/>
					<xsd:choice maxOccurs="unbounded">
						<xsd:element ref="BusinessTransactionActivity" minOccurs="0"/>
						<xsd:element ref="CollaborationActivity" minOccurs="0"/>
						<xsd:element ref="ComplexBusinessTransactionActivity" minOccurs="0"/>
						<xsd:element ref="Success" minOccurs="0"/>
						<xsd:element ref="Failure" minOccurs="0"/>
						<xsd:element ref="Transition" minOccurs="0"/>
						<xsd:element ref="Fork" minOccurs="0"/>
						<xsd:element ref="Join" minOccurs="0"/>
						<xsd:element ref="Decision" minOccurs="0"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attributeGroup ref="name"/>
				<xsd:attribute name="pattern" type="xsd:anyURI"/>
				<xsd:attribute name="isInnerCollaboration" type="xsd:boolean" default="false"/>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="BusinessCollaboration" type="BusinessCollaborationType" abstract="true">
		<xsd:annotation>
			<xsd:documentation>Two or more roles.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="BusinessCollaborationType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="Role" minOccurs="2" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="RoleType"/>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="TimeToPerform"/>
			<xsd:element ref="Start"/>
			<xsd:choice maxOccurs="unbounded">
				<xsd:element ref="BusinessTransactionActivity" minOccurs="0"/>
				<xsd:element ref="CollaborationActivity" minOccurs="0"/>
				<xsd:element ref="ComplexBusinessTransactionActivity" minOccurs="0"/>
				<xsd:element ref="Success" minOccurs="0"/>
				<xsd:element ref="Failure" minOccurs="0"/>
				<xsd:element ref="Transition" minOccurs="0"/>
				<xsd:element ref="Fork" minOccurs="0"/>
				<xsd:element ref="Join" minOccurs="0"/>
				<xsd:element ref="Decision" minOccurs="0"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="pattern" type="xsd:anyURI"/>
		<xsd:attribute name="isInnerCollaboration" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<xsd:element name="DocumentEnvelope" type="DocumentEnvelopeType"/>
	<xsd:complexType name="DocumentEnvelopeType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="Attachment" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="businessDocumentRef" type="xsd:IDREF" use="required"/>
		<xsd:attribute name="isPositiveResponse" type="xsd:boolean"/>
		<xsd:attributeGroup ref="documentSecurity"/>
	</xsd:complexType>
	<xsd:element name="BusinessDocument" type="BusinessDocumentType"/>
	<xsd:complexType name="BusinessDocumentType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ConditionExpression" minOccurs="0"/>
			<xsd:element ref="Specification" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:element name="Attachment">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="Specification" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attributeGroup ref="name"/>
			<xsd:attribute name="businessDocumentRef" type="xsd:IDREF" use="required"/>
			<xsd:attribute name="mimeType" type="xsd:string" use="optional"/>
			<xsd:attributeGroup ref="documentSecurity"/>
			<xsd:attribute name="minOccurs" type="xsd:integer" use="optional"/>
			<xsd:attribute name="maxOccurs" type="xsd:integer" use="optional"/>
		</xsd:complexType>
		<xsd:unique name="Attachment-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:element name="Specification">
		<xsd:complexType>
			<xsd:attribute name="type" type="DocumentSpecificationType" use="optional" default="schema"/>
			<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
			<xsd:attribute name="targetNamespace" type="xsd:anyURI" use="optional"/>
			<xsd:attributeGroup ref="name"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="BusinessTransactionActivity">
		<xsd:annotation>
			<xsd:documentation>isLegallyBinding is deprecated.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionActivityType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="BusinessTransactionActivityType">
		<xsd:annotation>
			<xsd:documentation>isConcurrent removed. See ComplexBTA instead.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="BusinessActivityType">
				<xsd:sequence>
					<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="Performs" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="TimeToPerform"/>
				</xsd:sequence>
				<xsd:attribute name="businessTransactionRef" type="xsd:IDREF" use="required"/>
				<xsd:attribute name="isLegallyBinding" type="xsd:boolean" default="true"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="ComplexBusinessTransactionActivity">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionActivityType">
					<xsd:choice minOccurs="0" maxOccurs="unbounded">
						<xsd:sequence>
							<xsd:element ref="ComplexBusinessTransactionActivity"/>
							<xsd:element ref="StatusVisibility"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:element ref="BusinessTransactionActivity"/>
							<xsd:element ref="StatusVisibility"/>
						</xsd:sequence>
					</xsd:choice>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="StatusVisibility">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="BusinessDocumentList" type="BusinessDocumentValueList"/>
				<xsd:element name="SubstateVisibility" type="ConditionGuardValueList"/>
				<xsd:any/>
			</xsd:sequence>
			<xsd:attributeGroup ref="name"/>
			<xsd:anyAttribute namespace="##any"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CollaborationActivity" type="CollaborationActivityType"/>
	<xsd:complexType name="CollaborationActivityType">
		<xsd:complexContent>
			<xsd:extension base="BusinessActivityType">
				<xsd:sequence>
					<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="Performs" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
				<xsd:attribute name="collaborationRef" type="xsd:IDREF" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="FromLink">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessStateLinkType">
					<xsd:attribute name="fromBusinessStateRef" type="xsd:IDREF" use="required"/>
					<xsd:attribute name="conditionGuard" type="ConditionGuardValue" use="optional"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ToLink">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessStateLinkType">
					<xsd:attribute name="toBusinessStateRef" type="xsd:IDREF" use="required"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="BusinessStateLinkType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0"/>
			<xsd:element ref="ConditionExpression" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="ConditionExpression">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="ConditionExpressionType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ConditionExpressionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="expressionLanguage" type="xsd:string" use="required"/>
		<xsd:attribute name="expression" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:element name="Start" type="StartType">
		<xsd:unique name="Start-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="StartType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ToLink" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:element name="Transition" type="TransitionType"/>
	<xsd:complexType name="TransitionType">
		<xsd:sequence>
			<xsd:element ref="FromLink"/>
			<xsd:element ref="ToLink"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="Decision" type="DecisionType">
		<xsd:unique name="Decision-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="DecisionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="FromLink"/>
			<xsd:element ref="ToLink" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:element name="Fork" type="ForkType">
		<xsd:unique name="Fork-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="ForkType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="FromLink"/>
			<xsd:element ref="ToLink" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="type" use="optional" default="OR">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="OR"/>
					<xsd:enumeration value="XOR"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="timeToPerform" type="xsd:duration" use="optional"/>
	</xsd:complexType>
	<xsd:element name="Join" type="JoinType">
		<xsd:unique name="Join-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="JoinType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="FromLink" maxOccurs="unbounded"/>
			<xsd:element ref="ToLink" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="waitForAll" type="xsd:boolean" default="true"/>
	</xsd:complexType>
	<xsd:element name="Success" type="CompletionType">
		<xsd:unique name="Success-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:element name="Failure" type="CompletionType">
		<xsd:unique name="Failure-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="CompletionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="FromLink" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:element name="BusinessAction" type="BusinessActionType" abstract="true"/>
	<xsd:complexType name="BusinessActionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="DocumentEnvelope"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="isAuthorizationRequired" type="xsd:boolean" default="false"/>
		<xsd:attribute name="isIntelligibleCheckRequired" type="xsd:boolean" default="false"/>
		<xsd:attribute name="isNonRepudiationRequired" type="xsd:boolean" default="false"/>
		<xsd:attribute name="isNonRepudiationReceiptRequired" type="xsd:boolean" default="false"/>
		<xsd:attribute name="timeToAcknowledgeReceipt" type="xsd:duration"/>
		<xsd:attribute name="timeToAcknowledgeAcceptance" type="xsd:duration"/>
	</xsd:complexType>
	<xsd:element name="RequestingBusinessActivity" type="RequestingBusinessActivityType"/>
	<xsd:complexType name="RequestingBusinessActivityType">
		<xsd:complexContent>
			<xsd:extension base="BusinessActionType">
				<xsd:attribute name="retryCount" type="xsd:int" default="0"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="RespondingBusinessActivity" type="RespondingBusinessActivityType"/>
	<xsd:complexType name="RespondingBusinessActivityType">
		<xsd:complexContent>
			<xsd:extension base="BusinessActionType">
				<xsd:attribute name="retryCount" type="xsd:int" default="0"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="BusinessActivityType">
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:element name="Performs">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="PerformsType"/>
			</xsd:complexContent>
		</xsd:complexType>
		<xsd:unique name="Performs-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="PerformsType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="currentRoleRef" type="xsd:IDREF" use="required"/>
		<xsd:attribute name="performsRoleRef" type="xsd:IDREF" use="optional"/>
		<xsd:attribute name="initiatingRoleRef" type="xsd:IDREF" use="optional"/>
		<xsd:attribute name="respondingRoleRef" type="xsd:IDREF" use="optional"/>
	</xsd:complexType>
	<xsd:complexType name="RoleType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="nameID" type="xsd:ID" use="required"/>
	</xsd:complexType>
	<xsd:element name="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element ref="RequestingBusinessActivity"/>
						<xsd:element ref="RespondingBusinessActivity"/>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
		<xsd:unique name="BusinessTransaction-ID">
			<xsd:selector xpath="."/>
			<xsd:field xpath="nameID"/>
		</xsd:unique>
	</xsd:element>
	<xsd:complexType name="BusinessTransactionType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0"/>
			<xsd:element name="BeginsWhen" type="ConditionExpressionType" minOccurs="0"/>
			<xsd:element name="PreCondition" type="ConditionExpressionType" minOccurs="0"/>
			<xsd:element name="PostCondition" type="ConditionExpressionType" minOccurs="0"/>
			<xsd:element name="EndsWhen" type="ConditionExpressionType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="pattern" type="xsd:anyURI"/>
		<xsd:attribute name="isGuaranteedDeliveryRequired" type="xsd:boolean" default="false"/>
	</xsd:complexType>
	<xsd:element name="CommercialTransaction" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
											<xsd:element name="AcceptanceAcknowledgement" type="AcceptanceAcknowledgementType"/>
											<xsd:element name="AcceptanceAcknowledgementException" type="AcceptanceAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="retryCount" use="optional"/>
										<xsd:attribute name="timeToAcknowledgeAcceptance" default="P6H"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="P2H"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="true"/>
										<xsd:attribute name="isNonRepudiationRequired" default="true"/>
										<xsd:attribute name="isAuthorizationRequired" default="true"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="true"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="RespondingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RespondingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope" maxOccurs="unbounded"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
											<xsd:element name="AcceptanceAcknowledgement" type="AcceptanceAcknowledgementType"/>
											<xsd:element name="AcceptanceAcknowledgementException" type="AcceptanceAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="true"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="true"/>
										<xsd:attribute name="isNonRepudiationRequired" default="true"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="true"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="P2H"/>
										<xsd:attribute name="timeToAcknowledgeAcceptance" default="P6H"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RequestConfirm" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="retryCount" use="optional"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="0"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isAuthorizationRequired" default="true"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="RespondingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RespondingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope" maxOccurs="unbounded"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="true"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="false"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="P2H"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RequestResponse" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
										</xsd:sequence>
										<xsd:attribute name="retryCount" use="optional"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="RespondingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RespondingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope" maxOccurs="unbounded"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="QueryResponse" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
										</xsd:sequence>
										<xsd:attribute name="retryCount" use="optional"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="RespondingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RespondingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope" maxOccurs="unbounded"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isIntelligibleCheckRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="InformationDistribution" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="false"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="P24H"/>
										<xsd:attribute name="timeToAcknowledgeAcceptance" use="prohibited"/>
										<xsd:attribute name="isIntelligibleCheckRequired" use="optional"/>
										<xsd:attribute name="retryCount" use="optional"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Notification" substitutionGroup="BusinessTransaction">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="BusinessTransactionType">
					<xsd:sequence>
						<xsd:element name="RequestingBusinessActivity">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:restriction base="RequestingBusinessActivityType">
										<xsd:sequence>
											<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
											<xsd:element ref="DocumentEnvelope"/>
											<xsd:element name="ReceiptAcknowledgement" type="ReceiptAcknowledgementType"/>
											<xsd:element name="ReceiptAcknowledgementException" type="ReceiptAcknowledgementExceptionType"/>
										</xsd:sequence>
										<xsd:attribute name="isAuthorizationRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationRequired" default="false"/>
										<xsd:attribute name="isNonRepudiationReceiptRequired" default="false"/>
										<xsd:attribute name="timeToAcknowledgeReceipt" default="P24H"/>
										<xsd:attribute name="timeToAcknowledgeAcceptance" use="prohibited"/>
										<xsd:attribute name="isIntelligibleCheckRequired" use="optional"/>
										<xsd:attribute name="retryCount" use="optional"/>
									</xsd:restriction>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<!--NotificationOfFailure,ReceiptOfResponseAcknowledgement,General Exception-->
	<xsd:element name="Signal" type="SignalType"/>
	<xsd:complexType name="SignalEnvelopeType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="signalDefinitionRef" type="xsd:IDREF" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="SignalType">
		<xsd:sequence>
			<xsd:element ref="Documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ConditionExpression" minOccurs="0"/>
			<xsd:element ref="Specification" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
	</xsd:complexType>
	<xsd:complexType name="ReceiptAcknowledgementType">
		<xsd:complexContent>
			<xsd:extension base="SignalEnvelopeType">
				<xsd:attribute name="isPositiveReceipt" type="xsd:boolean" fixed="true"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ReceiptAcknowledgementExceptionType">
		<xsd:complexContent>
			<xsd:extension base="SignalEnvelopeType">
				<xsd:attribute name="isPositiveSignal" fixed="false"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="AcceptanceAcknowledgementType">
		<xsd:complexContent>
			<xsd:extension base="SignalEnvelopeType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="AcceptanceAcknowledgementExceptionType">
		<xsd:complexContent>
			<xsd:extension base="SignalEnvelopeType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="GeneralExceptionType">
		<xsd:complexContent>
			<xsd:extension base="SignalEnvelopeType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="TimeToPerform">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Variable" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="duration" type="xsd:duration" use="optional"/>
			<xsd:attribute name="type" type="TimeToPerformType" use="optional" default="design"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Variable">
		<xsd:annotation>
			<xsd:documentation>Global.BtaRef and BdRef point to what context and documents are relevant to ConditionExpression evalutation. Variable assumes type, if any, from expression evaluation</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ConditionExpression"/>
			</xsd:sequence>
			<xsd:attributeGroup ref="name"/>
			<xsd:attribute name="BtaRef" type="xsd:IDREF" use="optional"/>
			<xsd:attribute name="BdRef" type="xsd:IDREF" use="optional"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OperationMapping" type="OperationMappingType">
		<xsd:annotation>
			<xsd:documentation>Maps a BTA and its BusinessDocuments to Interface/Operation messages</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="OperationMappingType">
		<xsd:sequence>
			<xsd:element name="MessageMap" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:attributeGroup ref="map"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="SignalMap" minOccurs="0" maxOccurs="8">
				<xsd:complexType>
					<xsd:attributeGroup ref="map"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
		<xsd:attributeGroup ref="name"/>
		<xsd:attribute name="roleRef" type="xsd:IDREF" use="required"/>
		<xsd:attribute name="BtaRef" type="xsd:IDREF" use="required"/>
	</xsd:complexType>
	<xsd:simpleType name="TimeToPerformType">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="design"/>
			<xsd:enumeration value="configuration"/>
			<xsd:enumeration value="runtime"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="TrueFalseNull">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="true"/>
			<xsd:enumeration value="false"/>
			<xsd:enumeration value="null"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="BusinessDocumentValueList">
		<xsd:list itemType="xsd:NMTOKEN"/>
	</xsd:simpleType>
	<xsd:simpleType name="ConditionGuardValueList">
		<xsd:list itemType="ConditionGuardValue"/>
	</xsd:simpleType>
	<xsd:simpleType name="ConditionGuardValue">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="ProtocolSuccess"/>
			<xsd:enumeration value="AnyProtocolFailure"/>
			<xsd:enumeration value="RequestReceiptFailure"/>
			<xsd:enumeration value="RequestAcceptanceFailure"/>
			<xsd:enumeration value="ResponseReceiptFailure"/>
			<xsd:enumeration value="ResponseAcceptanceFailure"/>
			<xsd:enumeration value="SignalTimeout"/>
			<xsd:enumeration value="ResponseTimeout"/>
			<xsd:enumeration value="BusinessSuccess"/>
			<xsd:enumeration value="BusinessFailure"/>
			<xsd:enumeration value="Success"/>
			<xsd:enumeration value="Failure"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DocumentSpecificationType">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="schema"/>
			<xsd:enumeration value="dtd"/>
			<xsd:enumeration value="wsdl"/>
			<xsd:enumeration value="relaxng"/>
			<xsd:enumeration value="other"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="StepType">
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="input"/>
			<xsd:enumeration value="output"/>
			<xsd:enumeration value="fault"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:attributeGroup name="documentSecurity">
		<xsd:attribute name="isAuthenticated">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="none"/>
					<xsd:enumeration value="transient"/>
					<xsd:enumeration value="persistent"/>
					<xsd:enumeration value="transient-and-persistent"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="isConfidential">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="none"/>
					<xsd:enumeration value="transient"/>
					<xsd:enumeration value="persistent"/>
					<xsd:enumeration value="transient-and-persistent"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="isTamperDetectable">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="none"/>
					<xsd:enumeration value="transient"/>
					<xsd:enumeration value="persistent"/>
					<xsd:enumeration value="transient-and-persistent"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="map">
		<xsd:attribute name="interfaceName" type="xsd:NMTOKEN" use="required">
			<xsd:annotation>
				<xsd:documentation>interface is called portType in WSDL 1.1</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="operationName" type="xsd:NMTOKEN" use="required"/>
		<xsd:attribute name="operationStep" type="StepType" use="required"/>
		<xsd:attribute name="docEnvRef" type="xsd:IDREF" use="required"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="name">
		<xsd:attribute name="name" type="xsd:string" use="required"/>
		<xsd:attribute name="nameID" type="xsd:ID" use="required"/>
	</xsd:attributeGroup>
</xsd:schema>


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