We are pleased to make available these resources free for public use, provided on an "AS IS" basis without formal support or warranty of any kind.

We would appreciate any feedback you have, or suggestions for changes and improvements; please forward your comments to info@CraneSoftwrights.com.

A summary of all resources is available in date order for quick reference, in addition to an  RSS XML  file.

1. What is OASIS?

The Organization for the Advancement of Structured Information Standards (OASIS) is a standards-developing membership organization. Technical committees conceive, develop and publish specifications typically related to the deployment and use of technology for a community of users. Membership puts obligations on committee member contributors such that all OASIS work products are freely available to everyone to use without royalty or licensing fees.

1.1. What is the OASIS Universal Business Language (UBL)?

The OASIS UBL 1.0 and UBL 2.0 specifications define a generic XML interchange format for business documents.   UBL is designed to provide a universally understood and recognized commercial syntax for legally binding business documents and to operate within a standard business framework such as ISO 15000 (ebXML) to provide a complete, standards-based infrastructure that can extend the benefits of existing EDI systems to businesses of all sizes.

The UBL XML vocabulary is defined and maintained by the UBL Technical Committee.

1.2. What is the OASIS genericode code list vocabulary?

The Code List Representation Technical Committee defines and maintains the XML vocabulary named "genericode" used to represent a list of coded values in a standardized form that can be processed by XML-based tools.

1.3. More information on UBL and genericode

Crane Softwrights Ltd. has published the books Practical Code List Implementation and Practical Universal Business Language Deployment with more details describing these OASIS resources and in the future with supplemental resources that build on the free resources found here. Follow the link behind the title above to download a free excerpt of the book, or to purchase a copy and receive all future editions of the title at no additional charge.

2. OASIS UBL resources

2.1. UBL stylesheets for printing PDF and displaying HTML

A separate directory has Crane's Universal Business Language (UBL) and UN Layout Key stylesheet libraries, used to print UBL to PDF according to the United Nations Layout Key.

Also included is the display of UBL to the screen without XML angle brackets.

The UN Layout Key portions are adaptable to any document model.

2.2. UBL report resources

As part of Crane's product development, some proprietary tools not made publicly available are used in the creation of various reports of use to Crane and its customers. Periodically we apply these tools to publicly-available resources and make reports and other results available here.

2.2.1. Crane's UBL 2.1 model summary reports

This resource last updated: 2013-04-20 01:30z
Download this resource at: Crane-UBL21Reports-EN-20130420-0130z.zip

These are sets of HTML files summarizing all of the information items and document model spreadsheets for the UBL 2.1 CSD4D1 20130420-1520z package, both in the aggregate and for each of the document models. The aggregate report has the complete common library, while each individual document report has only those components of the common library that are directly or indirectly referenced by the given document model. The report is in English only.

2.2.2. Crane's UBL 2.0 model summary reports

These are sets of 32 HTML files (compressed to around 3Mb each) summarizing all of the information items and document model spreadsheets for UBL 2.0 update, both in the aggregate and for each of the 31 document models. The aggregate report has the complete common library, while each individual document report has only those components of the common library that are directly or indirectly referenced by the given document model

Each report is extensively hyperlinked and is a useful reference for jumping around the document models, particularly when deciding what is in or not in a customization. The tool used for creating this report is now available as an adjunct to the third and subsequent editions of Practical Universal Business Language Deployment. Customers of the book can use the adjunct tool for the generation and publishing of their own reports for their own customizations.

Each report is an amalgam of the spreadsheet content and the latest International Data Dictionary (using the genericode files from Crane) Crane's UBL 2.0 model summary reports in English
This resource last updated: 2010-09-05 11:50z
Download this resource at: Crane-UBL20Reports-EN-20100905-1150z.zip

This is a summary in English of all of the information items and document model spreadsheets for UBL 2.0, using the English IDD genericode file for the definition and alternative business terms fields. The aggregate file is named CraneUBL20Reports-EN.html. Crane's UBL 2.0 model summary reports in Spanish
This resource last updated: 2010-09-05 11:50z
Download this resource at: Crane-UBL20Reports-ES-20100905-1150z.zip

This is a summary in Spanish of all of the information items and document model spreadsheets for UBL 2.0, using the Spanish IDD genericode file for the definition and alternative business terms fields. The aggregate file is named CraneUBL20Reports-ES.html. Crane's UBL 2.0 model summary reports in Italian
This resource last updated: 2010-09-05 11:50z
Download this resource at: Crane-UBL20Reports-IT-20100905-1150z.zip

This is a summary in Italian of all of the information items and document model spreadsheets for UBL 2.0, using the Italian IDD genericode file for the definition and alternative business terms fields. The aggregate file is named CraneUBL20Reports-IT.html. Crane's UBL 2.0 model summary reports in Japanese
This resource last updated: 2010-09-05 11:50z
Download this resource at: Crane-UBL20Reports-JP-20100905-1150z.zip

This is a summary in Japanese of all of the information items and document model spreadsheets for UBL 2.0, using the Japanese IDD genericode file for the definition and alternative business terms fields. The aggregate file is named CraneUBL20Reports-JP.html.

2.2.3. Crane's UBL 2.0 International Data Dictionary genericode files

This resource last updated: 2008-10-24 21:20z
Download this resource at: Crane-IDD2genericode-20081024-2120z.zip

This resource is a conversion of UBL 2.0 Update International Data Dictionary (IDD) prd1 spreadsheet files (announced at http://lists.oasis-open.org/archives/ubl/200810/msg00029.html) of various languages into a single HTML summary of the entire IDD and multiple OASIS genericode files. Each spreadsheet of each language's localization is converted to a genericode file. In addition, all of the languages are aggregated into a single genericode file for the localization information of each UBL 2.0 document model. User interfaces for programs and other multilingual applications may find it helpful to have some or all of the UBL IDD localization information in a generic keyed-table XML vocabulary.

2.2.4. Miscellaneous UBL reports UBL 2.1 ABIE summary report
This resource last updated: 2014-12-31 14:10z
Download this resource at: Crane-UBL21ABIE-20141231-1410z.zip

This is a summary of all ABIEs in UBL 2.1, one ABIE per page, suitable for excerpting for documentation purposes. Many thanks to Andrew Schoka for providing the page layout design.

2.3. UBL 2.0 instance filters

This resource last updated: 2008-10-26 14:20z
Download this resource at: Crane-UBL2Filters-20081026-1420z.zip

This is a collection of XSLT and Python filters used to create a pure UBL 2.0 instance by copying all elements defined by a UBL 2 specification and pruning those not defined by the specification by ignoring them. There is an aggregate filter supporting all document types simultaneously as well as one filter for each document type. As minor revisions of UBL are published by the UBL Technical Committee, Crane's library of filters will be updated to support each one.

As depicted in the filter documentation, such filtering is important to a UBL deployment that needs to be forward compatible in a heterogeneous network where instances of different minor revisions are being used. The validation of a filtered instance reflects any constraint violations to the minor version supported, not to any subsequent minor versions that are guaranteed to violate the earlier minor version constraints. Thus, an application will not be prevented from inspecting the filtered instance to determine the original minor version level and know that some indeterminate information items have been removed by filtering.

2.4. UBL XPath file resources

During the development of UBL 1.0, the Forms Presentation Subcommittee (FPSC, now renamed the Human Interface Subcommittee, or HISC) innovated the concept of an "XPath file" for the UBL document models. The document model for an XPath file is found in the HISC document repository.

The UBL 1.0 XPath files can be found through http://www.oasis-open.org/archives/ubl/200408/msg00077.html.

The UBL 2.0 XPath files can be found through http://www.oasis-open.org/archives/ubl/200610/msg00031.html (note that the standard files are unchanged from the committee draft files because there were no changes to the committee draft schemas when the standard was published).

2.4.1. XPath reporting

This resource last updated: 2007-04-14 17:20z
Download this resource at: Crane-xpath2report-20070414-1720z.zip

Crane's XPath reporting application written in Python (named "xpath2report") is used to produce up to four different reports from an XPath file.

2.4.2. XPath for XML instances

This resource last updated: 2006-12-04 15:20z
Download this resource at: Crane-xml2xpath-20061204-1520z.zip

While XPath files were conceived for use only with XML document models, Crane's XPath for XML instances stylesheets (named "Crane-xml2xpath") are used to produce XPath reports directly from an XML instance.

2.5. RELAX-NG schemas for UBL 2.0 and 2.1 documents

This resource last updated: 2013-04-20 01:10z
Download this resource at: Crane-UBL-rnc-20130420-0110z.zip

This is a package of RELAX-NG compact syntax schemas for validating and direct editing of XML instances of UBL 2.0 and UBL 2.1 CSD4D1 20130420-1520z schemas.

2.6. Simplified UBL schema customization

This resource last updated: 2006-12-21 21:00z
Download this resource at: Crane-filterXSDDK-20061221-2100z.zip

Crane's schema customization environment is used to specify and produce multiple customizations of schemas for UBL document types used in different customization profiles. This approach prunes the UBL standardized W3C Schema expressions by commenting out unneeded constructs as specified in a customization. The resulting schemas can be used to validate instances of a customization. Also included are hand-crafted demonstrative extension schema fragments to illustrate how these can supplement the customization subset with additional constructs not defined by standard UBL.

2.7. Digitally signing UBL documents

This resource last updated: 2010-11-27 21:40z
Download this resource at: Crane-UBL-digsig-20101127-2140z.zip

Crane's UBL digital signature environment (utilizing the xmlsec application by Aleksey Sanin) is used to digitally sign a UBL document using a PKCS#12 key certificate file, and/or verify a UBL document's enveloped or detached signatures. Guidance is given regarding obtaining at no charge your own certificate file to use for testing.

For documents with simpler requirements for digital signatures, please see Digitally signing XML documents.

2.8. Genericode to UBL NDR

This resource last updated: 2014-12-22 03:30z
Download this resource at: Crane-gc2ublndr-20141222-0330z.zip

Crane's environment to implement the UBL Naming and Design Rules 2.1 XSD schemas and OASIS CVA (context/value association) files from an input OASIS genericode expression of a compatible UBL NDR 2.1 spreadsheet. This package can be used in any project wanting to create schemas and CVA files following the UBL NDR 2.1, not just files for UBL. This package can also be used to create document extension schemas and additional document schemas for any project using the UBL NDR 2.1. Note that the genericode expression of the spreadsheet contents is used as a vendor-neutral expression of the information without relying on any particular brand of spreadsheet software.

2.9. Strategy for UBL documents in SQL tables

This resource last updated: 2013-10-13 00:20z
Download this resource at: Crane-PureMethods-Strategy4UBL2SQL-20131013-0020z.zip

Research working together with Stephen Rowlison of PureMethods has produced this strategy for marshalling and unmarshalling UBL documents from and to an SQL database. Actual SQL table definition scripts are included, as well as the algorithm for loading the tables and traversing them, though no running code is yet part of the package due to the vagaries of different systems. Unlike other SQL approaches attempting to model the UBL XSD expressions, this method successfully addresses the CCTS 2.01 model of UBL with no loss of information from any possible UBL document in XML. Feedback is welcome, especially from implementers employing this approach in their work. Note this method should work for any environment based on CCTS 2.01. The UBL tables included in this package are defined for use with the final UBL 2.1 Committee Specification deliverables, which are identical to those of the OASIS UBL 2.1 Standard.

2.10. Proof of concept UBL form data entry

This resource last updated: 2014-04-01 16:20z
Download this resource at: Crane-ublform-20140401-1620z.zip

This is an XSLT 2.0 stylesheet running client-side in a web browser by using Saxon-CE (Client Edition). It is a demonstration of a bare-bones data entry HTML form that synthesizes an OASIS UBL invoice document. It is not meant for any production use, but can be built on in order to create a full-featured data entry environment.

This demonstration environment is up and running to test at: Crane-ublform.html.

2.11. Skeleton UBL instance editing browser tool

This is an environment in which a user can create from scratch a skeleton XML instance of a UBL document model. The instance is not expected to validate, but it is structurally correct such that the code can be copied and pasted into an XML editor where it will be finished and made schema valid. This is not an editor, it is something with which to initiate document creation.

This demonstration environment is up and running to test at: Crane-UBL-Skeleton.

3. OASIS Genericode and Context/Value Association (CVA) resources

Note that these stylesheets and validation methodology are used in the two hands-on training classes "Practical Code List Implementation" and "Practical Universal Business Language Deployment" offered by Crane Softwrights Ltd.

3.1. Genericode and CVA file stylesheets

This resource last updated: 2013-04-16 00:40z
Download this resource at: Crane-cva-gc-xsl-20130416-0040z.zip

Crane's genericode and context/value association file visualization stylesheets are used for reporting the information found inside of OASIS genericode files, version 1.0 http://docs.oasis-open.org/codelist/ns/genericode/1.0/ and inside OASIS context/value association files, committee draft 02 version http://docs.oasis-open.org/codelist/ns/ContextValueAssociation/1.0/. The stylesheets available in this package are named Crane-cva2html.xsl, Crane-gc2html.xsl and Crane-cva2htmlXSLT.xsl.

3.2. Schematron implementation of CVA files for validation

This resource last updated: 2013-02-07 19:40z
Download this resource at: Crane-cva2sch-20130207-1940z.zip

Crane has developed an XML document value validation implementation of OASIS context/value association files http://docs.oasis-open.org/codelist/ns/ContextValueAssociation/1.0/. This validation creates an ISO 19757-3 Schematron assertion schema corresponding to the associations and any referenced code list and value enumerations. The out-of-the-box implementation included is an XSLT implementation of ISO Schematron, though it can be used with any implementation of ISO Schematron. The out-of-the-box implementation included supports OASIS genericode representations of the enumerations, though it can be adapted to any representation of code lists and value enumerations.

3.3. Genericode conversion to OpenOffice spreadsheet files

This resource last updated: 2015-02-07 14:50z
Download this resource at: Crane-gc2odsxml-20150207-1450z.zip

This is a standalone XSLT 2.0 stylesheet to create the files of an OpenOffice spreadsheet .ODS ZIP from a combination of a genericode file and a skeleton ODS file.

3.4. OpenOffice spreadsheet conversion to complete UBL genericode file

This resource last updated: 2015-01-19 03:10z
Download this resource at: Crane-ods2ublgc-20150119-0310z.zip

This is a standalone XSLT 2.0 stylesheet to export a complete genericode file from one or more ODS spreadsheets. The input can either be the binary ODS file or the OpenDocument Format XML equivalent. When the input is a spreadsheet of CCTS constructs, the output is suitable for use with the Genericode to UBL NDR process to create XSD schemas

Note that there are invocation parameters such that the spreadsheet can be output in a "raw" form with no presumption of use of the UBL NDR. This provides a method of converting any arbitrary spreadsheet with column head values into a genericode XML document.

3.5. OpenOffice spreadsheet export to genericode subset

This resource last updated: 2011-11-11 20:00z
Download this resource at: Crane-gcExportSubset-20111111-2000z.zip

This is an OpenOffice export filter that serializes the contents of a spreadsheet as a set of genericode rows, suitable for use in an OASIS genericode file. Assumptions are made regarding the worksheet tab title and the first-row's use of column headings.

This is not a standalone XSLT file, this is an export filter for OpenOffice.

3.6. CSV to genericode transformation

This resource last updated: 2013-01-18 23:00z
Download this resource at: Crane-csv2gc-20130118-2300z.zip

A stylesheet to transform a CSV file with an enumeration's list-level metadata and rows of values and value-level metadata into a genericode file.

4. Tradeshift Resources

Tradeshift is the exciting cloud-based environment for sending, receiving and creating electronic business documents, at no charge, using OASIS UBL XML. Please contact us if you have any questions regarding how your company can benefit from using Tradeshift.

4.1. Python-based API to the Tradeshift REST service

This resource last updated: 2013-04-13 21:00z
Download this resource at: Crane-TradeshiftAPI-20130413-2100z.zip

Crane has developed an application programmer's interface (API) to the Tradeshift cloud REST interface for Python programmers. Use this module in your Python application to access all of the API resources to enable one, for example, to despatch documents or to read, write and delete documents from your document storage on Tradeshift. Examples for each are included.

The package also includes a command-line interface that works entirely with file system files so that you can use the API without writing a single line of Python. The Python module is platform-independent and invocable from shell scripts, batch files, Ant scripts and any other invocation. Thus, one can use tools such as XSLT or XQuery in conjunction with this command-line tool in order to work with documents from your Tradeshift account without knowing Python.

Note that versions of this library released after March 2013 are totally rewritten from the versions released in 2011. Programs written to the 2011 interface must be modified to adapt to the April 2013 interface.

This Python API is free to download and use and exploit as you need (noting the copyright obligations recorded in the source). If you need assistance in adapting your software to either use this Python interface to the Tradeshift API or use your own interface to the Tradeshift API, please contact us regarding our commercial consulting services.

Note we also have a face-to-face or one-on-one over-the-Internet hands-on training class that uses this Python API to help programmers get set up quickly on Tradeshift with working software. They can then mimic in their own code what this Python code is doing.

Crane logo

Please consider to

towards our
free resources.

+1 (613) 489-0999 (Voice)
+1 (613) 489-0995 (Fax)

BOX 266,


Link traversal: This web site relies heavily on client-side redirection. If certain links do not work for you, please ensure you have this behaviour enabled in your browser.

Page navigation:

Site navigation:

Small print: All use of this web site and all business conducted with Crane Softwrights Ltd. is subject to the legal disclaimers detailed at http://www.CraneSoftwrights.com/legal ... please contact us if you have any questions. All trademarks, servicemarks, registered trademarks, and registered servicemarks are the property of their respective owners.

Link legend: links that are marked with this dotted underline will open up a new browser window, otherwise the same browser window is used for the link target. 

Last changed: $Date: 2015/02/15 02:58:49 $(UTC) (Privacy policy)