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: Clarification regarding UBL 2.0 schema fragments


Hello all,

In my work for UBL 2.1 SGTG I found some unexpected issues in UBL 2.0 
and it would help me to know some of the history of the UN/CEFACT 
schema fragments found in the UBL 2.0 distribution.  It has taken me 
many hours to noodle out what we have in UBL 2.0 to work with for UBL 
2.1, and perhaps someone on the list can clarify the discrepancies 
I've found.  Please bear with me for this long post.

Thankfully I don't think this affects conformance in any way, so 
there are no UBL 2.0 concerns being raised here, I just need help 
understanding why decisions were made the way they were for UBL 2.0 
UN/CEFACT schema fragments.

I wasn't part of the team that selected and included the UN/CEFACT 
schema fragments in the delivery.  My focus was on the phase two validation.

When I created the CVA artefacts for:

http://docs.oasis-open.org/ubl/os-UBL-2.0/val/defaultCodeList.xsl

... it turns out I inadvertently used this schema fragment as a basis 
for instance-level metadata:

http://docs.oasis-open.org/ubl/os-UBL-2.0/xsd/common/CCTS_CCT_SchemaModule-2.0.xsd

It turns out that module is in our directory but not used at all by 
any of the other schema fragments.

Rather, the related module that is used is:

http://docs.oasis-open.org/ubl/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

And there are important differences regarding code list metadata and 
CCTS supplementary components.

Recall my discussion with Yildiray:

    http://lists.oasis-open.org/archives/ubl/200904/msg00016.html

To distinguish the 2001 code list from the 2009 code list the 
val/defaultCodeList.xsl looks for the CCTS supplementary component 
coded as follows:

  <cbc:Amount currencyID="TRK"
              currencyCodeListVersionID="2001">123.45</cbc:Amount>

And it turns out this isn't an attribute in UBL 2.0!!  There is no 
list version identification in UBL 2.0.

It seems that I found that currencyCodeListVersionID= supplementary 
component in CCTS_CCT_SchemaModule-2.0.xsd and it isn't part of UBL 
2.0 because that component isn't part of 
UnqualifiedDataTypeSchemaModule-2.0.xsd.

I note the selection of data types in the two fragments is different, 
and the selection of instance-level metadata is also different.  The 
two long lists of elements and their attributes are copied 
below.  UnqualifiedDataTypeSchemaModule-2.0.xsd has instance-level 
metadata only for codes and identifier, not amounts, measurements and 
quantities.

So, we need to add the instance-level metadata in to UBL 2.1 in order 
to address the important use case cited above.  We cannot derive that 
automatically from CCTS_CCT_SchemaModule-2.0.xsd because the list of 
types is incomplete.  Then again, "core component types" are 
different than "data types", so this isn't surprising.

So the first step for me is to understand how we ended up with the 
schema fragments in UBL 2.0 so that I can recognize if I'm missing 
something.  Can anyone help?

I found the definitive list of supplementary components (implemented 
as instance-level metadata attributes) for CCTS 2.01 core component 
types ... I'm reading CCTS 2.01 section 6.1.2:

   http://www.unece.org/cefact/ebxml/CCTS_V2-01_Final.pdf

... and tables 8-1 and 8-2.  I note that 
CCTS_CCT_SchemaModule-2.0.xsd (which we don't use) appears to 
incompletely codify table 8-1.  Table 8-2 has supplementary 
components incompletely codified as instance-level metadata in 
UnqualifiedDataTypeSchemaModule-2.0.xsd data types.  In both cases 
there is instance-level metadata we need in the specification and 
table but not in the corresponding schema fragment.

I think we need to create an UnqualifiedDataTypeSchemaModule-2.1.xsd 
that is a complete implementation of CCTS 2.01 table 8-2 
supplementary components as instance-level metadata for the data 
types of UBL 2.0.  Then we will have the instance-level metadata to 
support the scenario cited above.  But neither of the UN/CEFACT 
schema fragments we have can be automatically distilled into a 
complete implementation of CCTS 2.01 table 8-2 supplementary 
components.  Does anyone know of an existing UN/CEFACT schema 
fragment that *is* a complete implementation of CCTS 2.01 table 8-2?

There is a statement at the very end of 6.1.1 that reads "Table 8-2 
may subsequently be published separately to facilitate maintenance 
outside the body of this specification".  Is there a newer version of 
CCTS 2.01 table 8-2 somewhere that matches the list of data types 
used in UBL 2.0?

Again, this isn't a conformance issue, as the fact that 
defaultCodeList.xsd in UBL 2.0 is looking for something that is never 
there isn't a problem except for wasting a few machine cycles.

And, since instance-level metadata is optional, we can add all of the 
CCTS 2.01 supplementary components as new attributes for UBL 2.1 data 
types without impacting on the validity of a UBL 2.0 instance in a 
UBL 2.1 system.

Thanks for any light anyone can shed on the UBL 2.0 decisions that 
were made and the two incomplete UN/CEFACT schema modules we are 
currently using.

. . . . . . . . . . Ken

Types used by UBL BBIEs:
   udt:AmountType
   udt:BinaryObjectType
   udt:CodeType
   udt:DateType
   udt:IdentifierType
   udt:IndicatorType
   udt:MeasureType
   udt:NameType
   udt:NumericType
   udt:PercentType
   udt:QuantityType
   udt:RateType
   udt:TextType
   udt:TimeType

UnqualifiedDataTypeSchemaModule-2.0.xsd:
    <xsd:complexType name="AmountType">
             <xsd:attribute name="currencyID"
    <xsd:complexType name="BinaryObjectType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="characterSetCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="GraphicType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="PictureType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="SoundType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="VideoType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="CodeType">
             <xsd:attribute name="listID"
             <xsd:attribute name="listAgencyID"
             <xsd:attribute name="listAgencyName"
             <xsd:attribute name="listName"
             <xsd:attribute name="listVersionID"
             <xsd:attribute name="name"
             <xsd:attribute name="languageID"
             <xsd:attribute name="listURI"
             <xsd:attribute name="listSchemeURI"
    <xsd:simpleType name="DateTimeType">
    <xsd:simpleType name="DateType">
    <xsd:simpleType name="TimeType">
    <xsd:complexType name="IdentifierType">
         <xsd:attribute name="schemeID"
         <xsd:attribute name="schemeName"
         <xsd:attribute name="schemeAgencyID"
         <xsd:attribute name="schemeAgencyName"
          <xsd:attribute name="schemeVersionID"
          <xsd:attribute name="schemeDataURI"
          <xsd:attribute name="schemeURI"
    <xsd:simpleType name="IndicatorType">
    <xsd:complexType name="MeasureType">
             <xsd:attribute name="unitCode"
    <xsd:simpleType name="NumericType">
    <xsd:simpleType name="ValueType">
    <xsd:simpleType name="PercentType">
    <xsd:simpleType name="RateType">
    <xsd:complexType name="QuantityType">
             <xsd:attribute name="unitCode"
    <xsd:complexType name="TextType">
             <xsd:attribute name="languageID"
    <xsd:complexType name="NameType">
             <xsd:attribute name="languageID"

CCTS_CCT_SchemaModule-2.0.xsd:
    <xsd:complexType name="AmountType">
             <xsd:attribute name="currencyID"
             <xsd:attribute name="currencyCodeListVersionID"
    <xsd:complexType name="BinaryObjectType">
             <xsd:attribute name="format"
             <xsd:attribute name="mimeCode"
             <xsd:attribute name="encodingCode"
             <xsd:attribute name="characterSetCode"
             <xsd:attribute name="uri"
             <xsd:attribute name="filename"
    <xsd:complexType name="CodeType">
             <xsd:attribute name="listID"
             <xsd:attribute name="listAgencyID"
             <xsd:attribute name="listAgencyName"
             <xsd:attribute name="listName"
             <xsd:attribute name="listVersionID"
             <xsd:attribute name="name"
             <xsd:attribute name="languageID"
             <xsd:attribute name="listURI"
             <xsd:attribute name="listSchemeURI"
    <xsd:complexType name="DateTimeType">
             <xsd:attribute name="format"
    <xsd:complexType name="IdentifierType">
             <xsd:attribute name="schemeID"
             <xsd:attribute name="schemeName"
             <xsd:attribute name="schemeAgencyID"
             <xsd:attribute name="schemeAgencyName"
             <xsd:attribute name="schemeVersionID"
             <xsd:attribute name="schemeDataURI"
             <xsd:attribute name="schemeURI"
    <xsd:complexType name="IndicatorType">
             <xsd:attribute name="format"
    <xsd:complexType name="MeasureType">
             <xsd:attribute name="unitCode"
             <xsd:attribute name="unitCodeListVersionID"
    <xsd:complexType name="NumericType">
             <xsd:attribute name="format"
    <xsd:complexType name="QuantityType">
             <xsd:attribute name="unitCode"
             <xsd:attribute name="unitCodeListID"
             <xsd:attribute name="unitCodeListAgencyID"
             <xsd:attribute name="unitCodeListAgencyName"
    <xsd:complexType name="TextType">
             <xsd:attribute name="languageID"
             <xsd:attribute name="languageLocaleID"

--
XSLT/XQuery/XSL-FO hands-on training - Los Angeles, USA 2009-06-08
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/o/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Male Cancer Awareness Nov'07  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]