[Accessibility conventions are described at the bottom of the page]
11. Conformant customization implementation
[> 12.][< 10.1.5][^^^]
11.0 Conformant customization implementation
[> 11.0.1][> 11.1][> 12.][< 11.][^^][^^^]
An implementation of a customization need only support the customization definition
[[1] - the community has agreed on what parts of UBL will be used
[1] - the application can limit itself to only the parts expected
]
Customization validation can only check the customization definition
[[1] - requires unexpected constructs to be pruned from instances before processing
]
Two different implementations of conformant customizations may or may not be able to exchange UBL documents
[[1] - the use of XML and the common vocabulary allows much of the information to be interchange
[1] - two communities may make different choices of which optional constructs to support
]
Only mandatory elements are guaranteed to be interchangeable
[[1] - e.g. addresses may not be interoperable
[[2] - customization A restricts addresses to structured components only
[[3] - an address is comprised of separately-labeled pieces
[3] - [Example 11-1: A structured address01 <cac:Address>
02 <cbc:StreetName>City Road</cbc:StreetName>
03 <cbc:BuildingName>Banking House</cbc:BuildingName>
04 <cbc:BuildingNumber>12</cbc:BuildingNumber>
05 <cbc:CityName>London</cbc:CityName>
06 <cbc:PostalZone>AQ1 6TH</cbc:PostalZone>
07 <cbc:CountrySubentity>London</cbc:CountrySubentity>
08 <cac:AddressLine>
09 <cbc:Line>5th Floor</cbc:Line>
10 </cac:AddressLine>
11 <cac:Country>
12 <cbc:IdentificationCode>GB</cbc:IdentificationCode>
13 </cac:Country>
14 </cac:Address>
]
][2] - customization B restricts addresses to unstructured components only
[[3] - an address is simply a set of address lines
[3] - [Example 11-2: An unstructured address01 <cac:Address>
02 <cac:AddressLine>
03 <cbc:Line>5th Floor</cbc:Line>
04 <cbc:Line>Banking House</cbc:Line>
05 <cbc:Line>12 City Road</cbc:Line>
06 <cbc:Line>London, England AQ1 CTH</cbc:Line>
07 </cac:AddressLine>
08 </cac:Address>
]
]]]
Out-of-band processes and business practices can address mismatched expectations of UBL
[[1] - a rejection in processing a UBL document is not an automatic rejection of business
[1] - it is a business decision regarding how to do business when information is complete
]
11.0.1 Refining the document processing model
[> 11.1][> 12.][< 11.0][^][^^][^^^]
There is no set processing model for handling customized UBL instances
[[1] - just as there is no set processing model for handling standard UBL instances
[1] - the information in this module is but an example for consideration
]
Recall the processing model published in the UBL 2.0 specification
[[1] - see [UBL document validation - Section 5.2.8]
[[2] - first step confirms the structural and lexical constraints on the instance
][1] - see [Figure 8.2]
[[2] - second step confirms the standardized and trading partner values used in the instance
]]
Customization suggests the pre-validation filter removal of unexpected constructs
[[1] - the remainder of the process remains the same
[1] - the files in use for the remainder of the process are defined for the customization
[1] - also implements "forward compatibility" of UBL minor versions
]
[Figure 11.1: Three-step validation
The diagram is split with a horizontal line indicating runtime process above the line and advance preparation process below
the line.
Above the line and at the left is an incoming UBL instance depicted as a triangle labeled "XML". This is connected by an arrow
to the box at the right labeled "Application Code" under the column "Semantic Interpretation". Two arrows lead down from this
horizontal arrow, one under the column "Structure Validation" to a box labeled "W3C Schema", and the other under the column
"Value Validation" to a box labeled "XSLT".
Below the line and under the column "Structure Validation" an "XSD" labeled triangle titled "Structure Constraints" and identified
with a circled "1" has an arrow leading into the "W3C Schema" box. Below the line and under the column "Value Validation"
an "XSLT" labeled triangle titled "Value Constraints" and identified with a circled "2" has an arrow leading into the "XSLT"
box.
]
The version filter (F) represents a customization-specific filter
[[1] - preserves only the constructs recognized by a customization definition
]
11.1 Processing model and validation
[> 12.][< 11.0.1][^^][^^^]
11.1.1 Passing and failing validation
[> 11.1.2][> 12.][< 11.0.1][^^][^^^]
Passing validation is required for some applications to act on XML instances
[[1] - recall the steps in the customization process model on [Figure 11.1]
[1] - an application not relying on validation but only on well-formed XML can process any instance whether it conforms to the customization
or not
[[2] - the information set is the text information found in an XML document without considering markup or syntax
][1] - some programming languages have interfaces to XML documents that act not on the marked-up information set but on the post
schema validation information set (PSVI) defined by W3C Schema
[[2] - the PSVI interface delivers data-type-rich information to the application from the XML instance
[2] - if validation fails, the application may be prevented from even inspecting the content of the document
]]
Passing initial validation indicates all expected information is present
[[1] - doesn't necessarily mean the instance was designed for use in the profile or customization
[1] - an application can inspect the instance's declaration of conformance and use
[[2] - such content is advised to be present but not required to be present
[2] - a community can make such content mandatory if it wishes, risking not being able to receive business content that is otherwise
suitable
][1] - cbc:VersionID - version of the UBL document model
[[2] - e.g. "2.0", "2.1", etc.
][1] - cbc:CustomizationID - domain of definition and use
[[2] - e.g. community of users
][1] - cbc:ProfileID - scenario of definition and use
[[2] - e.g. business process
]]
Failing initial validation
[[1] - recall the steps in the customization process model on [Figure 11.1]
[1] - the application knows that some of the sender's information has been pruned from the instance
[1] - e.g. a member of the community included unexpected information
[1] - e.g. the instance conforms to another community definition
]
Failing secondary validation
[[1] - the instance is not suitable for application processing because it is missing expected mandatory information
[1] - after having filtered for only expected constructs means there is nothing unexpected in the instance
]
11.1.2 Out of band decision making
[> 12.][< 11.1.1][^][^^][^^^]
UBL validation is not meant to interrupt business, only alleviate effort from applications
[[1] - when an instance passes structural and value validation, the user knows the application is going to find suitable data for
making business decisions
[1] - a rejection of a UBL document during validation is only a signal of bad data, not bad business
[1] - a primary object of UBL is the elimination of the rekeying of information
[[2] - not a magic bullet that somehow "enables" electronic commerce
]]
Businesses probably have existing workflows accommodating incorrect information
[[1] - unidentified customers
[1] - invalid values on paper documents
]
Business practices should be reviewed for all aspects of UBL integration
[[1] - how an application makes a business decision to spend money or ship product when the data is entirely correctly formed
[1] - how the business reviews a UBL document that is rejected during validation
[1] - how the business reviews a transaction that is rejected by the application
]
This is an accessible version of Crane's commercial training material.
The content has been specifically designed to assist screen reader software
in viewing the entire textual content. Figures are replaced with text
narratives.
Navigation hints are in square brackets:
[Tx.x] and [Fx.x] are textual representations of the applicability icons;
[digit] indicates list depth for nested lists;
[link [URL]] indicates the URL of a hyperlink if different than link;
[EXAMPLE] indicates an example listing of code;
[FIGURE] indicates the presence of a figure replaced by its description;
[>] jumps forward;
[<] jumps backward;
[^] jumps to start of the section;
[^^] jumps to the start of the chapter;
[^^^] jumps to the table of contents.
Suggestions for improvement are welcome:
[info@CraneSoftwrights.com]
Book sales: [http://www.CraneSoftwrights.com/links/trn-acc.htm]
Information: [http://www.CraneSoftwrights.com/links/info-acc.htm]
This content is protected by copyright and, as there are no means to protect
this accessible version from plagiarism, please do not make any
commercial edition available to others.
+//ISBN 1-894049::CSL::Presentation::UBL//DOCUMENT Practical Universal Business Language Deployment 2009-02-12 13:50UTC//EN
Practical Universal Business Language Deployment
Third Edition - 2009-02-12
ISBN 978-1-894049-23-8
Copyright © Crane Softwrights Ltd.