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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-dev message

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


Subject: Re: [ubl-dev] Re: [ebxml-dev] Best practise for enteringmultiple uri's inan ebXMLdocument?


Excellent,
Many thanks! David and Dale - just the information I need.
*Very* encouraging on both aspects.

Best wishes

Steve

>>> "Dale Moberg" <dmoberg@cyclonecommerce.com> 04/05/05 19:25:26 >>>


-----Original Message-----
From: Stephen Green [mailto:stephen_green@bristol-city.gov.uk] 
Sent: Wednesday, May 04, 2005 10:19 AM
To: ebxml-dev@lists.ebxml.org 
Cc: ubl-dev@lists.oasis-open.org 
Subject: Re: [ebxml-dev] Best practise for entering multiple uri's inan
ebXMLdocument?

Folks,


Stephen Green writes
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/mai 
ndoc/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> 

Is this a misuse of ebBPSS?

DaleMoberg> 

The lack of a way to enumerate multiple specifications pertaining to a
BusinessDocument was a specific issue lodged against 1.x versions of
BPSS. It is resolved in 2.0 by shifting from an attribute to an
(unbounded) sequence of Specification elements looking like:

<BusinessDocument nameID="IDO1000" name="UBL Order 1.0">
        <Specification nameID="UBLPurchaseOrder" name="UBLPurchaseOrder"
            location="http://www.acme.com/UBL-Order-1.0.xsd";
type="schema"/>
 </BusinessDocument>


So for your example,several Specification elements would be used instead
of trying to create a space separated list in the attribute.


Can it be done a better way (e.g. in BPSS 2.0)?

Dale> See above. The TC has approved 2.0 several weeks ago.

Can the same be done with ebCPPA and ebMS?

ebCPPA 2.0 (and the working drafts on 2.1) all allow multiple Namespace
declarations as needed to identify those used in an XML document. For
ebCPPA, it would be used to express an agreement to support document
exchanges where the data is drawn from those Namespaces.

I think ebMS would not need to use the Namespace information for its
protocol. However, Namespace information can be part of the information
about the arrival of a BusinessDocument that an ebMS might publish as an
Event to be consumed by a subscribed a BPSS monitoring software
component. This is because the BusinessDocumentEnvelope language used in
described BPSS transitions needs to be "operationalized" so that


>>> "David Webber (XML)" <david@drrw.info> 04/05/05 20:22:30 >>>
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" <stephen_green@bristol-city.gov.uk>
To: <ebxml-dev@lists.ebxml.org>
Cc: <ubl-dev@lists.oasis-open.org>
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? ar And that of course is the whole poi
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" <stephen_green@bristol-city.gov.uk> 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: ubl-dev-unsubscribe@lists.oasis-open.org 
For additional commands, e-mail: ubl-dev-help@lists.oasis-open.org 



---------------------------------------------------------------------
To unsubscribe, e-mail: ubl-dev-unsubscribe@lists.oasis-open.org 
For additional commands, e-mail: ubl-dev-help@lists.oasis-open.org 



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