CAAML

CAA Markup Language (CAAML)

CAAML (Canadian Avalanche Association Markup Language) is a standard for the electronic representation of information pertinent to avalanche safety operations.  By building on existing Internet standards, CAAML expresses avalanche related information in a manner that can easily be shared over the World Wide Web.  CAAML builds on the following two existing standards:        

  • Extensible Mark-up Language (XML): A general purpose markup language promoted by the World Wide Web Consortium (W3C)        
  • Geographic Markup Language (GML): An XML grammar defined by the Open Geospatial Consortium (OGC) to express geographic features 

Purpose
The purpose of CAAML is to provide the definitions for the data file structure to support electronic exchange of avalanche related information.  CAAML defines the structure and elements of observations types, specifies how locations are referenced, provides a mechanism for linking observations with each other and contains a method for associating external data files.  

Versions
Several different CAAML versions have been published since its first use in the fall of 2003.  The following list briefly describes the primary stages in the development of CAAML.      

  • CAAML 1.0.3
    The initial specifications for CAAML were developed to support an electronic submissions of the industrial information exchange (InfoEx®) of the Canadian Avalanche Association. These specifications were limited to support observation elements that had traditionally been exchanged in the InfoEx®.         
  • CAAML 2.2.6
    For this version, CAAML was expanded to include the majority of specification defined in the Observation Guidelines and Recording Standards (OGRS) of the Canadian Avalanche Association.        
  • CAAML 3.0.3
    In order to support more detailed geographic information in CAAML, the standard was modified to incorporate key elements of GML, the XML standard for geographic information.          
  • CAAML 4.2
    The file structure of CAAML schema files was redesigned to allow CAAML to be used as an international standard that is not necessarily tied to Canadian element definitions. At the same time, the schema was made fully GML compliant and additional modules for avalanche accident information and snow profile observations were added. 

Current Structure (CAAML 4.2)
CAAML consists of a number of XML Schema files that define the structure of any CAAML instant files.  CAAML 4.2, the most recent version of CAAML, consists of four different schema files that build on each other.        

  • gml3.2Profile.xsd
    The schema file contains a simplified version of GML 3.2, which includes the GML definitions required for CAAML.         
  • xlinks.xsd
    This schema file contains definitions for xlink elements and attributes that are use in GML and CAAML to create links between individual elements and files. Xlink is W3C recommendation.       
  • caaml.xsd
    This schema file specifies the basic definitions for all elements used in CAAML.  The general structure follows the principles used in GML and the element definitions are kept as general as possible to allow wide use of the standard.  It is intended that caaml.xsd could be adopted as an international standard.         
  • caisml.xsd
    This schema file enforces the Canadian standards in the general elements that are defined in caaml.xsd and defines the tree structure of CAAML files as required for the Canadian Avalanche Information System.  While caaml.xsd defines the structure of individual elements, caisml.xsd specifies enumerations and value ranges accord to the Observation Guidelines and Recording Standards (OGRS) of the Canadian Avalanche Association and how they fit together to create a valid CAIS file.  Depending on the involvement of a specific application, various degrees of CAAML can be adopted.  The validity of any instance files can be checked against the relevant schema files. 

Access
CAAML is under a royalty-free patent license, allowing anyone to implement it.  Schema files of the various CAAML versions, example files and basic documentation can be accessed at http://avalancheinfo.net/caaml/schema/

Current Usage
CAAML has been used extensively by the Canadian Avalanche Association since it introduction in 2003.  At the present time, CAAML Version 3.0.3 is used operationally in the InfoEx service, the Canadian Avalanche Information System (CAIS) and the SnoInfoPLUS software development initiative (formerly known as CADS).  It is intended that current services will be updated during the summer of 2007 to fully run on CAAML 4.2.CAAML 4.2 is fully compliant with the latest version of the CAA’s Observation Guidelines and Recording Standards (OGRS 2007).

Scheduled Future Changes
No structural changes are scheduled for CAAML in the near future. Minor changes to CAAML 4.2 might be necessary as bugs are discovered during its implementation.  While the majority of observation elements are stable, the avalanche involvement and snow profile modules are still in a developmental stage.

Authors
The original specifications for the CAAML schema version 1.0 were designed by the Data and Information Committee of the Canadian Avalanche Association, which included Jeff Goodrich (Parks Canada), Jan Bergstrom (Canadian Mountain Holidays), Mark Myhre (Canadian Mountain Holidays), Simon Walker (BC Ministry of Transportation), Evan Manners (Canadian Avalanche Centre) and Pascal Haegeli (University of British Columbia). External expert knowledge was provided by Graeme Irwin (University of Calgary).  All subsequent version of CAAML were primarily designed by Dr. Pascal Haegeli (Avisualanche Consulting) and Roger Atkins (Canadian Mountain Holidays). Advice on the integration of GML was provided by Dr. David Burggraf (Galdos Systems Inc.) 

Feedback and Input
CAAML is an open source initiative by the CAA and as such we welcome any and all feedback on the structure, its utility and future development recommendations.  Please forward all feedback and input to kmaloney at avalanche dot ca.

Suggested References
Schema files of the various CAAML versions, example files and basic documentation can be accessed at http://avalancheinfo.net/caaml/schema/  Open Geospatial Consortium (OGC): Open GIS ® Geography Markup Language (GML) Encoding Specifications. Available online at http://www.opengeospatial.org/standards/gml (April 7, 2007). Lake, R., Burggraf, D.S., and Trninic, M. 2004. Geography Markup Language (GML) – Foundation for the geo-web. John Wiley & Sons Ltd, West Sussex, England. ISBN 0-470-87154-7.  World Wide Web Consortium (W3C): Extensible Markup Language (XML). Available online at http://www.w3.org/XML/ (April 7, 2007). 

World Wide Web Consortium (W3C): XML Linking Language (XLink) Version 1.0. Available online at http://www.w3.org/TR/xlink/ (April 7, 2007).