CAML Basics

CAML (Collaborative Application Markup Language)

The CAML queries are internally used to query the SharePoint List with specific conditions and formatting. It is very powerful as SQL queries and improves the performance. The CAML query can be split into

  • Display Part
  • Conditional Part

Display Part

They are generally used to display the content in a grouped and ordered manner.

Eg: OrderBy, GroupBy

<Query>
  <OrderBy>
    <FieldRef Name=’Name’/>
  </OrderBy>
  <GroupBy>
    <FieldRef Name=’Location’/>
  </GroupBy>
</Query>

Conditional Format

They are used to retrieve data with certain conditions. Like using logical operators. The following example queries will give an overview.

1.Simple Condition

The condition (Name ==”Balaji”) in CAML form would look like

<Where>
  <Eq>
    <FieldRef Name=’Name’/>
    <Value Type=’Text’>Balaji</Value>
  </Eq>
</Where>

2.Multiple Condition

Multiple condition with Logical operators have a tricky part that each logical operator can have two parts more than two should have another logical operator to be defined encapsulating it.

The condition((Name ==”Balaji”) && (Location==”Chennai”) && (ID==1))in CAML form would look like

<Where>
  <And>
    <And>
      <Eq>
        <FieldRef Name=’Name’/>
        <Value Type=’Text’>Balaji</Value>
      </Eq>
      <Eq>
        <FieldRef Name=’Location’/>
        <Value Type=’Text’>Chennai</Value>
      </Eq>
    </And>
    <Eq>
      <FieldRef Name=’ID’/>
      <Value Type=’Number’>1</Value>
    </Eq>
  </And>
</Where>

Normal Operator SharePoint  specific
= Eq
> Gt
< Lt
>= Geq
<= Leq
Like Contains
Null Check IsNull
Not Null NotNull
Begins BeginsWith
Date Range DateRangesOverlap
&& And
|| Or

Generally CAML queries can be easily generated using several tools. Refer the following link for more info http://msdn.microsoft.com/en-us/library/ff648040.aspx

SP Value types http://msdn.microsoft.com/en-us/library/aa558695(BTS.20).aspx