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: Schema Changes and Related Questions to the TC


UBL TC,

Greetings.

I was tasked at the last Atlantic TC call with using the updated NDR document
from the McLean face-to-face along with the minutes of the last Atlantic TC call
to bring together a list of Schema Change Requirements for perusal by the 
SSC and for agreement by the TC prior to their being passed to David for
action. Please find and consider for this purpose the attached file called 
"First Set of Schema Changes Required for UBL 1-1 (draft 1).txt".

During this task I came across some ambiguities for which I think we would
need clarification, perhaps leading to further Schema change requirements
(I would suggest, for the next deadline for such changes). I have listed these 
in the attached file called 
"Clarifications Requested for First Set Schema Changes.txt".
Please would the TC consider these queries too.

An important need for further NDR review (and other technical discussion) 
relates to the derivation requirements in rules VER8 and VER9. As a possible
aid to further this discussion I have created a set of three prototype Schemas
which I've packaged together with imported (directly and indirectly) UBL 1.0
Schemas and these are attached as zipped (extension renamed) file 
"xsd-derivation-1-1-prototype-2.zzz"
together with a list of changes which would
minimally, I believe, be necessary to Schemas to implement these called
"Prototype of derivation 2.txt". 
The latter file contains a list (at the end) of suggested points for NDR and TC
consideration.

A particular outcome of this excercise was the realisation that it might be
that only some of the Schemas (CAC, CBC, documents and possibly some
codelists) and not all (e.g. not necessarily UDT, CCT, CCParams) would need
changing in UBL 1.1. UBL 1.0 would potentially provide the other Schemas
unchanged as indirect imports. This may have a bearing on how the existing
and changed NDR rules are to be implemented, particularly affecting the view
of the updated rules relating to the UDT Schema and CCT Schema.

Special consideration might be required separately of how codelist updates
should be implemented within this design.

* -----------------------------------------------------------------------------------------
The most pressing of the attached documents may be the set of Schema
change requirements "First Set of Schema Changes Required for UBL 1-1 (draft 1).txt"
as for these there was the deadline of today. However some aspects of the other 
matters may affect the decision whether to agree these changes and the
appropriateness or otherwise of implementing these changes first, as planned.
* -----------------------------------------------------------------------------------------


Unfortunately it wasn't possible for the SSC to consider these matters other
than the GXS1, VER8 and VER9 rules at the last meeting so it would seem
best in keeping with the schedule for these to be agreed (or otherwise) by the TC
first. Then the agreed changes can be both passed to David and simultaneously, 
perhaps, looked at by the SSC.

Many thanks

All the best

Stephen Green


First Specification of Schema Changes Required for UBL Version 1.1  (1st March 2005)
------------------------------------------------------------------------------------ 


NOTES

Some NDR 1.1 changes which DO NOT require changes to the Schemas 
are noted here:


N1. Changes to the rules defining the identifiers in the document name section 
of each of the common Schema headers leave the identifiers used in UBL 1.0 
common Schemas unchanged, e.g. 'CommonAggregateComponents' (Rule SSM10), 
'CommonBasicComponents' (Rule SSM12), etc.

N2. GSX6 does not appear to require any changes to Schemas. It now states
"The xsd:final attribute MUST be used to control extensions where there is
a desire to prohibit further extensions"



QUERIES

Some NDR 1.1 changes appear to require changes which might break backwards
compatibility and so clarification is being sought of these from the TC. 

These have been forwarded along with other queries as a separate document to the TC

Further rules are also sought from the TC to clarify such issues as how the VER8 and
VER9 rules impact on rule GXS1 (concerning details of layout).

Answers to these queries may form part of a second submission of Schema changes
requested later in the year.

The changes below are those thought to be unambiguous from the change requirements
received before the first deadline set as 1st March 2005.




CHANGE REQUIREMENTS (1st March 2005)


Schema changes required by NDR version 1.1 work in McLean Feb 2005
(note that this list excludes for the timebeing a possible further set
of codelist Schema change requirements):


C1. Changes to Rule DOC8 now states the following:

"The xsd:documentation element for every Supplementary Component
attribute declarationType MUST contain a structured set of annotations in the 
following sequence and pattern: 
• Name (mandatory): Name in the Registry of a Supplementary Component of 
a Core Component Type. 
• Definition (mandatory): A clear, unambiguous and complete explanation of 
the meaning of a Supplementary Component and its revlevance for the related 
Core Component Type. 
• Primitive type (mandatory): PrimitiveType to be used for the representation 
of the value of a Supplementary Component. 
• Possible Value(s) (optional): one possible value of a Supplementary 
Component."

This requires the addition of xsd:documentation to every Supplementary
Component attribute where it is declared in the common Schemas (CCT, UDT and SDT)
and codelist Schemas 


C2. New Rule DOC9 in addition to change C1 above states the following:

"The xsd:documentation element for every Supplementary Component
attribute declaration containing restrictions MUST include the following 
additional information appended to the information required by DOC8: 
• Restriction Value(s) (mandatory): The actual value(s) that is (are) valid for 
the Supplementary Component." 

This requires further xsd:documentation for Supplementary Components attribute
declarations which contain restrictions




C3. New Rule CTD20 states:

"For every property identified in the UBL model a named XSD:ComplexType
must be defined"

This may perhaps mean the creation of new complex types but see C4 below.





Schema changes required by NDR version 1.0 and version 1.1 due to UBL 1.1
being a minor release


C4. All versioning rules, though unchanged from NDR 1.0, may apply differently
to UBL 1.1 Schemas compared with 1.0 Schemas but special attention is drawn to
rules VER8 and VER9 which are expected to have a major impact on 1.1 Schema
generation. These state:

"[VER8] A UBL minor version document schema MUST import its immediately preceding
version document schema.
[VER9] UBL Schema and schema module minor version changes MUST be limited to the
use of xsd:extension or xsd:restriction to alter existing types or add new constructs."

This clearly implies that some additional mechanism is required to be employed
in Schema generation for UBL 1.1 (and any subsequent minor versions) in which
comparison is made with the previous version.

[see Query Q7 in separate query document]


Special Changes made to rule GXS1 during TC Atlantic Call 23rd Feb 2005, though
requiring a later review in line with C4 and query Q7 above, require the following
Schema layout (which would need to be fitted later with C4 details once these
are provided):


C5. 1.1 Schema layout required by the currently amended rule GSX1
     with added agreements/comments in square brackets and 
     with a), b), etc denoting subsections for clarity


[GXS1]
UBL Schema MUST conform to the following physical layout as applicable:


a)

XML Declaration

i.e. <?xml version="1.0" encoding="UTF-8"?>


b)

Schemas should include comment section separator.

<!-- ===== Copyright Notice ===== -->


c)

Required OASIS full copyright notice.

  "Copyright ? 2001-2004 The Organization for the Advancement of Structured
  Information Standards (OASIS). All rights reserved.

Copyright text should be taken verbatim from OASIS:
http://www.oasis-open.org/who/ipr/intellectual_property_2000-1-13.php
section OASIS.IPR.4.Notices, subsections (A), (B), (C), and,
when applicable, subsection (D).

(This is a new ipr policy for OASIS and takes effect on 15 April 2005.)


d)

In addition, the following fields should be included in the header comment,
below the copyright:

OASIS Open (http://www.oasis-open.org/)
Universal Business Language Specification
    (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ubl)
Document Name: <insert document name w/o suffix>
Generated On: <insert date with timestamp>


e)

They should be clearly separated from the copyright notice.
A single dashed line should be used as the separator.


f)

<!-- ===== xsd:schema Element With Namespaces Declarations ===== -->

Schemas need to be updated to include this comment line.


g)

xsd:schema element to include version attribute and namespace declarations in
the following order:

  xmlns:xsd

[Schemas already conform with above line.]

  Target namespace
  Default namespace
  CommonAggregateComponents
  CommonBasicComponents
  CoreComponentTypes
  Unspecialized Datatypes
  Specialized Datatypes
  Identifier Schemes
  Code Lists

[Schemas currently don't conform to this order.
Order needs review for technical issues, but otherwise is fine as in rule.
Schemas need to be updated to conform to this order (unless technical
reason for altering the order).]



[NOTE: Not all schemas need to include all the following declarations.
'As applicable', in the opening sentence
of the rule, means these can be present or not present, as needed, as long
as they are in this order. This applies to several of the following cases]

h)

Attribute Declarations:

elementFormDefault="qualified"
attributeFormDefault="unqualified" 

[schemas currently conform to the two lines above.]


i)

<!-- ===== Imports ===== -->

[Schemas do not have this comment line.
Add this to schemas (unless there are no imports)]


j)

  CommonAggregateComponents schema module
  CommonBasicComponents schema module
  Unspecialized Types schema module
  Specialized Types schema module

[Schemas don't currently conform to this order.
Change schemas to conform to this order unless
technically problematic or non-standard. Some 
have added that the order is only important
for the sake of specification of some order
and note that there is no other technical 
requirement to adhere to any particular order so
if for some technical reason the order cannot
be maintained in generation that is understood.]


k)


[There will be further discussion later about specifying 
in the Rule the following which are currently already included
by the Schema generator
  - any codelist schemas
  - cc parameters schema]


l)


   <!-- ===== Global Attributes ===== -->
   Global Attributes and Attribute Groups

[The Schemas already conform to this.
Add global attribute or attribute groups here,
and add comment section separator when they are present.]


m)

  <!-- ===== Root Element ===== -->
  Root Element Declaration
  Root Element Type Definition

[This is how it is now in schemas,
but schemas need to add comment section separator.]


n)

  <!-- ===== Element Declarations ===== -->
  alphabetized order

[This is how it is now in schemas,
but schemas need to add comment section separator.]

[Further discussion will consider the following additions to the rule
about setting the alphabetical order: ignore case
   (i.e., fold case), and ignore the xsd-related suffix "type" when
   it's there purely for xsd reasons.]


o)

  <!-- ===== Type Definitions ===== -->
  All type definitions segregated by basic and aggregates as follows

[Schemas should add comment section separator.]


p)

  <!-- ===== Aggregate Business Information Entity Type Definitions ===== -->
  alphabetized order of AggregateBusinessInformationEntity TypeDefinitions


[Schemas should include comment section separator if section has content.]



q)

  <!-- =====Basic Business Information Entity Type Definitions ===== -->
  alphabetized order of BasicBusinessInformationEntities

[Schemas should include comment section separator if section has content.]



[Note: there still needs to be review of the Parameters (CCTS) Schema and
the above may need revision  for codelist Schemas depending on the outcome
of codelist Schema design decisions. Further changes may be required to 
conform to VER8 and VER9 too.] 






----------------------------------------------------------------------------------------

An Illustration to Aid in discussion of NDR Rules and Schema Generator Design for use of
Derivation in adding new BIEs to UBL minor versions (here a prototypic 1.1 version) 

----------------------------------------------------------------------------------------

Author: Stephen D.Green 
Date:   Feb 28th 2005

----------------------------------------------------------------------------------------



These notes are to accompany a set of Schemas (prototype-2) illustrating a simple use of xsd derivation to
implement NDR rules VER8 and VER9 in a minor version prototype of UBL. The illustration involves
the minimalistic case of the addition of a single BBIE to an Invoice both at Document level and at line
level. No other changes are made other than those necessary to the Invoice Document, Common Aggregate Component 
and Common Basic Component Schemas.

The three new Schemas are held in the folders (for illustration called common-prototype-2 and maindoc-prototype-2)
and all other Schemas are imported from the 1.0 folders. This may well be an over-simplification and it might
be decided that all Schemas should be updated to the new version (e.g. 1.1) but both the directly and all the
indirectly imported Schemas (almost all previous version Schemas) would still have to be provided in the package.

The following are the additions to Schemas that were found to be necessary for this minimal derivation mechanism.





Invoice Schema showing a new BBIE (InspectionDate as an example) at Document level in the Invoice Document
----------------------------------------------------------------------------------------------------------

...

xmlns="urn:oasis:names:prototype:ubl:schema:xsd:Invoice-1.1" xmlns:in10="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0" 

...

xmlns:cbc="urn:oasis:names:prototype:ubl:schema:xsd:CommonBasicComponents-1.1" xmlns:cac="urn:oasis:names:prototype:ubl:schema:xsd:CommonAggregateComponents-1.1" 

...

targetNamespace="urn:oasis:names:prototype:ubl:schema:xsd:Invoice-1.1" 

...


<xsd:import namespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0" schemaLocation="../maindoc/UBL-Invoice-1.0.xsd"/>
	
...

<xsd:import namespace="urn:oasis:names:prototype:ubl:schema:xsd:CommonBasicComponents-1.1" schemaLocation="../common-prototype-2/UBL-CommonBasicComponents-1.1-prototype-2.xsd"/>
<xsd:import namespace="urn:oasis:names:prototype:ubl:schema:xsd:CommonAggregateComponents-1.1" schemaLocation="../common-prototype-2/UBL-CommonAggregateComponents-1.1-prototype-2.xsd"/>

...

      <xsd:complexType name="InvoiceType">
	<xsd:annotation>
          <xsd:documentation>
            <ccts:Component>
              <ccts:ComponentType>ABIE</ccts:ComponentType>
              <ccts:DictionaryEntryName>Invoice. Details</ccts:DictionaryEntryName>
              <ccts:Version>1.1</ccts:Version>
              <ccts:Definition>the document that describes the finanical commitment of the Order</ccts:Definition>
              <ccts:ObjectClass>Invoice</ccts:ObjectClass>
            </ccts:Component>
          </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
          <xsd:extension base="in10:InvoiceType">
	    <xsd:sequence>
              <xsd:element ref="InspectionDate" minOccurs="0" maxOccurs="1" >
                <xsd:annotation>
                  <xsd:documentation>
                    <ccts:Component>
                      <ccts:ComponentType>BBIE</ccts:ComponentType>
                      <ccts:DictionaryEntryName>Invoice. Inspection Date. Date</ccts:DictionaryEntryName>
                      <ccts:Definition>..[an additional BIE for illustrating a prototype of derivation]..</ccts:Definition>
                      <ccts:Cardinality>0..1</ccts:Cardinality>
                      <ccts:ObjectClass>Invoice</ccts:ObjectClass>
                      <ccts:PropertyTerm>Inspection Date</ccts:PropertyTerm>
                      <ccts:RepresentationTerm>Date</ccts:RepresentationTerm>
                      <ccts:DataType>Date_Date Time. Type</ccts:DataType>
                    </ccts:Component>
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:element name="InspectionDate" type="cbc:InspectionDateType"/>

	


Common Aggregate Schema showing a new BBIE (InspectionDate as an example ) at ABIE level in the InvoiceLine
-----------------------------------------------------------------------------------------------------------


...


xmlns="urn:oasis:names:prototype:ubl:schema:xsd:CommonAggregateComponents-1.1"
xmlns:cac10="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0"
    
...

targetNamespace="urn:oasis:names:prototype:ubl:schema:xsd:CommonAggregateComponents-1.1"

...

<xsd:complexType name="InvoiceLineType">
    <xsd:annotation>
      <xsd:documentation>
        <ccts:Component>
          <ccts:ComponentType>ABIE</ccts:ComponentType>
          <ccts:DictionaryEntryName>Invoice Line. Details</ccts:DictionaryEntryName>
          <ccts:Version>1.1</ccts:Version>
          <ccts:Definition>information directly relating to a line item of a transaction. It identifies the item but only includes details about the item that are pertinent  to one occurrence on a line item, e.g. quantity etc.</ccts:Definition>
          <ccts:ObjectClass>Invoice Line</ccts:ObjectClass>
        </ccts:Component>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="cac10:InvoiceLineType">
        <xsd:sequence>
          <xsd:element ref="cbc:InspectionDate" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>
                <ccts:Component>
                  <ccts:ComponentType>BBIE</ccts:ComponentType>
                  <ccts:DictionaryEntryName>Invoice. Inspection Date. Date</ccts:DictionaryEntryName>
                  <ccts:Definition>..[an additional BIE for illustrating a prototype of derivation]..</ccts:Definition>
                  <ccts:Cardinality>0..1</ccts:Cardinality>
                  <ccts:ObjectClass>Invoice</ccts:ObjectClass>
                  <ccts:PropertyTerm>Inspection Date</ccts:PropertyTerm>
                  <ccts:RepresentationTerm>Date</ccts:RepresentationTerm>
                  <ccts:DataType>Date_Date Time. Type</ccts:DataType>
                </ccts:Component>
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
...





Common Basic Schema showing a new BBIE (at ABIE level in the InvoiceLine in the CAC Schema)
-------------------------------------------------------------------------------------------

...

    xmlns="urn:oasis:names:prototype:ubl:schema:xsd:CommonBasicComponents-1.1"

...

    targetNamespace="urn:oasis:names:prototype:ubl:schema:xsd:CommonBasicComponents-1.1"

...


  <xsd:element name="InspectionDate" type="InspectionDateType"/>

...


  <xsd:complexType name="InspectionDateType">
    <xsd:simpleContent>
      <xsd:extension base="udt:DateType"/>
    </xsd:simpleContent>
  </xsd:complexType>

...






Comments and Observations
-------------------------

  1. No 1.1 changes to NDR rules are shown here, only derivation VER8 and VER9 concepts and a possible use of 
      ccts:Version in the documentation

  2. Matters for NDR consideration might include 
  a)  - a rule for the the prefix naming convention to be used for imported Schema namespaces
  b)  - clarification of the methods for documentation when derivation is invloved
  c)  - an update to rule GXS1
  d)  - further complexity may result in problems if Schemas other than those above (e.g. codelist Schemas) are changed

  3. There appears to be an error in the CM documentation in that both xsd:complexContent and xsd:sequence
      are omitted in the extension example

  4. Modeling issues arise from the need to add new BIEs only at the end of existing sequences (as was
      emphasised in earlier 'containership discussions') 

  5. Illustrations of any resulting need to use xsi:type in instances may warrant further instance examples 
      for UBL 1.1

 

PKZIP (compressed) files

Queries Regarding Schema Changes for UBL version 1.1 (Feb 2005)
----------------------------------------------------

A. Backwards Compatibility Queries


Some NDR 1.1 changes appear to require changes which might break backwards
compatibility and so clarification is sought of these from the TC. 

These are:


Q1. Rule GNR10 has been added which reads 

"Acronyms and abbreviations at the beginning of an attribute declaration
MUST appear in all lower case. All other acronym and abbreviation usage in
an attribute declaration must appear in upper case." 

This would appear to require the following change to the 1.0 common Schemas:
Change of the attribute "URI" of the CCT BinaryType to all lower case "uri".
Although this has no bearing on actual UBL 1.0 documents since these do not
use this CCT, backwards compatibility for customized versions (including new
documents created using the customization methodology) might use the BinaryType
CCT and therefore loose backwards compatibility if converted to UBL 1.1 were 
this change implemented in the UBL 1.1 Schemas and in Edifix. 


Q2. Rule GNR11 has been added which reads

"Acronyms MUST appear in all upper case for all element declarations and
type definitions."

If this rule were to require the renaming of any existing 1.0 elements this
too would break backwards compatibility of instances in 1.1 with 1.0.


Q3. Rule ATN2 states

"If the object class of the supplementary component dictionary entry name
contains the name of the representation term of the parent CCT, the duplicated 
object class word or words MUST be removed from the supplementary 
component xsd:attribute name."


Q4. Rule ATN2 now states:

"If the object class of the supplementary component dictionary entry name
contains the name of the representation term of the parent CCT, the
duplicated object class word or words MUST be removed from the
supplementary component xsd:attribute name."

If this new rule were to require Schema changes then these might break backwards
compatibility. Would the TC confirm whether Schema changes should be made according
to this rule or not. This may relate to clarification requested from the SSC regarding
naming in general where it was again assumed that no actual name changes would be
either required or (where backwards compatibility might be affected) allowed.




B. Other Queries



Q5. Rules CTD7 to CTD12 are accompanied by explanatory text in the NDR document
which is changed in 1.1 to include the clarifying term "uses xsd:base" in parentheses,
as follows:

"5.1.3.13.1 Unspecialized Datatypes

The ccts:UnspecializedDatatypes reflect the instantiation of the ccts:Core 
ComponentTypes. Each ccts:UnspecializedDatatype declaration is based on 
(uses xsd:base) its corresponding qualified ccts:CoreComponentType and 
represents either a primary or secondary representation term. "

In particular Rule CTD10 states

"Every unspecialized Datatype that represents a secondary representation term 
whose corresponding ccts:CCT is defined as an xsd:simpleType MUST 
also be defined as an xsd:simpleType and MUST be based on the same 
xsd:simpleType." 

This would appear to require that the UDT Schema's datatype declarations
for simpleType dataypes use the corresponding CCT as their xsd:base rather
than an xsd:dataype (as used in 1.0). This would require changes to the UDT Schema
(to the simpleTypes) but clarification of this is sought from the TC.
The combination of the NDR text "Each ccts:UnspecializedDatatype declaration is based on 
(uses xsd:base) its corresponding qualified ccts:CoreComponentType" and 
the "...and MUST be based on the same xsd:simpleType..." in the Rule CTD10 means that
it isn't quite clear whether the simpleType UDTs should be have as xsd:base the
corresponding cct:datatype or the xsd:datatype. 
Clarification is sought again over the UDT DateType which requires use of the xsd:date
and cannot use as xsd:base the cct:DateTimeType nor the datatype xsd:dateTime (which the
CCT DateTimeType uses). How does this rule apply?

Q6. Similar to Q5 above, rule CTD12 states

"The unspecialized Primary Representation Term Datatype
xsd:complexType definition xsd:simpleContent element must contain 
one xsd:restriction element with an xsd:base attribute whose value is 
equal to the corresponding cct:ComplexType"

Clarification in line with Q5 is sought here since it is rather ambiguous as
to whether the UDT based on a CCT should use the same xsd:dataype as its xsd:base
as the corresponding CCT uses or whether as its base it should use the cct:datatype
itself? e.g. should the UDT Name have xsd:base='xsd:string' or xsd:base='cct:TextType'
(cct:TextType having xsd:base='xsd:string')?  


Q7. Rules VER8 and VER9 which are expected to have a major impact on 1.1 Schema 
generation. 

These state:

[VER8] A UBL minor version document schema MUST import its immediately preceding
version document schema.
[VER9] UBL Schema and schema module minor version changes MUST be limited to the
use of xsd:extension or xsd:restriction to alter existing types or add new constructs.

This clearly implies that some additional mechanism is required to be employed
in Schema generation for UBL 1.1 (and any subsequent minor versions) in which
comparison is made with the previous version.
 
Further rules are sought from the TC to clarify such issues as which namespaces are
to be used for imports, 'tc' or 'specification' and as defining the 'previous version'
and how this rule impacts, as expected, on rule GXS1 (concerning details of layout).







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