Content Assembly Mechanism

Last updated

Content Assembly Mechanism (CAM) [1] is an XML-based standard for creating and managing information exchanges that are interoperable and deterministic descriptions of machine-processable information content flows into and out of XML structures. CAM is a product of the OASIS Content Assembly Technical Committee.

Contents

The CAM approach aligns with the National Information Exchange Model (NIEM) approach and assists with producing Information Exchange Package Documentation (IEPD).

The CAM-processor tools enable creation of realistic XML examples from XSD schema structure definitions. These XML samples simulate test cases for use in interoperability testing and determination of templates for use in actual business information exchanges.

The single most important problem that CAM is solving is simpler and more reliable interoperability for business information exchanges. Today's electronic commerce via the internet is extremely limited in the amount of automation or integration that is occurring. The ability to share accurate concise and verifiable information exchange definitions is a critical next step in enabling easier and cheaper global commerce.

CAM is emerging as the definitive standard underlying effective management of information exchanges through the critical mass being generated by the open source solution.[ citation needed ]

A broad range of OASIS standard definitions are now being documented, validated and enhanced using the CAM open source toolset and approach. To date these include EDXL, CIQ, and EML. CAM use is also extending to external industry groups such as PESC, MISMO, STAR Automotive, CAQH and then for government uses including stratML, LEXS and NIEM.

Each group faces the same challenges in promoting localizations of their overall standards in ways that can be quickly verified and adopted. Using CAM they are able to take their existing XSD schema work and rapidly develop localization templates, XML test cases, new subset schemas for use with web services and create re-usable want lists and content hints. In addition CAM templates are used to build domain dictionaries directly from the XSD schema definitions and then produce cross-reference spreadsheets for individual templates to the master dictionary definitions.

All these capabilities are aimed at improving the quality and speed of implementation and interoperability using business information exchanges based on XML.

History of CAM

The OASIS Content Assembly Technical Committee (CAM TC), which met for the first time in January 2003, was chartered "to produce a specification of a generalized mechanism in XML whereby implementers can deliver the means to bring together business process context and the localized implementation business rules needed to take a raw industry standard schema instance and combine that with actual business information content, context and roles and produce a valid consistent XML document instance."

OASIS is developing specifications for business process mechanisms, industry standard schemas, registry systems, and schema mechanisms. The CAM specification will allow these four components to be brought together in a consistent and standard way and publish assembly implementation instructions based on these OASIS specifications. This will facilitate the work of industry groups and allow development of software tools that work consistently with all these specifications.

The original work predating CAM was begun in the later days of the ebXML initiative as an offshoot of the ebXML Registry work. This working group was dubbed "BRIM" – Business Registry Interface Model and the focus was Registry content assembly services and content syntax storage specifications link to BRIM reference at CEFACT. In addition the BRIM work was also positioned to enable core component message assembly (CCMA) for business processes. The work was moved into OASIS at the end of 2002 to better facilitate the necessary XML development.

Implementations and deployments of CAM V1.1 are in progress as of this writing (January-2009) including open source solutions using Java and XSLT.

Versions of CAM

The CAM template syntax for scripting is designed to be obvious, human readable and declarative.

CAM building blocks

CAM is built upon a number of existing standards:

Extensible Markup Language (XML)
CAM templates are expressed in a standardized XML
XML Schema
CAM provides an abstraction layer for XSD schema that makes manipulating and defining business information exchange templates significantly easier than using just XSD schema alone XML Schema.
XPath V2.0
CAM uses XPath extensively for defining rules and path target expressions that are at the heart of the CAM validator processing.
XSLT scripting
the existing open source solutions leverage XSLT extensively.
electronic business XML(ebXML)
core components and registry concepts developed for ebXML (ISO15000) provide significant conceptual foundations to the CAM approach to content assembly.

CAM templates

A CAM template consists of four core sections. The header section, the structure section, and business rules section and the extensions section.

These can be summarized in XML syntax as:

<CAMCAMlevel="1"version="1.1"><Header/><AssemblyStructure/><BusinessUseContext/><Extension/><!-- Optional, repeatable --></CAM>

The purpose of the Header section is to declare properties and parameters for the CAM process to reference. The purpose of the AssemblyStructure section is to capture the required content structure or structures that are needed for the particular business information exchange.

Once the assembly structure(s) have been defined, then the next step is to define the context rules that apply to that content. The technique used is to identify a part of the structure by pointing to it using an XPath target locator reference, and then also applying an assertion using one of the structure predicates provided for that purpose.

There are two sections to these business context rules, default rules normally apply, and conditional rules that only apply if a particular rule block evaluates to true. Rules are expressed using XPath 2.0 syntax along with an additional set of structure predicates that CAM provides that simplify the control over the structure and its information content model.

CAM function predicates include: excludeAttribute(), useAttribute() excludeElement(), useChoice() excludeTree(), useElement() makeOptional(), useTree() makeMandatory(), useAttributeByID() makeRepeatable(), useChoiceByID() setChoice(), useElementByID() setId(), useTreeByID() setLength(), startBlock() setLimit(), endBlock() setValue(), checkCondition() setDateMask(), makeRecursive() setStringMask(), setUID() setNumberMask(), restrictValues() datatype() or setDataType(), restrictValuesByUID() setRequired(), orderChildren() allowNulls(), setDefault() setNumberRange()

The Extension section then allows for the definition of miscellaneous items such as code list values.

For more details on the CAM template approach see the formal OASIS standard specification OASIS CAM v1.1 standard

Canonical XML dictionaries

The CAM specification is being extended to include canonical XML dictionaries to support Content Assembly using blueprint templates and xslt expander tools. Examples of these include NIEM domain dictionaries and OASIS EDXL and EML dictionaries. For overview of these capabilities see OASIS CAM Blueprints and Dictionaries Quick Guide

Schema models

The CAM template format also supports the generation of structure component models such as UML/XMI and mind maps. This is achieved via a xslt transformation that renders the CAM template structure, rules and documentation components into the XMI or MM model formats.

Related Research Articles

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

The Organization for the Advancement of Structured Information Standards is a nonprofit consortium that works on the development, convergence, and adoption of open standards for cybersecurity, blockchain, Internet of things (IoT), emergency management, cloud computing, legal data exchange, energy, content technologies, and other areas.

XSD, a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document, to assure it adheres to the description of the element it is placed in.

The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL, is an OASIS standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.

Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. It is a structural schema language expressed in XML using a small number of elements and XPath.

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

<span class="mw-page-title-main">XBRL</span> Exchange format for business information

XBRL is a freely available and global framework for exchanging business information. XBRL allows the expression of semantic meaning commonly required in business reporting. The standard was originally based on XML, but now additionally supports reports in JSON and CSV formats, as well as the original XML-based syntax. XBRL is also increasingly used in its Inline XBRL variant, which embeds XBRL tags into an HTML document. One common use of XBRL is the exchange of financial information, such as in a company's annual financial report. The XBRL standard is developed and published by XBRL International, Inc. (XII).

NIEMOpen, frequently referred to as NIEM, originated as an XML-based information exchange framework from the United States, but has transitioned to an OASISOpen Project. This initiative formalizes NIEM's designation as an official standard in national and international policy and procurement. NIEMOpen's Project Governing Board recently approved the first standard under this new project; the Conformance Targets Attribute Specification (CTAS) Version 3.0. A full collection of NIEMOpen standards are anticipated by end of year 2024.

<span class="mw-page-title-main">Oxygen XML Editor</span>

The Oxygen XML Editor is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

Service Modeling Language(SML) and Service Modeling Language Interchange Format(SML-IF) are a pair of XML-based specifications created by leading information technology companies that define a set of XML instance document extensions for expressing links between elements, a set of XML Schema extensions for constraining those links, and a way to associate Schematron rules with global element declarations, global complex type definitions, and/or model documents. The SML specification defines model concepts, and the SML-IF specification describes a packaging format for exchanging SML-based models.

A cornerstone of the UN/CEFACT standardisation activities is the Core Component Technical Specification (CCTS). Core Components are the syntax-neutral and technology-independent building blocks that can be used for data modeling. Major benefits of CCTS include improved reuse of existing data artifacts, improved enterprise interoperability, and consistency across vertical industry standards.

The National Information Exchange Model (NIEM) is the result of a collaborative effort by the United States Department of Justice and Department of Homeland Security to produce a set of common, well-defined data elements to be used for data exchange development and harmonization.

<span class="mw-page-title-main">David Webber (computer scientist)</span> American computer scientist

David R.R. Webber is an Information technologist specializing in applications of XML, ebXML and EDI to standards-based information exchanges. He is a senior member of the ACM since 2007. David Webber is one of the originators of the ebXML initiative for global electronic business via the internet. He is holder of two U.S. Patents for electronic information exchange transformation and those patents are now cited widely by 37 other patents. David Webber has implemented several unique groundbreaking computer solutions in his career including the world's first airport gate scheduling system , the SeeMail email client for MCIMail written in Prolog, the patented GoXML system for XMLGlobal, the ShroudIt obfuscation system for LNK Corp, and the VisualScript tool for Smartdraw Inc.

Election Markup Language (EML) is an XML-based standard to support end to end management of election processes.

XMLStarlet is a set of command line utilities (toolkit) to query, transform, validate, and edit XML documents and files using a simple set of shell commands in a way similar to how it is done with UNIX grep, sed, awk, diff, patch, join, etc commands.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

The Emergency Data Exchange Language (EDXL) is a suite of XML-based messaging standards that facilitate emergency information sharing between government entities and the full range of emergency-related organizations. EDXL standardizes messaging formats for communications between these parties. EDXL was developed as a royalty-free standard by the OASIS International Open Standards Consortium.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

References