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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl message

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


Subject: Description of implemented extension constructs for NDR consideration


At 2006-07-17 22:06 -0400, I wrote:
>At 2006-07-17 14:13 -0700, jon.bosak@sun.com wrote:
>>URGENT NDR ISSUES
>>...
>>    There are some other issues that may profitably be discussed
>>    depending on call participation.  As far as I know, none of
>>    them impact PRD2.
>
>SW: GEFEG needs major update to NDR regarding extensions.
>
>ACTION: GKH to post prose for consideration by 
>NDR editors to reflect decisions resulting in the existing schemas.

The sanity check for PRD2 posted here:

   <http://lists.oasis-open.org/archives/ubl/200607/msg00087.html>http://lists.oasis-open.org/archives/ubl/200607/msg00087.html

and revised schema expressions posted 2006-07-18 at 2130z here:

   http://lists.oasis-open.org/archives/ubl/200607/msg00098.html

both incorporate extension constructs that have 
been accepted by some committee members who have 
previewed their implementation.

That extensions are allowed in UBL documents is specified in NDR 2006-07-12:

   <http://lists.oasis-open.org/archives/ubl/200607/msg00055.html>http://lists.oasis-open.org/archives/ubl/200607/msg00055.html

but in the development of the implementation some 
changes were made to accommodate requirements.

Rule ELD12 states that the first optional child 
of every UBL document element must be 
<UBLExtensions>.  Note that the rule must be 
edited for the plural instead of the 
singular.  Note also that the element is in the 
namespace 
"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" 
and for documentary purposes uses the namespace 
prefix "ext", so the name in the sample instances is <ext:UBLExtensions>.

To incorporate the extension declarations into 
each document model, each document XSD file must 
import the newly-created 
common/UBL-CommonExtensionComponents-2.0.xsd 
common XSD fragment describing the metadata 
associated with the extension information found 
in a UBL instance.  This fragment in turn 
includes the newly-created 
common/UBL-ExtensionContentDatatype-2.0.xsd 
common XSD fragment describing the content of the 
extension information found in a UBL instance.

Note that with the recent introduction of 
extension metadata to the design discussions, the 
extension element that now has the unconstrained 
content is named <ext:ExtensionContent> ... 
therefore the NDR rule GXS14 needs to be modified 
such that the complex type named 
ExtensionContentType (defined in 
UBL-ExtensionContentDatatype-2.0.xsd) is the 
exception and not the name currently stated in the NDR document.

The 
xsd/common/UBL-CommonExtensionComponents-2.0.xsd 
includes documentation for each of the extension 
metadata constructs, contributed by a TC member.  All metadata is optional.

As the rule ELD12 already covers the presence and 
cardinality of the UBLExtensions element, the 
remainder of the declarations are all 
self-contained in the schema fragments.  I don't 
believe it is required to spell out in sentences 
how to create the schema fragment since it is 
self-contained and unchanged by the document 
models; including the text of the two fragments 
in normative annexes of the NDR document is probably sufficient.

Below is an example instance showing the presence 
of two extensions in a single UBL instance, each 
with fully populated metadata (though with nonsensical values):

<?xml version="1.0"?>
<Invoice
xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" 

xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" 

xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 

xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 

xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" 

xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" 

xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
    <ext:UBLExtensions>
      <ext:UBLExtension>
        <cbc:ID>E1</cbc:ID>
        <cbc:Name>N1</cbc:Name>
        <ext:ExtensionAgencyID>EAI1</ext:ExtensionAgencyID>
        <ext:ExtensionAgencyName>EAN1</ext:ExtensionAgencyName>
        <ext:ExtensionAgencyURI>EAU1</ext:ExtensionAgencyURI>
        <ext:ExtensionURI>urn:x-crane:example</ext:ExtensionURI>
        <ext:ExtensionReasonCode>OPT</ext:ExtensionReasonCode>
        <ext:ExtensionReason>Crane legacy invoice 
material</ext:ExtensionReason>
        <ext:ExtensionContent>
          <crane:LegacyExtension xmlns:crane="urn:x-crane:example">
            ...legacy invoice stuff...
          </crane:LegacyExtension>
        </ext:ExtensionContent>
      </ext:UBLExtension>
      <ext:UBLExtension>
        <cbc:ID>E2</cbc:ID>
        <cbc:Name>N2</cbc:Name>
        <ext:ExtensionAgencyID>EAI2</ext:ExtensionAgencyID>
        <ext:ExtensionAgencyName>EAN2</ext:ExtensionAgencyName>
        <ext:ExtensionAgencyURI>EAU2</ext:ExtensionAgencyURI>
        <ext:ExtensionURI>urn:x-nes:example</ext:ExtensionURI>
        <ext:ExtensionReasonCode>MAN</ext:ExtensionReasonCode>
        <ext:ExtensionReason>NES invoice material</ext:ExtensionReason>
        <ext:ExtensionContent>
          <nes:InvoiceExtension xmlns:nes="urn:x-nes:example">
            ...NES invoice stuff...
          </nes:InvoiceExtension>
        </ext:ExtensionContent>
      </ext:UBLExtension>
    </ext:UBLExtensions>
    <cbc:UBLVersionID>2.0-prd2</cbc:UBLVersionID>
    ...

What more information would NDR editors like to 
have regarding how these extensions are 
incorporated in UBL with NDR rules?  I'm anxious 
to help, but not sure what more is needed to tie 
what has been done with the set of rules that 
governs what is created in schemas by NDR rules 
... thankfully, there is only one extension 
point, and it has little impact on rules to create schemas.

I hope this helps ... please let me know if you have any questions.

. . . . . . . . . . . . Ken


--
Registration open for UBL training:    Montréal, Canada 2006-08-07
Also for XSL-FO/XSLT training:    Minneapolis, MN 2006-07-31/08-04
Also for UBL/XML/XSLT/XSL-FO training: Varo,Denmark 06-09-25/10-06
World-wide corporate, govt. & user group UBL, XSL, & XML training.
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/o/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/o/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal



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