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.
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
+1 (613) 489-0999 (Voice)
+1 (613) 489-0995 (Fax)
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.
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.