Jump to content

Collaborative Application Markup Language

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Nonnb (talk | contribs) at 19:19, 4 March 2009 (External links: - CAML U2U Generator). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

CAML (Collaborative Application Markup Language) is an XML based markup language used with the family of Microsoft SharePoint technologies (Windows Sharepoint Services and Office SharePoint Server). Unlike plain XML, CAML contains specific groups of tags to both define and display (render) data.

Elements

CAML allows developers to both construct and display data. Microsoft refers to elements used to display data as "Rendering" elements.

Data Definition Elements

Data definition elements are used to define lists and sites in the same style as basic XML (but with a limited set of keywords). A simple definition of the fields in a list might look something like this:

  <Fields>
    <Field Type="Counter" Name="ID"/>
    . . . other field definitions. . .
  </Fields>

A specific set of tags exists to compare and branch on data within CAML as well:

  <IfEqual>
     <Expr1>
        <Field Name="CheckedOutUserId" />
     </Expr1>
     <Expr2 />
     <Then />
     <Else>
       Some more CAML
     </Else>
  </IfEqual>

There are also specialized tags provided for database queries.

Data Rendering Elements

CAML allows for the generation of HTML based on specific sets of tags. For example, the following example loops through some data and generates an HTML drop down menu of choices:

  <ForEach Select="CHOICES/CHOICE">
    <HTML>fld.AddChoice(</HTML>
    <ScriptQuote>
       <Property Select="."/>
    </ScriptQuote>
    <HTML>, </HTML>
    <ScriptQuote>
       <Property Select="Value"/>
    </ScriptQuote>
    <HTML>);</HTML>
  </ForEach>

Where CAML is Used in Sharepoint Products

In general, most of all xml files in a sharepoint installation include CAML. Specifically CAML is very important in site and list definitions, via the Onet.xml files as well as other corresponding xml files. Here the CAML is used to define what elements exist on an instance of a site, and the display of these sub-elements, while the aspx files are used to define how to arrange and display those elements to form the site.

CAML is also used to query against Sharepoint lists and views, when programming against the SharePoint API.

U2U CAML Generator]