Universal Business Language — Library Content — 0p70 Public Review

# Universal Business Language — Library Content —
0p70 Public Review

## Introduction

The Universal Business Language (UBL) Library is:

- An XML-based business language
- Built upon existing EDI and XML business-to-business vocabularies
- Applicable across all industry sectors and domains of electronic trade
- Designed to be modular, reusable, and extensible
- Non-proprietary and royalty-free
- Intended to become an international standard for electronic commerce

The Library has been designed as a collection of object classes and associations expressed as a conceptual model. Specific document types are then assembled from these business information entities (BIES) by organizing them into a specific hierarchy. These hierarchical models are then transformed using the UBL Naming and Design rules [NDR] into XML Schema syntax [XSD1][XSD2]. The analysis and design processes developed by the UBL Library Content team are described in Annex A.

The UBL library is intended for use in business data contexts beyond the specific set of document types provided in this specification. For the purposes of this release, Section 5 below describes the scenario and choreography used in developing this set of documents. For example, the document Order Response may have a limited application, but the re-usable components Party and Item will have relevance to many applications.

### Notes about this Release

- For more information about this release, please check the Release Notes.
- The downloadable version of this release is available here: 0p70 Downloadable Release. This is a zip file that will unpack to give you a replica of the online release directories.
- If there are any problems with the links in this document, you can find the full online version at http://www.oasis-open.org/committees/ubl/lcsc/0p70/.

### Submitting Public Comments on this Release

The OASIS UBL Technical Committee invite interested parties to comment on this release directly to the Library Content Subcommittee Editor, Bill Meadows using the recommended feedback form, UBL_Comment-0p1.rtf.

This release comment period applies from Monday, January 27th until Monday, April 14th 2003. We welcome your comments and will ensure to advise you of our dispositions to any suggestions.

### General comments about OASIS UBL TC

The work of the OASIS UBL Technical Committee is open to public view through the mail archives linked from the UBL home page:
  http://oasis-open.org/committees/ubl/
Formal input to UBL from industry data exchange organizations is provided through the UBL Liaison Subcommittee:
  http://oasis-open.org/committees/ubl/lsc/
Input from the general public is accepted through the ubl-comment mail list:
  http://lists.oasis-open.org/archives/ubl-comment/
Interested parties are invited to comment on the work of the UBL TC by subscribing to the ubl-comment list using the OASIS list manager:
  http://lists.oasis-open.org/ob/adm.pl

### Disclaimer

This document and its associated components are Copyright © 2003 OASIS and are protected by applicable law as works in progress within the OASIS Universal Business Language Technical Committee. As works in progress, they do not yet have the status of an OASIS Standard or an OASIS Committee Specification. This draft and its associated components are provided on a royalty-free basis and may be freely circulated for purposes of experimentation and review. While the construction of experimental prototypes based on these materials is encouraged for the purpose of generating input back to the committee process, implementers are strongly advised against basing commercial or mission-critical applications on the draft specifications contained in this package. THESE MATERIALS ARE FURNISHED WITH NO WARRANTY, EXPRESS OR IMPLIED, AS TO THEIR SUITABILITY FOR ANY APPLICATION.

## 1. Scope

The Library Content part of UBL specifies a library of business information entities to be used in the construction of business documents together with a set of common XML business documents assembled from those entities.

This document contains normative and non-normative references used by UBL: the context scenario and business rules used to construct the business models and business documents; and the schema instances of the business documents.

The annexes include the modeling approach used in the normalized model and document descriptions.

## 2. Normative References

[ISO11179] International Standards Organisation's Specification and Standardization of Data Elements for Information Technology
  http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=19184&ICS1= 35&ICS2=40&ICS3=
[CCTS] UN/CEFACT ebXML Core Components Technical Specification 1.90
  http://xml.coverpages.org/CCTSv190-2002.pdf
[NDR] Universal Business Language Naming and Design Rules
  http://oasis-open.org/committees/ubl/ndrsc/release/
[UML] Unified Modeling Language 1.4 (formal/01-09-67)
  http://www.omg.org/cgi-bin/doc?formal/01-09-67
[XML] Extensible Markup Language (XML) 1.0 (Second Edition),W3C Recommendation 6 October 2000
  http://www.w3.org/TR/2000/REC-xml-20001006
[XSD1] XML Schema Part 1: Structures, W3C Recommendation 2 May 2001
  http://www.w3.org/TR/xmlschema-1/
[XSD2] XML Schema Part 2: Datatypes, W3C Recommendation 02 May 2001
  http://www.w3.org/TR/xmlschema-2/

## 3. Terms and Definitions

Business Context
  The formal description of a specific business circumstance as identified by the values of a set of context categories, allowing different business circumstances to be uniquely distinguished.
Class Diagram
  A graphical notation used by the UML [UML] to describe the static structure of a system, including object classes and their associations.
Container
  A modular and self-contained group of data components.
Containership
  Aggregating components (nested elements in an XML schema [XML]).
Context
  The circumstance or events that form the environment within which something exists or takes place.
Dependency Diagram
  A refinement of a class diagram that emphasises the dependent associations to between object classes.
Document
  A set of information components that are interchanged as part of a business activity; for example placing an order.
Document Assembly
  A description of an hierarchical pathway through a normalized model of information components.
Hierarchical Model
  A tree-structured model that can be implemented as a document schema.
Normalization
  A formal technique for identifying and defining functional dependencies.
Normalized Model
  A representation of normalized data components.
Schema
  An XML document definition based on the W3C XML Schema language [XSD1][XSD2].
schema
  Any XML document definition.
Spreadsheet Model
  A representation of a data model in tabular form.

The terms Core Component and Business Information Entity are used in this specification with the meanings given in [CCTS].

The terms Object Class, Property, Representation Term, and Qualifier are used in this specification with the meanings given in [ISO11179].

## 4. Symbols and Abbreviations

ABIE
  Aggregate Business Information Entity
ACC
  Aggregate Core Component
ASBIE
  Association Business Information Entity
ASCC
  Association Core Component
BBIE
  Basic Business Information Entity
BCC
  Basic Core Component
BIE
  Business Information Entity
CC
  Core Component
EAN
  European Article Numbering Association
EDI
  Electronic Data Interchange
ISO
  International Standards Organisation
NDR
  UBL Naming and Design Rules [NDR]
UML
  Unified Modeling Language [UML]
UN/CEFACT
  United Nations Centre for Trade Facilitation and Electronic Business
XML
  Extensible Markup Language [XML]
XSD
  World Wide Web Consortium's XML Schema Language [XSD1][XSD2]

## 5. Initial UBL Business Scenario

The specific context adopted for UBL release 0p70 is based on a typical trading cycle. This section describes the scenario and choreography as well as highlighting some of the business rules used in developing this set of documents.

The design of this particular set of UBL documents also allows it to be used as a basis for extension to create more function-rich, but separately defined, scenarios. When that occurs, it is expected that this section will become one of a list of ALL available Scenarios from different, complementary sources. Such a list and descriptions need to be constructed in such a way that a newcomer will be able to readily identify the scenario that exactly, or most closely, fits their requirement and manner of operation.

### 5.1 Scenario — The UBL Trading Cycle

This model addresses the requirements of a basic, usable trading cycle from Order to Invoice between Buyer and Seller. It includes specifications for:

- Order
- Order Response (simple)
- Order Response (complex)
- Order Cancellation
- Despatch Advice
- Receipt Advice
- Invoice

It provides for:

- identification of each item according to a range of ID systems
- specification of delivery detail at item line level
- Specification of the packaging of the ordered items limited to:
  (a) packaging when it is an inherent part of the Item identified by the Item Identifier
  (b) packaging of the whole delivery consignment in one way, e.g. all items palletised, containerised, etc.

It does not provide for:

- any sub-line facilities, because this is an area of diversity for which more industry-specific knowledge and input into creating a different business scenario is required.
- sophisticated packaging within packaging, which is seen as a different business scenario, and for which more business context-specific knowledge and input is required.

### 5.2 Scenario — Others

Different business scenarios to meet different ways of trading cycle operation can, and should, be developed by separate, appropriate teams of business and modelling experts. Ideally they should take advantage of the basic UBL model as a starting point and as an exemplar. They will then need to go through an independent harmonisation review to encourage and to ensure inter-operability, to reduce ambiguity, and to avoid unnecessary overlap.

Suggested other scenarios, for separate development, include situations of:

- Vendor managed inventory
- Self-billing
- Master Order and Call-offs
- Prior Quote Request & Quotation
- International Trade requiring Multi-party Transportation
- Hire Trade (e.g. tool hire, scaffolding hire)
- etc.

Other scenarios that are already in development and that should be included in the catalogue of business scenarios include:

- EAN International FMCG (Fast Moving Consumer Goods) scenario
- UN/CEFACT's CCSD (Core Components Supplementary Documentation) — Boeing Spare Parts Ordering scenario

Editors' Notes:

It is expected that each of the above suggestions will become at least one separate scenario with a carefully defined scope that describes what the scenario does and does not cover.

It is also expected that wherever possible as much of each model and 'document' will be as common in design as is possible.

It is also expected that there will be a carefully judged balance between, on the one hand, having too many separate and different scenarios and, on the other hand, too few generic 'all-things-to-all-folks' scenarios.

### 5.3 UBL v0p70 Trading Cycle Scenario

Items are ordered by the Buyer from the Seller. The Buyer and Seller may be in the same country, or in different countries. The Seller confirms with either an Order Response (simple), or an Order Response (complex) if it is necessary to provide the Buyer with additional information. The Seller fulfils the order by sending a Despatch Advice and supplying the items requested. The Buyer returns a Receipt Advice to confirm items have been received. The Seller invoices the items that have been provided. The Buyer reconciles the invoice to the despatch advice and order, and makes a payment which covers one or more invoices within the payment period defined in the invoice payment terms.

Figure 1. Trade Cycle

In the simplest of cases, it is anticipated that there will be no need to change order details. Complete cancellation may be allowed. The Buyer may indicate potential substitutes that are acceptable; the Seller may advise substitutes which will be made, or changes necessary, using the Order Response (complex).

The Order can subsequently be modified by the Buyer cancelling the original Order and replacing it with a new Order.

#### 5.3.1 Order

The Order may specify Charge Payment (e.g. freight, documentation etc) instructions that identify the type of charge and who pays which charges. The Order can be placed 'on account' against a trading credit account held by the Seller, or against a credit/debit card account, or a direct debit agreement. The Order overall allows only for specification of Currency (e.g. £, $, € etc by ISO currency code) for Pricing, for Invoice presentation, for Tax accounting. In the case of International freight/documentation charges, it may also be necessary to specify the Currency.

Trade discount may be specified at Order Header level. The Buyer may not know the trade discount, in which case it is not specified. This makes a detailed Order Response (complex) necessary [See Order Response (Complex)].

The Order may specify delivery terms and constraints that apply for the delivery location in relation to the following information that would normally not appear until the Despatch Advice:

- Transport
  - Means
  - Mode
  - One- to many-legged journey
    - Dates
    - Locations
  - Arrival 'window'
- Consignment packaging
  - Type, e.g. Container, Pallet
  - Identifier, e.g. SSCC, Shipping label (Despatch Advice)

The Order provides for multiple Order Item Lines.

##### 5.3.1.1 Order Item Line

Each Order Item Line provides for specification of a single place of delivery, and a schedule of quantities and requested delivery dates.

The Order may specify delivery terms, while the Order Item Line may provide instructions for delivery. Partial shipment indication is also allowed, insofar as the only information needed is a yes/no 'partial shipment allowed' indicator for each Order Item Line.

For each Order Item Line, an Allowable Substitute can be included. The substitute item may be specified by any one of the range of Item identifiers. The specified Quantity may change e.g. 20x6-packs substituting for 10x12-packs.

##### 5.3.1.2 Item Specification

An Item Identifier identifies each Item (e.g. a product identifier), which shall be one of the following:

- Buyer's Item Identification, or
- Seller's Item Identification, or
- Manufacturer's Item Identification, or
- Catalogue Item Identification, or
- Item Identification according to a Standard body's system.

The Item Identification assumes that each different packaging of an Item (e.g. a 6-pack and a 12-pack of the same item) has a different Item Identifier.

The Item may be further distinguished by the specification of Measurement(s) or Physical Attribute(s). This enables specification of the following kinds of item:

###### 5.3.1.2.1 Item Requiring Description

This is an item that is not identified by an unambiguous, machine processable, product code and where it is necessary to provide additional descriptive information about the item to precisely identify what is required.

###### 5.3.1.2.2 Customer Defined Item

This is an item that the customer describes according to his need, and in the specification of which the customer may make some reference to comparable "standard" items.

###### 5.3.1.2.3 Item Measurements

This is an item in which it is necessary to specify one or more measurements as part of the descriptive specification of the item.

###### 5.3.1.2.4 Other Item Details

For an Item, price ranges by amount, quantity, etc. are not repeated back to the Seller; only the active price is specified. The Buyer may not know the Item Price, in which case it is not specified. This makes a detailed Order Response (complex) necessary [See Order Response (Complex)].

Ordered items may include Hazardous Material items, insofar as it is not necessary to specify related information at the order stage. The Buyer may not be aware of the nature of the Item. Indication of the Hazardous nature of the Item, and any relevant information, would be indicated in the Despatch Advice.

#### 5.3.2 Order Response (Simple)

The Order Response (simple) is the means by which the Seller confirms receipt of the Order, indicating commitment to fulfill without change, to the Buyer. The Seller may also inform the Buyer, using this Order Response, that the Order has been rejected.

#### 5.3.3 Order Response (Complex)

The Order Response (complex) is a complete replacement of the Order. It also is the means by which the Seller confirms or supplies Order-related details to the Buyer that were not available to, or specified by, the Buyer at the time of ordering. These may include:

- Delivery date, offered by the Seller if not specifically requested by the Buyer
- Prices
- Trade Discount
- Charges
- Customs Commodity Classification codes

#### 5.3.4 Changing an Order

The Buyer can change an Order, subject to the legal contract or trading partner agreement, by sending an Order Cancellation followed by a new, complete replacement, Order.

Buyers can initiate a change to a previously accepted order. Buyers may change an order for various reasons such as changing the ordered items, quantity, delivery date, ship-to address, etc. Suppliers can accept or reject the change order using the order response document.

Changes by the Seller would be accomplished through the OrderResponse (Complex).

#### 5.3.5 Order Cancellation

At any point of the process, a Buyer can cancel an order sent to a Seller. Legal contracts, trading partner agreements and business rules would restrict at what point a Order Cancellation would be ignored (e.g. at the point of manufacture or delivery process initiation). Given the agreements and rules, an Order Cancellation may or may not be an automated business transaction. The terms and conditions of a contract formation for business commitments will dictate what if any of these restrictions and/or guidelines will apply.

#### 5.3.6 Despatch Advice

As described in the Order, the Item Identification within each Item Line may be made by the Buyer's, Seller's, Manufacturer's, or Catalogue identification of the item, or by an identification assigned by a Standards organisation. It may also be accompanied by an indication of the Country of Origin for the Item. Indication of the Hazardous nature of the Item, and any relevant information, would be indicated in the Despatch Advice.

The following information may appear in the Despatch Advice:

- Transport
  - Means
  - Mode
  - One- to many-legged journey
    - Dates
    - Locations
  - Arrival 'window'
- Consignment packaging
  - Type, e.g. Container, Pallet
  - Identifier, e.g. SSCC, Shipping label (Despatch Advice)

The Despatch Advice caters for two situations:

- Organisation of the delivery set of items by Logistics Unit(s) so that the Receiver can check Logistics Unit and then contained items. Quantities of the same item on the same Order Line may be separated into different Logistic Units, and hence appear on separate Despatch Lines within a Logistics Unit.
- Organisation of the delivery set of items by Despatch Line, annotated by the id of the Logistics Unit in which they are placed, to facilitate checking against the Order. For convenience, any Order Item Line split over multiple Logistics Units will result in a Despatch Line for each Logistic Unit they are contained in.

Additionally, in either case, the Despatch Advice can advise:

- Full Despatch — Advising the Recipient and/or Buyer that the items ordered on the order will be, or is being, delivered in one complete consignment on a given date to the location specified in the order.
- Partial Despatch — Advising the Recipient and/or Buyer that the items ordered on the order will be, or is being, partially delivered in a consignment on a given date to the location specified in the order. The Ship From, Seller party, issues it at the point of despatch. It will inform about the status of the residual part of the order.

Note: Item Lines of the Despatch Advice may not correspond one-to-one with Order Item Lines, but each needs to be linked by reference to the Order Item Line Id. The information structure of the Despatch Advice, geared to physical considerations, may result in multiple Despatch Advice Item Lines from one Order Item Line. Equally, partial despatch may result in some Order Item Lines not being matched by any Item Line in a Despatch Advice.

#### 5.3.7 Receipt Advice

The Receipt Advice is sent by the Receiver (Buyer) to the Seller to confirm receipt of items, and is capable of reporting shortages and/or damaged items.

The Receipt Advice caters for two situations. For ease of processing claimed receipt against claimed delivery, it needs to be organised in the same way as the matching Despatch Advice:

- Indication of receipt by Logistics Unit(s) and contained Receipt Lines one-to-one with the Despatch Advice as detailed by the Ship From or Seller party.
- Indication of receipt by Receipt Lines annotated by Logistics Unit, one-to-one with the Despatch Advice as detailed by the Ship From or Seller party.

The Receipt Advice allows the Receiver to state any shortages from the claimed despatch quantity, to state any quantities rejected for a reason which is given, and also to indicate cancellation of any 'to follow' quantity advised by the Ship From or Seller party.

Note: As presently arranged the Receipt Line only allows for one rejection quantity and reason. However, any rejection of quantities of same item for different reasons could be achieved by subdividing the Receipt Line so that there are multiple Receipt Lines to one Despatch Line. (How sophisticated, or precise, do you want the reason for rejection to be? Advising the supplier over the phone is generally more expressive than an electronic message!)

#### 5.3.8 Invoice

The Invoice is normally issued on the basis of ONE despatch event triggering ONE invoice. An Invoice may also be issued for pre-payment on a whole or partial basis. The possibilities are:

- Pre-payment invoice (payment expected)
- Pro-forma invoice (pre advice, payment not expected)
- Normal Invoice, on despatch for despatched items
- Invoice after return of Receipt Advice

The invoice only contains the information that is necessary for invoicing purposes. It does not re-iterate information already established in the Order, Order Response (complex), Despatch Advice, or Receipt Advice that is not necessary when invoicing. The Invoice refers to the Order, Order Response (complex), Despatch Advice or Receipt Advice by the Identifier of those documents.

Taxation on the Invoice allows for Compound Taxes, the sequence of calculation implied by the sequence of information repeated in the data-stream. (e.g., Energy tax, with VAT — Value Added Tax — superimposed).

Charges can be specified either as a lump sum, or by percentage applied to the whole Invoice value prior to calculation of taxes. Such charges cover:

- Packaging
- Delivery/postage
- Freight
- Documentation

The present Invoice does not cover Debit and Credit Notes. Nor does the cycle include a Customer Account Statement that summarises Invoices, Credit Notes and Debit Notes to be paid.

##### 5.3.8.1 Invoice Item Line

Each Invoice Item Line refers to the related Order Item Line and may refer to the Despatch Advice Item Line and/or Receipt Advice Item Line.

## 6. UBL Library

### 6.1 Description

The UBL Library was developed as business information entities (BIEs) expressed as a conceptual model. These are then assembled into hierarchical document structures and transformed using the UBL Naming and Design rules into XML Schema syntax.

The non-normative UBL document models contain enough meta-data to allow the automatic generation of XML Schemas based on the UBL Naming and Design Rules.

## 7. UBL Document Schemas

### 7.1 Introduction

The ultimate artifacts for the UBL Library are the XML Schemas themselves. For this release (0p70), these represent the physical implementation of the logical UBL models and are the normative representation of the UBL Library.

### 7.2 XSD Schemas

Normative XSD schemas for the UBL documents and core component types are referenced through the identifiers below.

All Basic Business Information Entities are expressed as Core Component Types [CCTS] as defined in the schema for UBL Core Component Types:
  xsd/CoreComponentTypes.xsd

All Aggregate Business Information Entities are expressed as complex data types as defined in the UBL Re-usable Component Library schema, which references the UBL Core Component Types. This schema also defines all reused Basic Business Information Entities:
  xsd/UBL_Library_0p70_Reusable.xsd

All Business Documents are defined in their individual schemas, which reference the two previous schemas:

UBL Order
  xsd/UBL_Library_0p70_Order.xsd
UBL Order Response (Simple)
  xsd/UBL_Library_0p70_OrderResponseSimple.xsd
UBL Order Response (Complex)
  xsd/UBL_Library_0p70_OrderResponse.xsd
UBL Order Cancellation
  xsd/UBL_Library_0p70_OrderCancellation.xsd
UBL Despatch Advice
  xsd/UBL_Library_0p70_DespatchAdvice.xsd
UBL Receipt Advice
  xsd/UBL_Library_0p70_ReceiptAdvice.xsd
UBL Invoice
  xsd/UBL_Library_0p70_Invoice.xsd

## Annex A: The UBL Library Methodology (informative)

### A.1 Summary

This annex describes the methodology used to identify and define the UBL library content.

The UBL Library was developed as business information entities (BIEs) expressed as a conceptual model. These are then assembled into hierarchical document structures and transformed using the UBL Naming and Design rules into XML Schema syntax.

Business Information Entities are Core Components of information used in a specific context [CCTS].

UBL assumes each core component has neutral context, or is a de-contextualized BIE. We can say that a Core Component is a BIE without any context. For example, when we identified the BIE ShippingContact and OrderContact, we also identified that these were two different contexts for a Contact. This meant that we had also identified a de-contextualized BIE called Contact. By doing this we avoid the need to define the ‘core’ components separately, they are just BIEs that can be used without any context.

It is our intention to submit all de-contextualized BIEs as candidate Core Components to the relevant UN/CEFACT group as soon as possible.

The UBL conceptual model helps analysts, modelers, domain experts, and others better understand the Library. This formal and pragmatic approach to library development based on analysis and design techniques we call "Document Engineering".

To promote rapid and widespread adoption, UBL has been developed to allow its workload to be distributed to sub-groups and industry verticals. This requires a formalization of the approach UBL takes to identifying and describing the content of its library. To this end the set of processes, notations and UBL meta-model have been defined in such a way that they can be used by a broad range of interested parties to understand, refine and extend for their specific business contexts.

To synthesize a range of established vocabularies in both the XML and EDI worlds, this approach also includes explicit steps to identify and reuse design patterns and other artifacts of prior modeling efforts.

### A.2 Identifying Content Components

Content components can be identified at three levels:

1. "Atomic" components that hold individual pieces of information and that are typically represented by primitive data types (e.g., "string," "Boolean," "date") or datatypes readily derived from these.
2. "Aggregate" components that hold logically related groups of atomic components and sub-aggregates.
3. "Document" components that assemble atomic and aggregate components to form a self-contained logical unit of work; the clearest examples are transactional messages within a business process. The business process context provides the requirements for which documents are to be assembled.

The hardest level at which to identify good components is at the aggregate level. To do this on an ad hoc and intuitive basis might not identify the optimal patterns for re-use. For example, it might "sound right" to group Name, Address and DateOfBirth into an aggregate component of Person. But what is it about the associations among these three components that makes them into a good aggregate?

The answer comes from conventional data modeling practice, which includes formal rules for designing logical structures and establishing what data analysts call functional dependencies in order to create modular and self-contained groups that lend themselves naturally to re-use. Such grouping are referred to here as "containers".

Analysis has identified three types of containers that are relevant to the design of UBL:

- List Containers

  List containers provide a wrapper around sets of repeated data structures with differing values. They are, "containers of a series of like elements". For example Line Items in an Order; each Line Item has the same structure, such as item number, description, quantity, etc, and there can be many Line Item occurrences.

  The list container serves to signal the bounds of the list for processing and display purposes. The criteria for list containership in such cases is technical rather than semantic. Whenever a data element is defined as repeatable in the logical model, it is possible to wrap it in list container.

  We refer to these lists of repeated elements as ‘List’ containers.

- Presentational Containers

  Presentational containers such as Header and Summary echo the structure of traditional printed documents. Their use may be to simplify the processing required to display documents for human presentation. In most cases, they add no semantic value.

- Grouped Element Containers

  Most common in any document are containers that wrap elements having an apparent logical connection to each other. These are ‘Grouped Element’ containers.

  Identifying logical groups allows us to minimize redundancy, localize dependencies, and ensure that information can be maintained in logical sets that reflect the constraints of the real world.

  While the identification of logical groups can be done intuitively maximizes re-usability of common patterns demands a more formal and consistent approach for grouping elements. Data normalization provides such an approach.

### A.3 Functional Dependency and Normalization

If the value of one component changes when another component's value changes, then the former is said to be functionally dependent on the latter. For example, each Person we identify is associated with a different Address and DateOfBirth because the values of each of these components functionally depend on the identity of the Person in question.

Technically, this can be defined as:

> "Given an ABIE, called E (e.g. Person), the BIE called Y (e.g. DateofBirth) of E is functionally dependent on the BIE called X (e.g. Name) of E if, and only if, whenever two instances of E agree on their X-value, they also agree on their Y-value."

The use a formal technique for identifying and defining these dependencies is known as normalization. Normalization is a series of analytic steps that:

1. Ensures that all data elements in a group are discrete, i.e., can only take a single value. This means we won't find lists of repeating values in any logical group.
2. Establishes the primary identifier of each logical group.
3. Aggregates groups of components that are fully dependent on each value of the primary identifier, i.e., for each instance of the set.
4. Ensures that all members apart from the primary identifier are independent of one another.

Normalization yields models that describe the network of associations between logical groups of components in optimal ways that minimize redundancy and prevent inadvertent errors or information loss when components are added or deleted. These models are sometimes referred to as Entity-Attribute-Relationship (EAR) models and can also be presented using the UML's Class Diagram notation [UML].

For example, an Order may contain many Products (such as seen in a PurchaseOrder document) or a Product may be on many Orders (such as seen in a SalesReport). Normalization introduces a OrderLine component to reconcile these two views.

UBL has developed a normalized model for objects in the trade procurement business context. This model is represented by both a spreadsheet and UML Class and Dependency Diagrams and is provided as Annex B in this specification.

### A.4 Assembling Hierarchical Document Models

Two-way association such as the one between Product and Order are common in normalized data models and reflect the complex network or web of associations that exist in the real world. The ontology they describe provides great flexibility in the way we can maintain our information.

But, in data exchange information flexibility amounts to ambiguity. We do not want to show all the associations among the information components, only those that are relevant to the business context. This context-specificity is best achieved by creating (or assembling) a hierarchical view out of the relational representation. Hierarchical views introduce grouped element containers that impose a particular interpretation on the information to be exchanged.

Multiple hierarchical views can be created from the same normalized model, as seen with Order and Product (PurchaseOrder vs SalesReport). To create a schema for a PurchaseOrder document type, we would start at Order and list all LineItems and their associated Products. If we wanted a SalesReport document type schema, we would start at Product and list all LineItems and their associated Order. The contrasting document schemas reuse the same components but assemble them in two different container structures, one the inverse of the other.

It is at this stage that the many-to-many and bi-directional associations of the normalized model are reconciled into one-to-many, uni-directional pathways.

The hierarchical view enforces integrity rules and resolves ambiguity in the meaning of the data. What we are saying when we assemble a hierarchical view is "we want to emphasize one context in which you are to understand the data this way."

Once it is assembled by following a uni-directional path through the normalized model, the hierarchical document model can be directly implemented as an XML schema. This document schema need not show all components and their possible associations as described in the normalized model, only the ones pertinent to the business context. Put another way, this means that logical components are patterns that can be re-used by assembling them into document schemas based on the context of their use.

UBL provides XML Schemas for several documents used in the trade procurement business context. The hierarchical models used in constructing each Schema is represented by both a spreadsheet and UML Class and Dependency Diagrams. We have found that the combination of these presentation forms is necessary to give a complete functional view of the model. In addition, all sub-components of each document type have been consolidated into a shared library to facilitate re-use of common patterns.

These models are provided as Annex C of this specification.

The overall UBL design approach can be summarised in the following illustration.

### A.5 The Role of Context

Context is the business environment within which something exists or takes place. Recognition of context is an important factor in promoting the re-use of common patterns using customized refinements. Where we have similar circumstances or events, we can use similar patterns of components.

The business context and associated rules assumed by the current work of UBL is described in Section 5 of this specification. A more formalised approach for assembling UBL Schemas based on the CCTS Context Methodology[CCTS] is scheduled for development as UBL Part 3: Context Methodology.

## Annex B: UBL Normalized Data Model (informative)

### B.1 Introduction

The normalized data model describes the Object Classes, Properties and Associations involved in a general trade procurement process, as defined by Section 5 of this Specification.

This data model is presented in both spreadsheet form and graphically as Class diagrams.

Note that this model does not represent any specific document type. It is a conceptual view of all the necessary information components involved in any of the UBL document types. All the current UBL document types were derived using object classes and associations taken from this model.

### B.2 Spreadsheet

The current spreadsheet matrix used by UBL has proven the most versatile and manageable in developing a logical model of the UBL Library. However, we have also found it useful to have a view that encapsulates the big picture of the structure of UBL. Therefore, we have included a graphical notation in the form of UML Class Diagrams [UML]. Such a notation provides a top-level, exploding view.

The spreadsheet for the normalized data model is referenced through
xls/UBL_Library_0p70_normalized_components.xls

### B.3 UML Class Diagrams

These UML class diagrams were automatically generated from the normalized data model spreadsheet(ref: B.2)included in this distribution. Because of their inherent complexity alternative layouts and document formats are provided to aid viewing.

The compressed file for the normalized UML diagrams is referenced through
uml/UBL_Library_0p70_normalizedmodelUMLclassdiagrams.zip

## Annex C UBL Document Descriptions (informative)

### C.1 UBL Document Spreadsheets

All Aggregate Business Information Entities are expressed in the UBL Re-usable Component Library spreadsheet.
  xls/UBL_Library_0p70_Reusable.xls

All Business Documents are defined in their individual spreadsheets, which reference the Re-usable Component Library spreadsheet:

UBL Order
  xls/UBL_Library_0p70_Order.xls
UBL Order Response (Simple)
  xls/UBL_Library_0p70_OrderResponseSimple.xls
UBL Order Response (Complex)
  xls/UBL_Library_0p70_OrderResponse.xls
UBL Order Cancellation
  xls/UBL_Library_0p70_OrderCancellation.xls
UBL Despatch Advice
  xls/UBL_Library_0p70_DespatchAdvice.xls
UBL Receipt Advice
  xls/UBL_Library_0p70_ReceiptAdvice.xls
UBL Invoice
  xls/UBL_Library_0p70_Invoice.xls

### C.2 UML Class Diagrams

These UML class diagrams were automatically reverse engineered and generated from the XML Schemas included in this distribution. Note that an attribute in a UML class does not necessarily correspond to an attribute in the XML Schema. When creating the diagram, any child element within XML content is mapped to a UML attribute if either: (a) the element has a simpleType primitive value, or (b) the element's type is a complexType with simpleContent (i.e. the type extends a simpleType). This produces the most useful diagram for reviewing the semantic information model represented by the schema.

Class diagrams for the UBL documents are referenced through the identifiers below.

#### C.2.1 Root Document Schemas

UBL Order
  uml/UBL_Library_0p70_Order.gif
UBL Order Response
  uml/UBL_Library_0p70_OrderResponse.gif
UBL Simple Order Response
  uml/UBL_Library_0p70_OrderResponseSimple.gif
UBL Order Cancellation
  uml/UBL_Library_0p70_OrderCancellation.gif
UBL Despatch Advice
  uml/UBL_Library_0p70_DespatchAdvice.gif
UBL Receipt Advice
  uml/UBL_Library_0p70_ReceiptAdvice.gif
UBL Invoice
  uml/UBL_Library_0p70_Invoice.gif

#### C.2.2 Reusable Schema Components

InvoiceLine
  uml/reusable/UBL_Library_0p70_InvoiceLine.gif
OrderLine
  uml/reusable/UBL_Library_0p70_OrderLine.gif
Item
  uml/reusable/UBL_Library_0p70_Item.gif
OrderedShipment
  uml/reusable/UBL_Library_0p70_OrderedShipment.gif
DeliveryRequirement
  uml/reusable/UBL_Library_0p70_DeliveryRequirement.gif
HazardousItem
  uml/reusable/UBL_Library_0p70_HazardousItem.gif
AllowanceCharge
  uml/reusable/UBL_Library_0p70_AllowanceCharge.gif
BuyerParty
  uml/reusable/UBL_Library_0p70_BuyerParty.gif
SellerParty
  uml/reusable/UBL_Library_0p70_SellerParty.gif
FreightForwarderParty
  uml/reusable/UBL_Library_0p70_FreightForwarderParty.gif
DestinationParty
  uml/reusable/UBL_Library_0p70_DestinationParty.gif
PartyTaxScheme
  uml/reusable/UBL_Library_0p70_PartyTaxScheme.gif

#### C.2.3 Core Component Types

String Types
  uml/cct/CoreComponentTypes_String.gif
Decimal Types
  uml/cct/CoreComponentTypes_Decimal.gif
Other Types
  uml/cct/CoreComponentTypes_Other.gif

## Annex D: UBL Supplemental Materials (informative)

### D.1 Introduction

This section is a placeholder for supplemental materials. In the current review cycle some are included below. We expect others, such sample instances, to be available in the near future.

### D.2 Non-Normative References

[ASN.1] Abstract Syntax Notation One, W3C Recommendation 15 October 2001
  http://www.itu.int/ITU-T/studygroups/com17/languages/x680-x693_0702.pdf
[XSL-FO] Extensible Stylesheet Language Version 1.0, W3C Recommendation 15 October 2001
  http://www.w3.org/TR/xsl
[XSLT] Extensible Stylesheet Language Transformations Version 1.0, W3C Recommendation 16 November 1999
  http://www.w3.org/TR/xslt

### D.3 ASN.1 Specification of UBL

The following is an ASN.1 specification of the UBL transfer formats using ASN.1.

It provides an alternative XML Schema definition for the XML documents which defines the same valid XML documents as the XSD Schema, which is the primary definition of valid XML documents.

Use of this Schema enables ASN.1 tools to be used for UBL transfers.

This schema, in conjunction with the ASN.1 Packed Encoding Rules, provides an efficient encoding of the information in this specification, and is the definitive definition of such binary transfers.

The following is the ASN.1 definition for the current release of UBL: asn/asn1spec.html

### D.4 Formatting specifications and stylesheets

This section contains examples of formatting specifications and "stylesheets" that can be used to display instances of UBL schemas in human-readable form. Presentational semantics have not been formalized in this version of the UBL schema library, and they may never be formalized due to differing international requirements and conventions for the presentation of information found in business documents.

The formatting specifications referenced below are intended to conform to the UN Layout Key for printed business documents. However, these specifications must not be considered as reference implementations of UBL or as normative components of the UBL specification; they are merely examples from one of what will probably be many available UBL stylesheet libraries. Pointers to the source of these materials, and other published libraries of formatting specifications when they become available, will be found in a supplementary package linked from the UBL Library Content Subcommittee portal at http://oasis-open.org/committees/ubl/lcsc/.

Formatting specifications and sample XSLT and XSL-FO stylesheets for each of the UBL documents are referenced through the identifiers below:

UBL Order
  fs/FS_UBL_Order.html
UBL Order Response
  fs/FS_UBL_OrderResponse.html
UBL Simple Order Response
  fs/FS_UBL_OrderResponseSimple.html
UBL Order Cancellation
  fs/FS_UBL_OrderCancellation.html
UBL Despatch Advice
  fs/FS_UBL_DespatchAdvice.html
UBL Receipt Advice
  fs/FS_UBL_ReceiptAdvice.html
UBL Invoice
  fs/FS_UBL_Invoice.html

The formatting specification documentation conventions and summary of work in this area for this package is found in the formatting specification index file.

## D. 5 Other Document Samples

The business transactions represented here focus on Order Management and are intended to be examples of how these documents can be used. These samples were manually created by business experts and are only meant to show some possible ways to use these documents. These are not the only way to create UBL compliant documents.

There are two sets of examples.

- The first example "Buying Office Supplies" goes through the process of ordering items from an office supply and the following transactions.
- The second example "Buying Joinery", goes through purchasing items in the UK from Specialist Windows, PLC, and the following transactions.

#### Example One Buying Office Supplies

The buyer, Bill's Microdevices, orders several different items from an office supply store. He knows the supplier's codes for the items and the price.
  Office Supply Order - XML instance, Office Supply Order - printed version
The seller, Joes Office Supply, replies with an Order Response (simple) so as to indicate the acceptance of the order. At the same time, the seller gives his reference number of the order, i.e. the sales order in his system, and also tells the buyer whom to contact if he has any queries.
  Office Supply Order Response - XML instance (simple), Office Supply Order Response - printed version
The seller advises the buyer of the despatch of the items ordered. The Despatch Advice travels with the delivery; a paper copy is signed and returned as proof of receipt. Hence the UBL Receipt Advice is not used.
  Office Supply Despatch Advice - XML Instance, Office Supply Despatch Advice - printed version
The Seller raises the Invoice automatically when the despatch occurs, and the resolution of any shortages etc would be handled post-invoicing. The Invoice show the tax amount The Seller notes that payment is due within 30 days of Invoice.
  Office Supply Invoice - XML Instance, Office Supply Invoice - printed version

#### Example Two Buying Joinery

The buyer, Jerry Builders, PLC. in the UK, orders a number of windows, a door set and some lengths of timber for delivery to a building site. He knows the supplier's codes for the items and that he must also specify a number of physical attributes to get the precise item that he wants. Some windows are asymmetric and are 'handed' left or right: most door sets are handed as they are hinged on one side. The wood and its finish, the 'fittings' are the handles, stays etc. Items can be glazed in different ways. Loose timber is coded according to its cross section and the length must be specified. While the buyer knows these things from the catalogue he does not know the current prices or any discount rate he may get.
  Joinery Order - XML Instance, Joinery Order - printed version
The seller, Specialist Windows PLC, replies with an Order Response (complex) so as to indicate the unit price of each item and to inform the buyer of the trade discount that he will be given. At the same time, the seller gives his reference number of the order, i.e. the identity of the order in his system, and also tells the buyer whom to contact if he has any queries.
  Joinery Order Response - XML Instance, Joinery Order Response - printed version
The seller advises the buyer of the despatch of the items ordered, which will in fact be delivered on two pallets identified as "A" and "B" (i.e. transportation units). The Despatch Advice lists the items in order line sequence and refers to the pallet on which the item is delivered.
  Joinery Despatch Advice - XML Instance, Joinery Despatch Advice - printed version
The Despatch Advice travels with the delivery; a paper copy is signed and returned as proof of receipt. Hence the UBL Receipt Advice is not used.
The Seller raises the Invoice automatically when the despatch occurs, and the resolution of any shortages would be handled post-invoicing. The Invoice has to show the tax point date, the VAT (Value Added Tax) category to which the item belongs and also to show the VAT rate and total for each tax category on the invoice. VAT is also applied to charges such as the delivery surcharge. In order to encourage speedy payment of the amount due, the Seller offers a discount for prompt settlement, which the buyer can deduct if paying within 30 days. (Note that VAT regulations assume it will be taken and so the tax is calculated on the trade discounted total of line items plus any charges and less the settlement discount amount.)
  Joinery Invoice - XML Instance, Joinery Invoice - printed version
This scenario is based on the products, product identification, business requirements and practices of a real UK joinery manufacturer and sales company. It operated its own specialised transport fleet delivering all over the United Kingdom and to offshore islands.