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: BBIE cardinality issues in the latest document model


The following issues need to be addressed by PSC and TSC because the decisions impact on the schemas. They are all characterized by the cardinality of BBIEs.

There are *many* changes to be made to the model. Some of these changes are explicitly listed in this post, other changes are characterized in this post and PSC and TSC need to determine what other changes these characterizations trigger that I have not programmatically found.

In correspondence with Tim over the last couple of months, we can enunciate some rules about BBIEs. These rules were not always followed in UBL 2.0, but we can recover from some of them.

Firstly, we can distinguish two kinds of BBIE: those with human language prose and those with computer data (a historical term, sure, but I couldn't think of a better way to describe it today). All human language prose elements use the Text data type, but not all elements with Text data type values are human language prose. We assume that all non-Text data type values are computer data.

For example, consider that "Address Line. Line. Text" is text but it isn't prose:

https://www.oasis-open.org/committees/download.php/47799/#t-CommonLibrary-43

Whereas, "Auction Terms. Justification_ Description. Text" is prose:

https://www.oasis-open.org/committees/download.php/47799/#t-CommonLibrary-73

By visual inspection, I've assumed that the following property primary nouns reflect prose elements that might have multiple language instances because they are prose and not data:

'Comments',
'Conditions',
'Description',
'Information',
'Instructions',
'Justification',
'Note',
'Purpose',
'Reason',
'Remarks',
'Requirements',
'Resolution',
'Restrictions',
'Situation',
'Risk',
'Terms'

There may be others, but at least I can use these as a starting list for mechanical lookup.

(1) - prose Text BBIEs must have a cardinality of 0..n or 1..n
    - this is because the prose needs to be able to be expressed in
      multiple languages, one BBIE for each language
    - note there is no cardinality for paragraphs ... all paragraphs of
      a given language go into a single BBIE in the instance
    - note also we have new Additional Document Constraints for this

In the model as of today, the following BBIEs have a limited maximum value and need to be changed in order to accommodate multiple languages (not multiple paragraphs):

"Allowance Charge. Allowance Charge_ Reason. Text" (old): 0..1
"Certificate. Remarks. Text" (new): 0..1
"Consignment. Carrier Service_ Instructions. Text" (new): 0..1
"Consignment. Customs Clearance Service_ Instructions. Text" (new): 0..1
"Consignment. Forwarder Service_ Instructions. Text" (new): 0..1
"Consignment. Handling_ Instructions. Text" (new): 0..1
"Consignment. Information. Text" (new): 0..1
"Consignment. Special Service_ Instructions. Text" (new): 0..1
"Consumption Average. Description. Text" (new): 0..1
"Consumption Correction. Description. Text" (new): 0..1
"Consumption Point. Description. Text" (new): 0..1
"Despatch Line. Backorder_ Reason. Text" (old): 0..1
"Despatch Line. Outstanding_ Reason. Text" (old): 0..1
"Exception Notification Line. Description. Text" (new): 0..1
"Forecast Revision Line. Description. Text" (new): 0..1
"Fulfilment Cancellation. Cancellation_ Note. Text" (new): 1
"Item Management Profile. Replenishment Owner Description. Text" (new): 0..1
"Location. Conditions. Text" (old): 0..1
"On Account Payment. Note. Text" (new): 0..1
"Order Cancellation. Cancellation_ Note. Text" (old): 1
"Order Response Simple. Rejection_ Note. Text" (old): 0..1
"Packing List. Description. Text" (old): 0..1
"Party Tax Scheme. Exemption_ Reason. Text" (old): 0..1
"Payment Mandate. Maximum Payment Instructions. Numeric" (new): 0..1
"Receipt Line. Reject_ Reason. Text" (old): 0..1
"Retail Event. Description. Text" (new): 0..1
"Shipment Stage. Demurrage_ Instructions. Text" (new): 0..1
"Shipment Stage. Instructions. Text" (new): 0..1
"Shipment. Handling_ Instructions. Text" (old): 0..1
"Tax Category. Tax Exemption Reason. Text" (old): 0..1
"Telecommunications Supply Line. Description. Text" (new): 0..1
"Tendering Terms. Additional_ Conditions. Indicator" (new): 0..1
"Transport Equipment. Description. Text" (new): 0..1
"Transport Equipment. Information. Text" (old): 0..1
"Transport Equipment. Special_ Transport Requirements. Text" (new): 0..1
"Transport Execution Plan Request. Document Status Reason Description. Text" (new): 0..1 "Transport Execution Plan. Document Status Reason Description. Text" (new): 0..1
"Transport Handling Unit. Handling_ Instructions. Text" (old): 0..1

If in your PSC or TSC responsibility for the model you have other Text elements that are prose, you need to check these to make sure that they are also unbounded.

Note that a number of the ones above were in UBL 2.0 and it is okay to raise their maximum values to unbounded, because a UBL 2.0 instance will still validate with the UBL 2.1 schemas.

(2) - non-prose BBIEs should never have "0..n" or "1..n" (including text and
      all other data types)
    - this was not always followed in UBL 2.0 and those cannot be repaired, so
      we are stuck with them
    - we can address these in UBL 2.1 with all of the new constructs
- in the list below I've marked them as "(old)" for 2.0 and "(new)" for 2.1
    - the required action on the new constructs is to replace the BBIE with an
      ASBIE to point to a new ABIE where that ABIE has the one BBIE child; the
      cardinality of the ASBIE is "0..n" or "1..n" and the cardinality of the
      BBIE is "1"
    - an example of this properly being done in UBL 2.0 is Address Line
https://www.oasis-open.org/committees/download.php/47799/#t-CommonLibrary-39
      - in Address there is a need to have multiple lines
      - the ASBIE "Address. Address Line" 0..1 points to the ABIE Address Line
      - the ABIE Address Line has a single child BBIE "Address Line. Line"
        with cardinality 1
- the rationale for this is that sometime in the future it may be necessary
      to associate information with each of the BBIEs; this cannot be done
      if the BBIE is repeated, but it can be done if the BBIE is a child of
      an ABIE that is pointed to by an ASBIE that is repeated

2.0 (we cannot change these)
"Bill Of Lading. Other_ Instruction. Text" (old): 0..n
"Customer Party. Additional_ Account Identifier. Identifier" (old): 0..n
"Document Reference. XPath. Text" (old): 0..n
"Forwarding Instructions. Other_ Instruction. Text" (old): 0..n
"Item. Brand Name. Name" (old): 0..n
"Item. Keyword. Text" (old): 0..n
"Item. Model Name. Name" (old): 0..n
"Package. Packing Material. Text" (old): 0..n
"Payment Means. Payment Identifier. Identifier" (old): 0..n
"Payment Terms. Payment Means Identifier. Identifier" (old): 0..n
"Period. Description Code. Code" (old): 0..n
"Secondary Hazard. Extension. Text" (old): 0..n
"Status. Text" (old): 0..n
"Stowage. Location. Text" (old): 0..n
"Supplier Party. Additional_ Account Identifier. Identifier" (old): 0..n
"Transport Handling Unit. Shipping_ Marks. Text" (old): 0..n
"Transport Means. Registration_ Nationality. Text" (old): 0..n
"Waybill. Other_ Instruction. Text" (old): 0..n

2.1 (we should change these that are not prose; looks like a few are prose)
"Bill Of Lading. Other_ Instruction. Text" (old): 0..n
"Customer Party. Additional_ Account Identifier. Identifier" (old): 0..n
"Document Reference. XPath. Text" (old): 0..n
"Forwarding Instructions. Other_ Instruction. Text" (old): 0..n
"Item. Brand Name. Name" (old): 0..n
"Item. Keyword. Text" (old): 0..n
"Item. Model Name. Name" (old): 0..n
"Package. Packing Material. Text" (old): 0..n
"Payment Means. Payment Identifier. Identifier" (old): 0..n
"Payment Terms. Payment Means Identifier. Identifier" (old): 0..n
"Period. Description Code. Code" (old): 0..n
"Secondary Hazard. Extension. Text" (old): 0..n
"Status. Text" (old): 0..n
"Stowage. Location. Text" (old): 0..n
"Supplier Party. Additional_ Account Identifier. Identifier" (old): 0..n
"Transport Handling Unit. Shipping_ Marks. Text" (old): 0..n
"Transport Means. Registration_ Nationality. Text" (old): 0..n
"Waybill. Other_ Instruction. Text" (old): 0..n
"Awarding Criterion. Calculation Expression. Text" (new): 0..n
"Awarding Criterion. Minimum Improvement Bid. Text" (new): 0..n
"Awarding Criterion. Weight. Text" (new): 0..n
"Capability. Evidence Supplied. Identifier" (new): 0..n
"Clause. Content. Text" (new): 0..n
"Contract Award Notice. Regulatory Domain. Text" (new): 0..n
"Contract Execution Requirement. Name" (new): 0..n
"Contract Notice. Regulatory Domain. Text" (new): 0..n
"Contracting Party. Activity Code. Code" (new): 0..n
"Contracting Party. Activity Type. Text" (new): 0..n
"Contracting Party. Contracting Party Type. Text" (new): 0..n
"Declaration. Evidence Supplied. Identifier" (new): 0..n
"Declaration. Name" (new): 0..n
"Evaluation Criterion. Expression. Text" (new): 0..n
"Evidence. Name. Text" (new): 0..n
"Exception Criteria Line. Exception_ Resolution Code. Code" (new): 0..n
"External Reference. Hash Algorithm Method. Text" (new): 0..n
"Framework Agreement. Frequency. Text" (new): 0..n
"Item Property. List Value. Text" (new): 0..n
"Item Property. Value Qualifier. Text" (new): 0..n
"Meter Property. Value Qualifier. Text" (new): 0..n
"Meter Property. Value. Text" (new): 0..n
"Party Legal Entity. Company Legal Form. Text" (new): 0..n
"Procurement Project. Name" (new): 1..n
"Requested Tender Total. Monetary Scope. Text" (new): 0..n
"Service Provider Party. Service Type. Text" (new): 0..n
"Status. Condition Value. Measure" (new): 0..n
"Telecommunications Service. Roaming Partner Name. Name" (new): 0..n
"Tender Line. Orderable_ Unit. Text" (new): 0..n
"Tender Preparation. Procurement Project Lot. Identifier" (new): 0..n
"Tender Receipt. Contract Name. Text" (new): 0..n
"Tender. Contract Name. Text" (new): 0..n
"Tenderer Party Qualification. Interested Procurement Lots Identifier. Identifier" (new): 0..n
"Tenderer Qualification Request. Company Legal Form. Text" (new): 0..n
"Tenderer Qualification Response. Contract Name. Text" (new): 0..n
"Tenderer Requirement. Name" (new): 0..n
"Tendering Terms. Funding_ Program. Text" (new): 0..n
"Tendering Terms. Penalty Clauses. Text" (new): 0..n
"Transport Equipment. Referenced_ Consignment Identifier. Identifier" (new): 0..n
"Utility Item. Subscriber Type. Text" (new): 0..n
"Work Phase Reference. Work Phase. Text" (new): 0..n

As with my other posts, there may be exceptions or missing issues due to my programmatic discovery of issues.

Please post any questions about this for Tim and me to answer.

Thank you.

. . . . . . . . Ken

--
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/o/
G. Ken Holman                   mailto:gkholman@CraneSoftwrights.com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal



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