[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [ebxml-bp] [ebBP] 10/22/2004: Editors' Update and Reminder aboutTeam Call Today 8 a.m. PDT
Monica, Here's what I've been working on the variable content model and aligning it to roles. This is essential for multi-party collaborations - and in trying just a really plain variable mechanism - it is not enough to support a basic implementation. So we've added a couple more concepts - not much - to what's there already - but that buys much more flexibility and gets us out from under the rock of having to pick an expression language - with a really neat and simple referencing use of xs:IDs. People can use XSD, XPath, XSLT, RELAX or CAM as they need. Below is a sample instance of variables for an automotive scenario, and attached is the XSD just for this part. The critical thing is having enough function to support actual implementation without making a burden to use. I'm in the middle of documenting this all in Word doc too - just been really hard getting this done and all project and other distractions this week. We can discuss on the call. Thanks, DW ========================================== <Variables> <variableGroup name="default" nameIDREF="default01"> <!-- the first variableGroup instance is automatically the default group that applies to all roles and partners.--> <Variable name="myvar1" definitionID="mydefn1" default="any"/> <Variable name="myvar2" definitionID="mydefn2"/> <Variable name="myvar3" definitionID="mydefn3"/> </variableGroup> <variableGroup name="for-GM-only" nameIDREF="gm01"> <!-- subsequent variableGroup are referenced by name from ExternalRoles for specific participants / roles --> <Variable name="myvar1" definitionID="mydefn1" default="GM"/> <Variable name="myvar2" definitionID="mydefn2"/> <Variable name="myvar3" definitionID="mydefn3"/> <Variable name="gmvar1" definitionID="gmdefn1" default="Detroit"/> <Variable name="gmvar2" definitionID="mydefn4" default="Chevrolette"/> </variableGroup> <definitionSection> <!-- note - this could be referenced using an include also --> <definition definitionID="mydefn1" label="Value 1:" default="one"> <detail expressionLanguage="XSD" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="RELAX" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="XSLT" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="CAM" returns="string"> <!-- target syntax goes here --> </detail> </definition> <definition definitionID="mydefn2" label="Value 2:" default="true" documentRef="purchaseOrder"> <detail expressionLanguage="XPath" returns="boolean"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="XSLT" returns="boolean"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="CAM" returns="boolean"> <!-- target syntax goes here --> </detail> </definition> </definitionSection> </Variables>
<Variables> <variableGroup name="default" nameIDREF="default01"> <!-- the first variableGroup instance is automatically the default group that applies to all roles and partners.--> <Variable name="myvar1" definitionID="mydefn1" default="any"/> <Variable name="myvar2" definitionID="mydefn2"/> <Variable name="myvar3" definitionID="mydefn3"/> </variableGroup> <variableGroup name="for-GM-only" nameIDREF="gm01"> <!-- subsequent variableGroup are referenced by name from ExternalRoles for specific participants / roles --> <Variable name="myvar1" definitionID="mydefn1" default="GM"/> <Variable name="myvar2" definitionID="mydefn2"/> <Variable name="myvar3" definitionID="mydefn3"/> <Variable name="gmvar1" definitionID="gmdefn1" default="Detroit"/> <Variable name="gmvar2" definitionID="mydefn4" default="Chevrolette"/> </variableGroup> <definitionSection> <!-- note - this could be referenced using an include also --> <definition definitionID="mydefn1" label="Value 1:" default="one"> <detail expressionLanguage="XSD" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="RELAX" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="XSLT" returns="string"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="CAM" returns="string"> <!-- target syntax goes here --> </detail> </definition> <definition definitionID="mydefn2" label="Value 2:" default="true" documentRef="purchaseOrder"> <detail expressionLanguage="XPath" returns="boolean"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="XSLT" returns="boolean"> <!-- target syntax goes here --> </detail> <detail expressionLanguage="CAM" returns="boolean"> <!-- target syntax goes here --> </detail> </definition> </definitionSection> </Variables>
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Variables"> <xs:complexType> <xs:sequence> <xs:element name="variableGroup" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Variable" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="name" use="required" type="xs:string"/> <xs:attribute name="definitionID" use="required" type="xs:ID"/> <xs:attribute name="default" use="optional" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" use="required" type="xs:string"/> <xs:attribute name="nameIDREF" use="required" type="xs:ID"/> </xs:complexType> </xs:element> <xs:element name="definitionSection"> <xs:complexType> <xs:sequence> <xs:element name="definition" maxOccurs="unbounded"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="detail" maxOccurs="unbounded"> <xs:complexType> <xs:choice> <xs:any namespace="##any" processContents="lax"/> </xs:choice> <xs:attribute name="expressionLanguage" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="CAM"/> <xs:enumeration value="RELAX"/> <xs:enumeration value="XPath"/> <xs:enumeration value="XSD"/> <xs:enumeration value="XSLT"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="returns" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="xs:boolean"/> <xs:enumeration value="xs:string"/> <xs:enumeration value="xs:datetime"/> <xs:enumeration value="xs:integer"/> <xs:enumeration value="xs:decimal"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="definitionID" use="required" type="xs:ID"/> <xs:attribute name="label" type="xs:string" use="required"/> <xs:attribute name="default" use="optional" type="xs:string"/> <xs:attribute name="documentRef" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]