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