Introduction — What Is CAML?

Collaborative Application Markup Language (CAML) is the XML-based language that is used to build and customize Web sites based on SharePoint™ Team Services from Microsoft®.

CAML can be used to do the following:

  • Provide schema definition to the Web site provisioning system about how the site looks and acts.
  • Define views and forms for data and page rendering or execution.
  • Act as a rendering language that performs functions in the DLL like pulling a value from a particular field.
  • Provide batch functionality for posting multiple commands to the server using protocol.

Why would you use CAML as opposed to just using Microsoft FrontPage® or other editing tools?

  • To make universal changes, such as adding a new logo to the main pages of every site you create.
  • To define a content type, such as for adding Flash movies to the SharePoint team Web site.
  • It provides the ultimate in customization and flexibility; manipulating CAML allows you total control over the site provisioning system, for instance, when creating a list or adding a view.

This SDK has been built so that you can use CAML to customize and extend the capabilities of your Web sites based on SharePoint Team Services. You can also modify style definitions in OWS.CSS (in the Program Files\Common Files\Microsoft Shared\web server extensions\50\Templates\1033\Styles directory) in order to make global changes to the site, for example, in font or color. In addition, you can customize Default.htm (in the Inetpub\wwwroot directory) in order to make changes to your home page.

To learn more about the two major kinds of rendering that are implemented in CAML, see the topics on page rendering and field rendering elements.

There are also other XML files that you will need to access in the course of making changes; see the topic describing the location of CAML for information. To learn about the database lists that are used in conjunction with CAML, see the database overview topic.

In order to give you more information about how to use CAML, several example scenarios have been included that may be useful to you.

For information about attributes that can be used with any CAML page-rendering element, see the topic on universal attributes.