Subject: Re: [ubl-dev] Re: [ebxml-dev] Best practise for entering multiple uri's inan ebXMLdocument?
Stephen, I saw Dale's post. The original BPSS work under Brian Hayes' leadership deferred this functionality to CAM and therefore if instead of referencing an XSD - your URI points to UBL-Invoice-1.0.cam then you can use the tools CAM provides to contextually reference the particular XSD instance that you wish for the context that applies. This way you can have a logical business document in the BPSS - and then reference the actual physical layout according to context. And that of course is the whole point here - that multiple formats may be required - and a means to have a neutral ruleset that can be applied across different formats. So using this CAM-based approached you could in fact target X12 EDI or EDIFACT equivalents along with the UBL XML as alternates - depending on the trading partner requirements. Page 41 of the specification has more details on this - and Martin Roberts has a BT example that chooses between 50+ (!) formats - depending on the type of telco switch device the trouble ticket is coming from. He uses the <include/> mechanism to pull in the sub-structure depending on which of the 50+ varients is needed (see page 49 on that). As a snippet to illustrate what is going on inside the CAM template: <as:CAM CAMlevel="1" version="0.13" xmlns:as="http://www.oasis-open.org/committees/cam"> <as:Header> <as:Description>References Multiple UBL message formats</as:Description> <as:Owner>UBL-demo</as:Owner> <as:Version>0.1</as:Version> <as:DateTime>2004-09-09T17:00:00</as:DateTime> - <as:Parameters> - <!-- Set your context parameter declaration --> <as:Parameter name="myContextFlag" values="UBL-1|UBL-2|OTHER" use="global" default="UBL-1" /> </as:Parameters> </as:Header> - <as:AssemblyStructure> - <as:Structure ID="default" taxonomy="XML"> <!-- link to UBL-1 structure and layout goes in here --> <as:include>myUBL1.xml</as:include> </as:Structure> <as:Structure ID="UBL-2" taxonomy="XML"> <!-- UBL-2 goes in here --> <as:include>myUBL2.xml</as:include> </as:Structure> <as:Structure ID="OTHER" taxonomy="XML"> <!-- Another one goes in here --> <as:include>myUBLx.xml</as:include> </as:Structure> </as:AssemblyStructure> - <as:BusinessUseContext> - <as:Rules> <as:context condition="token='$myContextFlag' and contains(value,'UBL-1')> <as:constraint action="useChoiceByID(default)"/> </as:context> <as:context condition="token='$myContextFlag' and contains(value,'UBL-2')> <as:constraint action="useChoiceByID(UBL-2)"/> </as:context> <as:context condition="token='$myContextFlag' and contains(value,'OTHER')> <as:constraint action="useChoiceByID(OTHER)"/> </as:context> </as:Rules> </as:BusinessUseContext> </as:CAM> Enjoy, DW ----- Original Message ----- From: "Stephen Green" <email@example.com> To: <firstname.lastname@example.org> Cc: <email@example.com> Sent: Wednesday, May 04, 2005 1:19 PM Subject: [ubl-dev] Re: [ebxml-dev] Best practise for entering multiple uri's inan ebXMLdocument? Folks, To clarify my previous posting, this is how my example looks at present (based on ebBPSS1.04.xsd): .. . <BusinessDocument name="UBL SBS Invoice" nameID="UBL-1.0-SBS-1.0-Invoice" specificationID="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0 urn:oasis:names:tc:ubl:xpath:Invoice-1.0:sbs-1.0" specificationLocation="http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/maindoc /UBL-Invoice-1.0.xsd [...]/xpaths/xml/XPath/Invoice-XPath.xml"> <Documentation> The documents are an XSD file and a subset definition that specify the rules for creating the XML document for the business action of invoicing the buyer. </Documentation> </BusinessDocument> .. . ( Note: '[...]' in the second specificationLocation is just a placeholder until we have a persistent url) Is this a misuse of ebBPSS? Can it be done a better way (e.g. in BPSS 2.0)? Can the same be done with ebCPPA and ebMS? Stephen Green >>> "Stephen Green" <firstname.lastname@example.org> 04/05/05 14:09:22 >>> Would anybody help me? I'm putting together part of a spec which requires me to provide an example of how to enter both a message payload namespace and a secondary uri (in this case for a 'subset') into a typical ebXML document (e.g. BPSS, CPPA or ebMS). I've chosen (on advice) the BPSS document and have simply added the second uri after the first with a space between. I have the following questions: 1. Is this the best practise way a. to specify the finer payload details - in the BPSS? and b. to use pace separated uri's? (it seems a little ambiguous to do this - without a way to show that the first is the payload schema namespace and the second is a further metadata specification uri) 2. I've done this with a version of BPSS 1. Would this be different in BPSS 2? 3. Would it be too early to be documenting examples of anything in BPSS 2? 4. Is there a way to do this with CPP/CPA docs or would it simply be sufficient to rely on the reference to a BPSS or equivalent? 5. Is there a way to do this with ebMS 3? (or is it sufficient to rely on the reference to the CPA?/BPSS?) 6. Is it too early to document an example for ebMS 3? 7. If too early for ebMS 3, how would one do this for the previous version? 8. Has anyone any real world experience of this sort of thing and willing to share how they did this? 9. How would this be done with CAM say? - One for DW :-) 10. Is it too early to be talking at all of best practise for this sort of thing? I'd appreciate any answers to any of the above. Many thanks Stephen Green --------------------------------------------------------------------- To unsubscribe, e-mail: email@example.com For additional commands, e-mail: firstname.lastname@example.org