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: RE: [ebxml-bp] CAM templates and TWIST documents


Dale,
 
Supplemental thoughts.
 
I've just reviewed what TWIST are doing with their message headers here:
 http://twiststandards.org/twiststandards/tiki-index.php?page_ref_id=108
 
with the structure having different conversation types depending on the role.
 
Therefore - CAM seems to provide what they need - either via a parameter - or simply using XPath statements to trigger the correct structure and rules to apply - based off what the message header contains.
 
The CAM expressions for XPath / Structure matching proceeds until it determines the first matching item - so this would work well with their use case of mutually exclusive conversation elements in the header.
 
Obviously they can setup sets of CAM templates to match the domain use areas they have.  The raw original XSD definitions are used to provide the actual XML structure instances to be used - that are then included into the CAM templates.
 
Additionally versioning and variations in those structures are fully supported by CAM as well.
 
DW

"The way to be is to do" - Confucius (551-472 B.C.)


-------- Original Message --------
Subject: [ebxml-bp] CAM templates and TWIST documents
From: "David RR Webber (XML)" <david@drrw.info>
Date: Tue, April 03, 2007 12:37 pm
To: Dale Moberg <dmoberg@us.axway.com>
Cc: ebxml-bp@lists.oasis-open.org

Dale,
 
Here's my thoughts on this - since at first blush this looks exactly the use case we have had in mind for mapping between conceptual business documents in the BPSS to physical instance uses via a CAM template reference.
 
The document CAM template is parameter aware - so the BPSS variable can also be used to denote what specific transaction handling is needed - and you can declare multiple structure definitions in the CAM template, and then select the one you need conditionally.
 
So stepping through this the CAM template components and linkage would be:
 
1) Declare one or more parameter variables in the CAM template header
    (the actual value(s) would be passed to the CAM processor by the BPSS at runtime)
 
2) Declare one or more structure instances in the CAM template. 
    (these are best done as <include> from external definition sets)
 
3) When CAM runs it will match the parameter passed to the structure instance in the template to be used
 
4) Alternatively you can make the linkage here dynamic - so either the XPath to a structure item can be checked to test which structure instance is being transacted ( therefore external parameters not needed) - or the CAM template can be directly associated by the XML instance.
 
5) A further alternate is to have one structure definition - but select / deselect parts of the structure based on rules / parameters. 
  So for example: if(TWIST transaction) is export - customs-segments required else remove customs-segments.
The bottom line here is that the CAM template gives you a tremendous amount of flexibility in mapping between the TWIST document conceptual use pattern, and the physical handling needed of the XML itself.
 
From the BPSS stance - you simply provide the coupling to the CAM template - and we've provided the "hooks" in BPSS to enable that - and then the CAM template provides the physical transaction mapping.
 
Hope that helps.
 
DW
 

"The way to be is to do" - Confucius (551-472 B.C.)


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