[Accessibility conventions are described at the bottom of the page]
*** This is a free preview excerpt of a commercial publication. ***

8. Controlled vocabulary overview
[> 9.][< 7.0][^^^]
8.0 Controlled vocabularies in business documents
[> 9.][< 8.][^^][^^^]
Business documents have many information items valued using controlled vocabularies
[[1] - an abstract and compact value expressed to represent an agreed-upon semantic
 [1] - often mnemonic in a particular language
[[2] - e.g. "USD" for the US dollar currency code
 [2] - e.g. "ES" for the Spain country code
][1] - sometimes non-mnemonic to be language independent
[[2] - e.g. "42" for "Payment to bank account" payment means code
]]
Controlled vocabularies include codes and identifiers
[[1] - codes represent abstract concepts
 [1] - identifiers distinguish concrete instantiations of concepts
[[2] - e.g. account codes specific to a trading partner
]]
Registration authorities are responsible for publicly-available value lists
[[1] - e.g. International Organization for Standardization (ISO)
 [1] - e.g. United Nations Economic Commission for Europe (UN/ECE)
]
Trading partner agreements need a rigorous expression of constraints
[[1] - there is an opportunity for misunderstanding if the parties cannot agree a priori on the coded values acceptable to their document exchanges
 [1] - value constraints are layered on top of structural and lexical constraints for a business document vocabulary
[[2] - so as not to disturb the structural and lexical constraints for the documents
]]
Traditional use of XSD Schema enumerations to specify value lists is too restrictive
[[1] - ties the value validation to the structural and lexical validation in a single expression of the document constraints
[[2] - communities of users work with standardized expressions of document constraints
 [2] - when business requirements need to be tailored, the structural expressions are tampered with
 [2] - interoperability is promoted when the document constraint expressions are read-only and unchanged from the published standards
][1] - globally-declared information items have document-wide value constraints
[[2] - business rules for trading partners my require an information item to have different value constraints in different document contexts
]]
Emerging standards for the outboard expression of controlled vocabularies
[[1] - OASIS code list representation technical committee
[[2] - [http://www.oasis-open.org/committees/codelist]
][1] - OASIS genericode 1.0
[[2] - [http://docs.oasis-open.org/codelist/genericode]
 [2] - an XML vocabulary for the expression of a list of values
][1] - OASIS context/value association using genericode (draft)
[[2] - [http://www.oasis-open.org/committees/document.php?document_id=29990]
 [2] - an XML vocabulary for the expression of the association of XML document contexts with lists of values
 [2] - useful for validation or user interface implementation or any other purpose
 [2] - independent of the XML vocabulary of the documents being validated
[[3] - works in step with any structural validation technology (e.g. XSD, RELAX-NG, DTD)
]]]
Crane's Schematron-based validation using CVA using genericode: CVA2sch
[[1] - one way to use CVA using genericode files for validation
[[2] - there are many possible uses of genericode files without obligation to use this approach
][1] - other OASIS committees and companies using XSD are considering adopting this methodology
 [1] - migrating to become part of an Apache project for Schematron
]
Crane's "Practical Code List Implementation" book details the methodology
[[1] - see "Book excerpts" at [http://www.CraneSoftwrights.com/links/trn-20090212.htm]
 [1] - the methodology applies to any XML vocabulary, not just UBL
]
The UBL package includes a representative default set of controlled vocabularies
[[1] - the genericode XML vocabulary is used to create an instance of an enumeration of values
[[2] - meta data identifies the set of values
][1] - a snapshot of controlled vocabularies is included as genericode files
[[2] - [http://docs.oasis-open.org/ubl/os-UBL-2.0/cl/]
 [2] - includes meta data for all UBL lists
 [2] - the UBL 2.0 package uses genericode 0.4
 [2] - the UBL 2.0 update package uses genericode 1.0
][1] - trading partners can agree on their own lists of values to use
[[2] - would include meta data to identify the custom lists
]]
The defaultCodeList.xsl stylesheet is an informative (non-normative) implementation of the default set of codes
[[1] - [http://docs.oasis-open.org/ubl/os-UBL-2.0/val/]
 [1] - recall the validation scenarios [Chapter 5. Documents and document models] and [Chapter 5. Documents and document models]
 [1] - created using an early version of CVA2sch
]
Trading partners can exchange context/value association files and genericode files
[[1] - can choose to use the default set of controlled vocabularies "out of the box"
 [1] - can choose to select a different set of vocabularies
[[2] - represents an agreement to conform to code lists separate from the agreement to conform to UBL structures
][1] - the files are tailored to the particular business process agreed upon between trading partners
 [1] - the files form part of the formal trading partner agreement
 [1] - each party can have an independent implementation of the validation that uses these declarative files
[[2] - implementation choices are particular to a trading partner environment
][1] - each party continues to use published, standardized and unmodified structural and lexical expressions
 [1] - partners can also agree on various business rules constraining the values of data
[[2] - expressed as assertions that need to be true or false regarding content found in the UBL instances
]]

*** This is a free preview excerpt of a commercial publication. ***

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.