[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: UBL 1.0-cd2 Inconsistency List
I've done some comparisons between schemas from UBL 1.0-cd2 and those generated by UBLish v1.0.10 using UBL 1.0-cd2's model spreadsheets. I'm happier this time with UBL 1.0-cd2 than the previous UBL 1.0-cd (published in 2004 May). This must have been due to the hard work from persevering members in the TC to "get it right". However, the outcome still reflects a list of issues and inconsistencies between UBL 1.0-cd2's spreadsheet models and schemas. I would like to share with list members here. If you are planning to use, instantiate, develop applications, validators, processors, etc that take input directly from UBL 1.0-cd2 schemas, you might wish to take note of the list of points here. Some of the problems presented in the following report are of the nature of inconsistent naming of elements or types. Some are about different annotation values found within <xsd:annotation>. These are probably benign, but may annoy developers who use metadata found in <xsd:annotation>. Other more touchy issues involved missing attribute ("missing" assuming the attribute models defined by spreadsheet are correct), extra types, extra elements, etc, the most drastic of which would probably be the NumericType found in UnspecializedDatatypes. This list may not be totally exhaustive, but I'll just send these first. Best Regards, Chin Chee-Kai SoftML Tel: +65-6820-2979 Fax: +65-6743-7875 Email: cheekai@SoftML.Net http://SoftML.Net/ *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* ================================================================== In CommonAggregateComponents (CAC), under the "xsd:annotation --> xsd:documentation --> ccts:Component --> ccts:DataType" for "AllowanceChargeType"'s "cbc:Amount" element, the proper value should be "UBL_ Amount. Type" instead of "Amount. Type". Generally, all occurrences of "UBL_ Amount. Type" as indicated in the model spreadsheets have been incorrectly changed to "Amount. Type" in schemas. The complete list of such occurrence is as follows: AllowanceChargeType --> cbc:Amount BasePriceType --> cbc:PriceAmount BasePriceType --> cbc:MaximumAmount BasePriceType --> cbc:MinimumAmount InvoiceLineType --> cbc:LineExtensionAmount LegalTotalType --> cbc:LineExtensionTotalAmount LegalTotalType --> cbc:TaxExclusiveTotalAmount LegalTotalType --> cbc:TaxInclusiveTotalAmount LineItemType --> cbc:LineExtensionAmount LineItemType --> cbc:TaxTotalAmount PaymentType --> cbc:PaidAmount TaxTotalType --> cbc:TotalTaxAmount TaxSubTotalType --> cbc:TaxableAmount TaxSubTotalType --> cbc:TaxAmount ================================================================== In CAC, in a reference to "cbc:SourceCurrencyBaseRate" inside "ExchangeRateType", the <ccts:DataType> ought to be "Rate. Type" according to the model spreadsheet. But the published schema displays "Rate_Numeric. Type". This appears to be a general problem across the schema, where proper values of "Rate. Type" have been quietly changed to "Rate_Numeric. Type". ================================================================== In the <ccts:Component> within <xsd:annotation> of all the schema <xsd:element> or <xsd:complexType>, the component <ccts:Version> is generally missing, making it impossible to distinguish different versions of the same element or type through the meta-data contained within <xsd:annotation>. ================================================================== In CommonBasicComponents schema, UBL-1.0cd2 has a missing schema version attribute. It should be defined and with a value of "1.0". ================================================================== In CommonBasicComponents schema, UBL-1.0cd2 has extraneous definitions of elements and their corresponding types. They are "extraneous" in the sense that they are not being used or referenced within CAC. The list includes: <xsd:element name="CurrencyBaseRate" type="CurrencyBaseRateType" /> <xsd:element name="DateTime" type="DateTimeType" /> <xsd:element name="DeliveryDateTime" type="DeliveryDateTimeType" /> <xsd:element name="DiscountPercent" type="DiscountPercentType" /> <xsd:element name="ExtensionAmount" type="ExtensionAmountType" /> <xsd:element name="ExtensionTotalAmount" type="ExtensionTotalAmountType" /> <xsd:element name="Indicator" type="IndicatorType" /> <xsd:element name="Instructions" type="InstructionsType" /> <xsd:element name="Location" type="LocationType" /> <xsd:element name="Mail" type="MailType" /> <xsd:element name="MaterialIndicator" type="MaterialIndicatorType" /> <xsd:element name="PaymentDate" type="PaymentDateType" /> <xsd:element name="Reason" type="ReasonType" /> <xsd:element name="SurchargePercent" type="SurchargePercentType" /> <xsd:element name="Terms" type="TermsType" /> <xsd:element name="TotalAmount" type="TotalAmountType" /> <xsd:element name="UnitBaseRate" type="UnitBaseRateType" /> <xsd:element name="VolumeMeasure" type="VolumeMeasureType" /> <xsd:element name="WeightMeasure" type="WeightMeasureType" /> <xsd:element name="Zone" type="ZoneType" /> ================================================================== In CommonBasicComponents schema, UBL-1.0cd2 has defined some element names with types that are not consistent with the the property term naming suggestion indicated in the spreadsheet models. These include: [UBL-1.0cd2 CBC Schema]: <xsd:element name="ChargeIndicator" type="ChargeIndicatorType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Charge" [Expected definition if model is right]: <xsd:element name="ChargeIndicator" type="ChargeType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="CopyIndicator" type="CopyIndicatorType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Copy" [Expected definition if model is right]: <xsd:element name="CopyIndicator" type="CopyType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="ExpiryDate" type="ExpiryDateType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Expiry" [Expected definition if model is right]: <xsd:element name="ExpiryDate" type="ExpiryType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="GrossVolumeMeasure" type="VolumeMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Volume" [Expected definition if model is right]: <xsd:element name="GrossVolumeMeasure" type="VolumeType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="GrossWeightMeasure" type="WeightMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Weight" [Expected definition if model is right]: <xsd:element name="GrossWeightMeasure" type="WeightType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="HolderName" type="HolderNameType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Holder" [Expected definition if model is right]: <xsd:element name="HolderName" type="HolderType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="LatitudeDegreesMeasure" type="LatitudeDegreesMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "LatitudeDegrees" [Expected definition if model is right]: <xsd:element name="LatitudeDegreesMeasure" type="LatitudeDegreesType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="LatitudeMinutesMeasure" type="LatitudeMinutesMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "LatitudeMinutes" [Expected definition if model is right]: <xsd:element name="LatitudeMinutesMeasure" type="LatitudeMinutesType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="LineExtensionTotalAmount" type="ExtensionTotalAmountType" /> [UBL-1.0cd2 Reusable spreadsheet]: "ExtensionTotal" [Expected definition if model is right]: <xsd:element name="LineExtensionTotalAmount" type="ExtensionTotalType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="MarkAttentionIndicator" type="MarkAttentionIndicatorType" /> [UBL-1.0cd2 Reusable spreadsheet]: "MarkAttention" [Expected definition if model is right]: <xsd:element name="MarkAttentionIndicator" type="MarkAttentionType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="MarkCareIndicator" type="MarkCareIndicatorType" /> [UBL-1.0cd2 Reusable spreadsheet]: "MarkCare" [Expected definition if model is right]: <xsd:element name="MarkCareIndicator" type="MarkCareType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="MaximumBackorderQuantity" type="BackorderQuantityType" /> [UBL-1.0cd2 Reusable spreadsheet]: ""Backorder" [Expected definition if model is right]: <xsd:element name="MaximumBackorderQuantity" type="BackorderType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="MinimumBackorderQuantity" type="BackorderQuantityType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Backorder" [Expected definition if model is right]: <xsd:element name="MinimumBackorderQuantity" type="BackorderType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="MultiplierFactorNumeric" type="MultiplierFactorNumericType" /> [UBL-1.0cd2 Reusable spreadsheet]: "MultiplierFactor" [Expected definition if model is right]: <xsd:element name="MultiplierFactorNumeric" type="MultiplierFactorType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="NetNetWeightMeasure" type="WeightMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Weight" [Expected definition if model is right]: <xsd:element name="NetNetWeightMeasure" type="WeightType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="NetVolumeMeasure" type="VolumeMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Volume" [Expected definition if model is right]: <xsd:element name="NetVolumeMeasure" type="VolumeType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="NetWeightMeasure" type="WeightMeasureType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Weight" [Expected definition if model is right]: <xsd:element name="NetWeightMeasure" type="WeightType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="PackSizeNumeric" type="PackSizeNumericType" /> [UBL-1.0cd2 Reusable spreadsheet]: "PackSize" [Expected definition if model is right]: <xsd:element name="PackSizeNumeric" type="PackSizeType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="PenaltySurchargePercent" type="SurchargePercentType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Surcharge" [Expected definition if model is right]: <xsd:element name="PenaltySurchargePercent" type="SurchargeType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="ReturnableMaterialIndicator" type="MaterialIndicatorType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Material" [Expected definition if model is right]: <xsd:element name="ReturnableMaterialIndicator" type="MaterialType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="SequenceNumeric" type="SequenceNumericType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Sequence" [Expected definition if model is right]: <xsd:element name="SequenceNumeric" type="SequenceType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="SettlementDiscountPercent" type="DiscountPercentType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Discount" [Expected definition if model is right]: <xsd:element name="SettlementDiscountPercent" type="DiscountType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="SourceCurrencyBaseRate" type="CurrencyBaseRateType" /> [UBL-1.0cd2 Reusable spreadsheet]: "CurrencyBase" [Expected definition if model is right]: <xsd:element name="SourceCurrencyBaseRate" type="CurrencyBaseType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="TargetUnitBaseRate" type="UnitBaseRateType" /> [UBL-1.0cd2 Reusable spreadsheet]: "UnitBase" [Expected definition if model is right]: <xsd:element name="TargetUnitBaseRate" type="UnitBaseType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="TaxExclusiveTotalAmount" type="TotalAmountType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Total" [Expected definition if model is right]: <xsd:element name="TaxExclusiveTotalAmount" type="TotalType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="TaxInclusiveTotalAmount" type="TotalAmountType" /> [UBL-1.0cd2 Reusable spreadsheet]: "Total" [Expected definition if model is right]: <xsd:element name="TaxInclusiveTotalAmount" type="TotalType" /> [UBL-1.0cd2 CBC Schema]: <xsd:element name="TaxTotalAmount" type="TaxTotalAmountType" /> [UBL-1.0cd2 Reusable spreadsheet]: "TaxTotal" [Expected definition if model is right]: <xsd:element name="TaxTotalAmount" type="TaxTotalType" /> ================================================================== In CoreComponentTypes, for "BinaryObjectType", UBL-1.0cd2 schema defines the attribute URI as "URI". Although this "reads" correct, it seems to conflict with the requirement that attribute names must use lowerCamelCase, which suggests a somewhat "correct" name to be "uRI" instead. Or could the attribute name be prepended with a description, such as "srcURI", to satisfy both requirements? In "CodeType", for example, the URI attributes are all prepended with a qualifier description such as "codeListURI" and "codeListSchemeURI". ================================================================== In the UnspecializedDatatypes spreadsheet, the UDT data type "Date" has the value "Date Time. Type" inside the "Data Type" column (Column K). This causes problem in proper identification of UDT "Date" as a independent UDT type, rather than sharing the same "Date Time. Type" as the actual UDT "DateTime" type. In other words, both UDT "DateTime" type and UDT "Date" type are marked as "Date Time. Type" as far as the "Data Type" column (Column K) is concerned. The proper value in "Data Type" column (Column K) should be set to "Date. Type". There are other consequential problems associated with this meta data being incorrectly marked as "Date Time. Type". This occurs, for example, in all the references to "cbc:Date" within the CAC schema. Here, the <ccts:DataType> found in the <xsd:annotation> should contain "Date. Type", but the published UBL 1.0-cd2 schema contains "Date_Date Time. Type". ================================================================== In UnspecializedDatatypes "NumericType", UBL-1.0cd2 missed the definition of attribute "format". We should expect to see: <xsd:attribute name="format" type="xsd:string" use="optional" /> Therefore, "NumericType" cannot be a <simpleType> since the spreadsheet model requires an attribute "format" to be defined for "NumericType". ================================================================== In UnspecializedDatatypes "BinaryObjectType", UBL-1.0cd2 schema missed the 2 definitions "format" and "mimeCode" found in the corresponding spreadsheet models. We should see: <xsd:attribute name="format" type="xsd:string" use="optional" /> <xsd:attribute name="mimeCode" type="xsd:normalizedString" use="optional" /> <xsd:attribute name="characterSetCode" type="xsd:normalizedString" use="optional" /> instead of only: <xsd:attribute name="characterSetCode" type="xsd:normalizedString" use="optional" /> ================================================================== In UnspecializedDatatypes "GraphicType", "PictureType", "SoundType", "VideoType", UBL-1.0cd2 schemas missed entirely the 2 definitions "format" and "mimeCode" found in the corresponding spreadsheet models. We should see: <xsd:attribute name="format" type="xsd:string" use="optional" /> <xsd:attribute name="mimeCode" type="xsd:normalizedString" use="optional" /> instead of the current: <xsd:attribute name="characterSetCode" type="xsd:normalizedString" use="optional" /> which seems to have a dubious origin as it isn't defined in the spreadsheet. ================================================================== In UnspecializedDatatypes "CodeType" and "IdentifierType", the order of defintions for the attributes appears to be out of order. This is a minor issue, though it might suggest some unnecessary re-ordering of some sort. ================================================================== In Order schema, UBL-1.0cd2 has an unused dangling element definition of: <xsd:element name="PackagesQuantity" type="PackagesQuantityType" /> This is a benign bug, though it isn't clear what future problems it may behold for having Order schema holding on to this private element name. ================================================================== In OrderChange schema, UBL-1.0cd2 has an unused dangling element definition of: <xsd:element name="PackagesCountQuantity" type="PackagesCountQuantityType" /> ================================================================== In OrderChange schema, UBL-1.0cd2 defines for element "TotalPackagesCountQuantity" has having type "PackagesCountQuantityType" instead of "TotalPackagesCountQuantityType". This, consequently, causes a missing definition of: <xsd:complexType name="TotalPackagesCountQuantityType"> <xsd:simpleContent> <xsd:extension base="udt:QuantityType" /> </xsd:simpleContent> </xsd:complexType> that is to be expected if the type for "TotalPackagesCountQuantity" had been the correct "TotalPackagesCountQuantityType" instead. As it is now, the schema also contains an extraneous definition of <xsd:element name="PackagesCountQuantity" type="PackagesCountQuantityType" /> and <xsd:complexType name="PackagesCountQuantityType">...</xsd:complexType> since "PackagesCountQuantityType" ought not to have been defined in the first place. ================================================================== In OrderResponse schema, UBL-1.0cd2 defines for element "TotalPackagesCountQuantity" has having type "PackagesCountQuantityType" instead of "TotalPackagesCountQuantityType". This, consequently, causes a missing definition of: <xsd:complexType name="TotalPackagesCountQuantityType"> <xsd:simpleContent> <xsd:extension base="udt:QuantityType" /> </xsd:simpleContent> </xsd:complexType> that is to be expected if the type for "TotalPackagesCountQuantity" had been the correct "TotalPackagesCountQuantityType" instead. As it is now, the schema also contains an extraneous definition of <xsd:element name="PackagesCountQuantity" type="PackagesCountQuantityType" /> and <xsd:complexType name="PackagesCountQuantityType">...</xsd:complexType> since "PackagesCountQuantityType" ought not to have been defined in the first place. ================================================================== *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]