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