Main Page

From CAM Editor
Jump to: navigation, search
 

CAM - Content Assembly Mechanism - toolkit

The CAM editor is the leading open source toolkit for building and deploying information exchanges and Open Data APIs using XML or JSON with SQL. The CAM toolkit provides an intuitive approach using a WYSIWYG visual structure editor to dramatically simplify the process of developing and managing XML business information exchanges and schema. This gives developers control, insights and analysis that are needed for consistent, interoperable and reliable exchanges.

The CAM toolkit also automates the tasks of generating supporting artifacts such as business documentation, cross-reference spreadsheets, models, XML Schema, JAXB data bindings and test XML instances generation including SQL data extracts.

CAMed Screenshots
CAMeditor Main Perspective
Generated Mindmap Model of Schema
Schema Evaluation Report
SQL DB Connections Manager
SQL DB Mapping Tools
Illustrative screenshots from CAM editor visual interface and tools

The OASIS CAM is a public open standard. The CAM editor can import, analyze and refactor existing exchange XML Schema for better compatibility and use in middleware, including generating XML Schema. Schema generated can be in simple generic syntax or choose from model compliant styles consistent with enterprise integration patterns.

The full XML exchange structure, rules and documentation details are stored in the OASIS CAM standard XML template format. These OASIS CAM standard XML validation templates can include use of content models, code lists, direct SQL table lookups, SQL table data mappings, and business logic expressed as XPath rules with warnings and error flagging that together provide a comprehensive XML exchange handling framework.

The new Open-XDX open data capabilities use code-free techniques in combination with CAM templates and visual drag and drop to rapidly design your XML exchange with SQL DBMappings. From there Open-XDX will automatically generate all the SQL for you, read the database data, generate and populate the valid XML output, and filter with parameters. You can build either Query/Response or Publish/Subscribe services from existing SQL data stores to XML literally in minutes.

Compatible with the NIEM approach for information exchange integration with extensible profiles for NIEM, OASIS and more. Also supports Compliance and Interoperability Testing environment development (CITE) with use of Test Suites and the CAMV validation engine.

The CAM toolkit supports the use of Canonical Model dictionary components with visual Drag and Drop designing. Also provides a set of tools for harvesting and generating canonical dictionaries from existing XML Schema libraries, SQL data stores or enterprise data modelling tools. The CAM approach enables core component message assembly from canonical dictionary collections.

The standalone CAMV validation engine, written in Java, implements an XML and JSON validation framework using the OASIS CAM specification as the foundation. Also designed for integration with Service-Oriented Architecture (SOA), the CAMV XML validation framework supports use with other message based integration patterns such as Enterprise Application Integration (EAI), LEXS (Logical Entity Exchange System) and ebXML messaging systems.

The CAM Editor has local language support for French, Spanish, Russian, Italian, Norwegian, Chinese and Japanese currently.

Sponsors

Oracle

Oracle is a proud sponsor of the CAM project and its application to the National Information Exchange Model initiative along with XML information exchanges for public sector applications. A CAM Editor with NIEM capabilities Quick Guide is available. Also the JAX-WS Java Starter Kit for Oracle and NIEM is now available here. You can learn more at the Oracle NIEM web site. Follow the latest news, articles and insights into CAM and XML from the XMLOrb blog site.

Download

Join what more than 850+ users are downloading each week. stats

CAM Toolkit Downloads

Windows 32bit download

Windows 64bit download

-
Note: Windows 7 requires "Run as Administrator IF you install to default ~/Program Files
See below for more platform downloads and instructions
Available in English, French, Spanish, Russian, Italian, Norwegian, Chinese and Japanese languages.

Uses of CAM

Example uses for the CAM toolkit include:

  • Developing of XML exchanges, templates, rules and documentation
  • Creating dictionaries of canonical components for use in XML exchanges
  • Working with industry domains such as NIEM.org, OAGi BODs and OASIS exchange schemas
  • Developing NIEM IEPD conformant artifacts and verifying NIEM NDR and reuse calculations
  • Building models of exchange schema and dictionaries in UML/XMI and mind map formats
  • Generating realistic XML test examples (primer here)
  • Creating actual XML exchange instances from live SQL store data
  • XML validation framework using the CAMV validation engine
  • JSON validation services and JSON/XML handling with StAXON
  • Open Data API integration using Open-XDX component
  • Compliance and Interoperability Testing environment development (CITE)

An 8 minute tutorial video NEW is available that introduces a selection of these functional concepts in building a XML exchange.

Learn how the IEEE/P1622, OASIS and NIST work on XML for supporting UOCAVA voting leveraged the CAM tools.

Also see our NEW Sourceforge project podcast for insights and background to our project.

Features

The current release of the CAM toolkit provides the following functionality:

  • Visual drag and drop authoring of XML exchange structures from dictionary collections of components
  • Import of data models as XSD schema, and WSDL to create or enhance XML exchanges
  • SQL data store mapping of tables and columns to XML structure components
  • Open Data designer drag and drop from SQL data store tables to create new XML structures
  • Support for JSON handling and validation in editor, CAMV and Open-XDX tools
  • Generation of model compliant XML Schema using profiles, e.g. NIEM, OASIS, WSDL
  • Evaluation Reporting of schema design quality assessment
  • Canonical model dictionary management and generation
  • Industry Standard XML Frameworks support
  • Exchange Modelling with UML/XMI
  • Run time validation engine the CAMV Java module
  • Code list and SQL table lookup validation tools and run time CAMV
  • Business logic rule validation using template XPath expressions
  • Example XML instance generation with content hinting
  • XML Test Suites using Ant scripting of CAMV
  • Compliance Test Language using XPath expressions and CAMV
  • XML editor and integrated development environment
  • Language localization support for menus and forms

Also - you can see the mind map of the full menu structure of the CAM editor toolkit here:

CAM Editor Functional Mindmap
CAMeditor Menus Mindmap

See below for information on the CAMV test engine and test suites.

JSON Support

Starting with the CAM v3.0 release there are now a host of features for using JSON with the CAM editor. There is a JSON template type and wizard to allow creating templates from JSON. Then the CAMV validation engine now supports JSON input and handling and validation. The Open-XDX tools also combine with StAXON Java tools for JSON to allow generating JSON content for Open Data APIs.

We have documented applicable JSON notes throughout the resource topics here and there is a quick video demonstration for using JSON with the CAM editor.

Open Data APIs and Open-XDX

Starting with the CAM v2.3 release we have introduced significant new functionality for working with SQL data stores. We have created resources to help you understand and use these features.

These include short videos on YouTube:

  • Introducing Open-XDX Technology (Conceptual overview + Demonstration)
  • Quick 5 Minute Demonstration of building an Open Data API
  • Quick 9 Minute Demonstration of using JSON sources with the CAM editor
  • Illustrative JAX-WS Java source code for webservice deployment
  • Showcase site of working use case examples on VerifyXML.org

Then for a more detailed understanding of Open-XDX there is the Quick Guide available.

And also a short slideshow of details about Open-XDX technology here.

We have created a sampler pack – Patient Details Reporting with a complete set of working components. This pack contains the SQL, CAM templates and Open-XDX mappings shown in the Quick 5 Minute demonstration – and contains a README file that instructs you on replicating the demonstration on your own system.

We will be adding more example packs in the near future - check here for the latest ones now including PMIX and ULEXS examples.

More samplers packs are available on VerifyXML.org also.

JDBC with Open-XDX Hints and Tips

For SQL Server ensure that the version of the JDBC driver used matches the version needed by the release of SQL Server. We have verified this works for CAM Editor on both Windows 7 and Windows XP clients. However you do need to specify integratedSecurity=true in your JDBC connection URL e.g.

jdbc:sqlserver://localhost;databaseName=MyDB;integratedSecurity=true;

And also another option is to provide the user credential in the JDBC URL like:

jdbc:sqlserver://localhost;user=MyUserName;password=*;

For more details see: http://msdn.microsoft.com/en-us/library/ms378428.aspx

When a large number of tables are present in the SQL Server database then in order to improve the overall performance create a proxy user account that will have just read only access to those limited number of tables required for the data mapping. This is advisable from both a security stance, and limiting the number of tables will be easier to work with and provide better performance and response times.

For IBM DB2 download the appropriate driver from this site: http://www-01.ibm.com/support/docview.wss?rs=4020&uid=swg27016878

The connection format for DB2 follows this syntax example:

jdbc:db2://11.222.333.44:50000/aliasname

It is also important to ensure the DB2 database is correctly configured to permit JDBC data accessing.

Instructions are available here: http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.apdv.java.doc%2Fsrc%2Ftpc%2Fimjcc_cjvjcdig.html

Know DB2 JDBC issues page: http://www-01.ibm.com/support/docview.wss?uid=swg21358484

Loading SQL data from text CSV sources

As part of the Open-XDX initiative we have developed an XSLT utility that can take a CSV file from a SQL Server table or Excel spreadsheet and converts that into valid CREATE TABLE and INSERT VALUES SQL statements. The utility is available from our Miscellaneous file downloads location. More information about the Text to SQL migration utility can be found in the associated Blog posting.

Using Open-XDX with JSON

We have created examples online on our VerifyXML.org web site and also Java code examples on our GitHub resources site.

These resources allow you to see how we are using the StAXON tools in combination with Open-XDX to support JSON handling.

NIEM IEPD Capabilities

Additional specific capabilities for NIEM IEPDs (National Information Exchange Model - Information Exchange Package Description) include the following:

  • Schema build/load/flatten from existing NIEM schema
  • Automatic generation of external XML code list tables
  • Evaluation report of Naming and Design Rules (NDR) assessment, interoperability factors and spelling check of XML components
  • Make a dictionary of canonical components from an exchange, or merged series of exchnges
  • Support for UN/CEFACT Core Components Technical Specification (CCTS) business component objects
  • Compare to NIEM dictionary cross-reference spreadsheet
  • Automatic SSGT "wantlist" generation (SSGT = Subset Schema Generation Tool)
  • Drag and drop designer from SQL data stores into NIEM exchange structures
  • Import JSON source and apply NIEM techniques
  • Build Models and Diagrams of NIEM dictionaries and Exchanges

An 8 minute tutorial video is available that introduces a selection of these NIEM functional concepts in building a XML exchange using NIEM core components.

There is also a complete set of NIEM training videos available on YouTube.

For more about NIEM - see this NIEM Slideshare.net collection of presentation slides.

Dictionaries

Canonical dictionary collections ship with the main CAM download package.

You can also find additional dictionary packs from the Sourceforge files repository (NIEM and LEXS)

There are three sets of dictionaries that CAM uses:

  • NIEM dictionary set for the Compare to Dictionary tool - creates NIEM wantlist.xml and cross-reference spreadsheets
  • Dictionaries in the ~\dictionary folder of the download installation
  • Additional domain dictionaries and compiled dictionaries for use with the drag and drop designer

You can also use the dictionary tools menu items locally to create your own dictionaries. And you can view the dictionaries as models and diagrams. There are these 20 minutes of video quick tutorials on using dictionaries available from Youtube.

A Quick Guide is available with instructions for exporting an ERwin data model and loading it as a CAM domain dictionary. Alternatively use the SQL database visual designer tool to drag and drop tables into NIEM compatible XML component sets, then generate dictionary of components. In NIEM parlance this is an EIEM - Enterprise Information Exchange Model - dictionary. These instructions are available here from the Sourceforge project site.

Have your dictionary of components in Excel spreadsheets and need to convert those into CAM dictionaries? If so then download this Excel example package and view the README file of instructions on how to do that. NOTE: if you are mapping your own spreadsheet to our Excel-Export.xsd you MUST have the columns in the same sequence left to right as the elements in the XML, otherwise you get the crazy baffling error message from Excel: 'The XML maps in this workbook are not exportable'.

Note: Requires version of Excel with XML Data mapping and export feature to XML support. To check - from the main Excel toolbar File menu option - pick Save As, and then scroll through the options list to the one for "XML Data". If you do not see it, then it is not available. For example the Mac 2011 Home and Student edition does not have this.

Modelling

The CAM editor can make models of the XML exchange structure in 3 different formats:

  • Mind map MM for Freemind, Freeplane or XMind or MindManager (MindJet) editor tools
  • ArgoUML XMI v1.2 format
  • UML XMI v2.1 compatible with newer UML modelling tools

Here is a sample for the Freemind mind map:

Mind map of XML exchange
Mind map model generated of XML exchange

(click on screenshot to zoom)

Also - to see generated samples of the NIEM Core v2.1 dictionary models click here.

CAM Tutorials and Videos

Tutorial resources are available, along with sample templates.

The templates created with CAM editor can be viewed in any XML capable viewer or editor

CAM Tutorial Resources

Online Video Tutorials

Tutorial - 8 minute introduction to main features

Tutorial - 20 minutes of quick videos on dictionary featuresNEW ON YOUTUBE

Wiki Tutorial Resources

Examples of Templates

Using CAM Templates for IEEE/P1622 UOCAVA voting with OASIS EML v7.0, from the NIST workshop

Standards

Details of the OASIS Content Assembly Mechanism standard (CAM) are available:

License

CAM is open source software, licensed under OSL v3.0 (Open Software License)".

See this license page for the specific details.

Project News and Media Items

See more at News.
News Items
  • January, 2014 - CAM XML Editor v3.1 release - performance and feature enhancements
  • August, 2013 - New CAM editor v3.0 with JSON support
  • March, 2013 - Enhanced collaborations tools release of CAM editor v2.4
  • January, 2013 - EU Joinup OSS tools directory now formally lists CAM Editor
Latest Release News

New Release of CAM v3.1 see all files available (January 2014). For the overview of new features, see the release notes.

Media Items

Project Statistics

Installing

The CAMed executable is available on Windows, Ubuntu, Oracle Enterprise LINUX, and MacOS X in 32bit and 64bit deployments.

To run CAM, do one of the following.

  • In Windows use either of the installers, 32bit (the default) or 64bit to setup and configure the CAM editor
  • For each operating system we also provide a zip or tar.gz archive with a prepackaged file structure for that operating system. Unpack the archive in the desired location and then invoke the CAMEd executable file.
  • The CAMed ships with the latest Java VM in the JRE folder

XML Validation

The XML Validation Framework uses the CAMV engine to provide services for automation of XML content checking.

Also development of Compliance and Interoperability Testing environments and test suites.

The CAMV XML validation framework supports Test, Evaluation, And Measurement (TEAM) XML test suite development.

In addition CAMV now provides JSON source validation and processing support. This converts input JSON to XML output and then applies the normal validation and handling services.

We have the online testbed environment available from VerifyXML.org

The CAM project is a participant in the EU GITB (Global eBusiness Interoperability Test Bed) project

The following sections provide resources on how to configure and use the CAMV environment.

For the latest CAMV engine package use the download button provided here.

CAMV Download

CAMV engine download

CAMV Testing

Test suite resources are available for use with the Apache ANT test automation tool.

Review the quick guide that is now available to help with setting up CAMV test suites

The components needed to setup and use this test suite are linked to in the table list here.

CAMV Test Suite Resources

Base Tests Folder

Experimental SAR 30 Test example from RuleML 2010/11 NEW

Sample Test Packs includes SQL lookup and IEEE/P1622 USA EML test suite examples NEW

Apache ANT download site

Ant Contrib download site

Current CAMV Jar download

Configuration, installing and running instructions are included in the readme.txt with each test suite download package. The test suites are designed to work across all platforms supported by the CAM editor.

A quick guide is also available on the CAM editor XML Test Examples generation wizard that details what each option does.

Online Testbed Site

For online interactive testing we have the VerifyXML.org website available. This also illustrates how CAMV maybe deployed as a service.

See the online testbed environment page for more details at VerifyXML.org.

CAMV and Schematron Comparison

We often are asked to contrast these XML validation tools. It is all about suited to purpose. CAMV is optimized for business information exchanges - so it has a number of features that give it the edge there - and is designed to be business analyst friendly - with a visual editor UI. Schematron is a general purpose XML tool - and involves programming and knowledge of XML and XSD - as such that is a different paradigm.

Specific CAMV features that are differentiators:

  • SQL table lookups for dynamic content - e.g. part number, customer number, etc
  • Highly scalable thread safe memory resident Java execution engine with Spring API
  • Automatic generation of validation template from XSD schema
  • XML codelist lookup from external XML files
  • Built-in functions for common business content validation actions
  • Visual editor WYSIWYG XML with readable HTML validation rule report
  • CAM template is multi-role - can generate XML samples, JSON content, SQL mapping, models
  • ANT script batch testing integration
  • Dynamic target structure handling via exclude() function - allows one template to manage multiple varients of XML instance
  • JAX-WS integration Java code available

These illustrate the focus on providing a business information exchange toolset. Historically it should be noted that the CAM template approach and specification owes much to the work on both Examplatron and Schematron and has incorporated concepts from both.

JAXB Bindings

The JAXB (Java Architecture for XML Binding) provides a comprehensive toolset for generating the necessary Java components for XML structure handling.

For information on using the CAM Editor with JAXB see this "how to" illustrated JAXB guide for details.

JAX-WS Webservices

Examples of Java code to enable JAX-WS webservices for both Open-XDX and CAMV are available. Also a quick guide video tutorial illustrates using these with Weblogic server.

Starter Kits

In this section we provide a selection of resources that are starter kits for particular applications and environments.

Step by Step guides are provided along with applicable example screen shots and illustrative code fragments.

The files provided here are intended to be samples and illustrations as a start point to accelerate use of the tools and techniques available for the particular solution area.

These are not intended to be a complete working solution but to serve to educate and inform and reduce the time needed to understand how to use the tools and techniques shown.

The first in this series is a NIEM/LEXS Web Services Starter Kit for Java based implementations using the JAX-WS infrastructure with LEXS 3.1.4 Search/Retrieve exchange messages.

NIEM/LEXS Starter Kit

Use the button here to jump to the download folder and select the applicable examples.

The available documentation resources include:

All applicable code files are available from the Code Samples folder along with a JDeveloper compatible package of the example.

NIEM Downloads

CAMV engine download

Language

This quick guide provides details of configuring your system to display in your desired language text.

In Microsoft Windows the Control Panel "Region and Language" setting allows you to pick the language format for your entire machine operations.

For Windows there is also a toolbar applet that then allows you to control and manage the keyboard entry and setup hot keys to switch with.

This language configuration quick guide shows you how to enable this.

For Ubuntu here is an article from HowtoGeek that walks through the steps needed to configure your desktop.

Currently CAM Editor is available with French, Spanish, Russian, Italian, Norwegian, Chinese and Japanese support.

XML Character Encodings

By default XML content is in UTF-8 encoding. However this can cause issues such as with Microsoft Windows generated content from a Web application, an Excel spreadsheet or Microsoft Word which all use Windows-1252 character encoding.

Particularly when running the CAMV validation engine you may see an error message from the Xerces XML parser complaining about invalid UTF-8 byte sequences. If this happens then try editing the XML instance you are using as input and either add or change the XML prolog line to say this:

<?xml version="1.0" encoding="Windows-1252" standalone="yes"?>

and then retry. Of course if you know you are using a different character encoding substitute that for the Windows-1252 value here.

If this still does not work - if you have a LINUX or MacOS system you can try this grep command to highlight the non-UTF-8 characters in your XML input:

grep --color='auto' -P -n "[\x80-\xFF]" file.xml

Also if you need an XSLT pre-processor to simply clone the XML input and switch the XML encoding on an incoming XML file then you can try this XSLT here.

For further notes on XML and encodings - this OpenTag article is instructive

Deployment / Sharing

Check this Quick Guide for details on sharing and deploying your CAM project and associated files and file types.

The various scenarios include:

  • CAM templates and code value lookup lists
  • Dictionaries
  • Schema
  • Examples and Test Suites
  • SQL database lookups
  • Models and Modelling
  • Reports and documentation

The quick guide gives details of all the various dependencies.

Help Resources and FAQ

Ask a question on CAM's Forums. Also, consider looking at the collection of FAQ list, using the search function of your browser.

Find Help with using the CAM editor specifically at CAM Editor Help.

Also interesting news, reports and insights into CAM and XML can be found at the XMLOrb blog site.

Schema Documentation

Tools are available to provide a selection of XSD schema documentation reports. These report formats are customizable and can be stored as HTML documents also.

The report formats that can be generated automatically included:

  • Tabular schema documentation; itemizes the structure components, business rules and content definition/description
  • Interactive compendium; allows dynamic exploration of the schema structure, components and definitions
  • Mind map models; provides visual way to work with the schema structure and definition and produces graphics and PDF views
  • Excel spreadsheet compatible tables of the components that constitute an exchange structure

These options are accessed from the View menu in the editor, or under the Tools menu

Documentation

Documentation available is built-in under the Help menu of the CAM editor. In addition there are

  • Tutorials resources page here.

History

See the history behind the CAM standards work and CAM editor development, including JCAM engine and now the CAMV engine work.

Authors and Contributors

Several people have substantially contributed to the development of CAM, including the following.

  • Martin Roberts - CAMed, CAMV, xslt and original JCAM
  • David Webber - CAMed, xslt, CAMV testing
  • Serge Leontiev - CAMed, CAMV
  • Ken Sall - Testing, feature suggestions
  • Patrick Fendt - Testing, feature suggestions
  • Michael Sorens - testing, feature suggestions
  • Puneet Kathuria - CAMV
  • Tony Slosar - CAMV testing, feature suggestions
  • Robert Fye - CAM feature suggestions, adoption
  • James A Abbiati Jr - Testing, feature suggestions
  • Al Briggs - Testing, feature suggestions
  • Chip (Frank) Baber - Multimedia and Tutorial Videos
  • Tim Ryan - Multimedia and Tutorial Videos

Special thanks to our language translators

  • Hans A. Kielland Aanesen - Norwegian
  • Kenji Itoh - Japanese
  • Frankie Hsiang - Chinese
  • Patrick Harvey - French
  • Mark Mackinnon - French
  • Karen Bachmann - French
  • Luis Miguel Gallego - Spanish
  • Serge Leontiev - Russian
  • Iginio Autelitano - Italian

Many other people have contributed in the forums and postings.

Help Wanted

We need help with the "Help". The CAM editor "Help" facility is woefully out of date; screenshots, features and more need to be revamped. If this is something you enjoy doing we would very much appreciate your assistance with creating a new improved help solution.

Tools

The CAM team uses:

  • Java development tools (JDeveloper/Eclipse)
  • SQL development tools (MySQL workbench | Oracle SQL Designer)
  • Saxon XSLT processor
  • OxygenXML toolset for XML development tasks.
  • Altova UML modeller and MagicDraw UML for XMI testing and development
  • ArgoUML modeller for XMI testing and development
  • Freemind, Freeplane, MindManager, JetMind mobile and XMind tools for mind map rendering
  • KDIFF3 for XML compare and difference
  • Apache ANT for batch XML test suites

Technical Details

Technical details for the project include:

  • Operating System - 64-bit MS Windows, All 32-bit MS Windows (95/98/NT/2000/XP), All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X), All POSIX (Linux/BSD/UNIX-like OSes), OS Independent (Written in an interpreted language)
  • Translations - English
  • Intended Audience - Advanced End Users, Developers, Government, Information Technology, Non-Profit Organizations, Other Audience
  • User Interface - Java SWT
  • Database Environment - XML-based
  • Programming Language - Java, XSL (XSLT/XPath/XSL-FO)

Note - JCAM engine has been deprecated by the new CAMV engine.

Project Tracker

Need to find out the status of bug fixes, or log a bug fix or change request, then visit the project tracker for more details.

For developer resources including latest changes, download links and more - go to the developer support area.

Project Source Code

Here is the repository tree of the SourceForge the GIT source code repository.

To access the GIT code via GIT client you will need a SourceForge account and connect via the Bugs repository.

To view our latest project code commits please see this page here.

Articles

Here are links to external articles and publications

Podcasts

A selection of podcasts available

Other Resources

These resources are available via the Sourceforge project pages:

Related Sites

Other sites that relate to the CAM editor work include:

  • VerifyXML show case and online testbed site [1]
  • NIEM development project [2]
  • XMLOrb blog [3]
  • Simple XML tutorial [4]


Search Keyword Categories:

  • CAMeditor for CAM templates (CAM editor)
  • JCAM Engine with XML Editor / Validator at SourceForge.net
  • CAMV XML validation validator
  • NIEM IEPD development
  • XML Test Data Generation
  • SQL lookups and Code lists