Content Assembly Mechanism
Content Assembly Mechanism (CAM) 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.
The CAM approach aligns with the National Information Exchange Model (NIEM) approach and assists with producing Information Exchange Package Documentation (IEPD).
The open source Java implementation of CAM (jCAM) is available on SourceForge at the camprocessor project (camprocessor) site and is being widely used in the context of automating the delivery of testing components (with over 1,000 monthly downloads and top 2% of SourceForge projects). The automation reduces manual tasks that take weeks to complete to instead hours.
The camprocessor 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.
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 off-shoot 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. 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
- CAM 1.1 was adopted as an OASIS Standard in June 2007.
- Current work is continuing on refining and extending toward a new V1.5 release in 2009 mainly focusing on clarifications, corrections and limited extensions. The core role of CAM remains the same – defining, composing and validating XML content.
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 and particularly the Saxon XSLT processor (also available on SourceForge – Saxon
- electronic business XML(ebXML)
- core components and registry concepts developed for ebXML (ISO15000) provide significant conceptual foundations to the CAM approach to content assembly.
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:
<CAM CAMlevel="1" version="1.1"> <Header/> <AssemblyStructure/> <BusinessUseContext/> <Extension/> </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 V2.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. The Sourceforge camprocessor project has early adoption implementation of these capabilities. For overview of these capabilities see OASIS CAM Blueprints and Dictionaries Quick Guide
XML Validation Framework
The CAM approach provides support for standalone validation XML instance validation services. The CAMV Java engine that implements XML validation using CAM templates is an example of this approach. An example of using this framework is described in the IBM Developer Works article from May of 2010.
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. This capability is integrated into the Sourceforge camprocessor toolset for Freemind, ArgoUML and XMI 2.1 compatible UML tools.
- [XSDvCAM] David Webber et al., white paper White Paper on CAM v1.1 and XSD Schema V1.1 Insights OASIS Draft, 2008. Document link CAM white paper.
- [SchematronvCAM] Rick Jelliffe, August 2009, Comparison of Schematron v CAM O'Reilly Article .
- [Incon] Kateˇrina Opoˇcensk´a, Michal Kopeck´ et al., Incox – A language for XML Integrity Constraints Description White Paper, Aachen, Germany, 2009 .
- OASIS Content Assembly Mechanism Technical Committee
- Cover Pages: Executive Overview of CAM
- IBM Developer Works Article on the benefits of CAM
- SOA Magazine article on CAM
- Principle resource site for Java jCAM implementation of CAM
- OASIS wiki resources site for CAM
- Presentation at XML2008 on NIEM and CAM
- March 2009 DEVX article "Taking XML Validation to the Next Level: Introducing CAM" by Michael Sorens
- 3rd party NIEM tools
- SOA Magazine, July 2007 "The Content Assembly Mechanism (CAM) and SOA Data Service Layers"
- IBM DeveloperWorks article, May 2010 "XML Validation Framework using OASIS CAM (CAMV)"
- RuleML 2010, proceedings of, "NIEM Canonical XML Dictionaries and Rule Engine Systems"
Wikimedia Foundation. 2010.
Look at other dictionaries:
X86 assembly language — is the assembly language for the x86 class of processors, which includes Intel s Pentium series and AMD s Athlon series. Like all assembly languages, it uses short mnemonics to represent the fundamental operations that the CPU in a computer can… … Wikipedia
United Nations General Assembly Resolution 377 — United Nations General Assembly (UNGA) resolution 377 A,UN document |docid=A RES 377(V) |type=Resolution| body=General Assembly |accessdate=2007 09 21|date=3 November 1950] the Uniting for Peace resolution, states that, in cases where the United… … Wikipedia
United Nations General Assembly — Infobox UN name = United Nations General Assembly caption = United Nations General Assembly hall type = Principal Organ acronyms = GA, UNGA head = President of the UN General Assembly ;As of 16 September 2008:Miguel d Escoto Brockmann:Nicaragua… … Wikipedia
David Webber — This article is about the Information technologist. For the science fiction writer, see David Weber. For the clarinetist, see David Weber (clarinetist). David Webber Born 1955 (1955) Leicestershire, England … Wikipedia
National Information Exchange Model — The National Information Exchange Model (NIEM) is an XML based information exchange framework from the United States. NIEM represents a collaborative partnership of agencies and organizations across all levels of government (federal, state,… … Wikipedia
OASIS (organization) — The Organization for the Advancement of Structured Information Standards (OASIS) is a global consortium that drives the development, convergence and adoption of e business and web service standards. With its headquarters in the USA, members of… … Wikipedia
Context management — is a dynamic computer process that uses subjects of data in one application, to point to data resident in a separate application also containing the same subject. Context Management allows users to choose a subject once in one application, and… … Wikipedia
James Webb Space Telescope — General information Organization NASA, with significant contributions from ESA and CSA … Wikipedia
Business and Industry Review — ▪ 1999 Introduction Overview Annual Average Rates of Growth of Manufacturing Output, 1980 97, Table Pattern of Output, 1994 97, Table Index Numbers of Production, Employment, and Productivity in Manufacturing Industries, Table (For Annual… … Universalium
human rights — fundamental rights, esp. those believed to belong to an individual and in whose exercise a government may not interfere, as the rights to speak, associate, work, etc. [1785 95] * * * Rights that belong to an individual as a consequence of being… … Universalium