[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]