Collaborative Application Markup Language
# Collaborative Application Markup Language

CAML (Collaborative Application Markup Language) ist eine auf XML basierende Auszeichnungssprache, die speziell für die SharePoint-Produkte (z. B. Microsoft SharePoint Foundation und Microsoft SharePoint Server) entwickelt wurde und für diese ausgelegt ist. CAML enthält Elemente zur Datendefinition und zur Abfrage und Anzeige von Daten in SharePoint-Portalen.

## Elemente

CAML ermöglicht es dem Entwickler, Inhalte in SharePoint-Portalen zu erstellen, zu verändern oder abzufragen, um diese dann nach eigenen Wünschen anzeigen zu lassen. Des Weiteren kann CAML für die Manipulation und Abfrage von Daten über externe Quellen (z. B. Anwendungen, welche das Client Object Model verwenden) benutzt werden.

### Elemente zur Datendefinition

Elemente zur Datendefinition können verwendet werden, um Listen und einzelne Sites zu erstellen. Ein Beispiel für eine einfach gehaltene Definition von Listenelementen:

In CAML gibt es auch spezielle Tags, um Daten zu vergleichen und zu selektieren:

Des Weiteren gibt es spezielle Tags für Datenbankabfragen.

### Data Rendering-Elemente

Mit Hilfe der neuen Tags ist es in CAML auch möglich, speziellen HTML-Code automatisch generieren zu lassen. Das folgende Beispiel zeigt eine Schleife, die Daten selektiert und im Anschluss ein mittels HTML implementiertes Dropdown-Menü mit diesen Daten anzeigt:

## Verwendung in SharePoint-Produkten

Sämtliche XML-Dateien in SharePoint-Produkten basieren auf CAML. Die CAML-Dateien sind für Struktur der Sites und Listen essentiell. Sie beschreiben, welche Elemente auf den Seiten existieren können, während die ASPX-Dateien lediglich diese Elemente formatieren und anordnen.

CAML kann weiterhin von Software-Entwicklern für die Abfrage und Manipulation von SharePoint-Daten verwendet werden. So können einzelne Listen, Listenelemente sowie ganze Seiten abgefragt werden. Auch Kombinationen (und Schachtelung) solcher Abfragen sind möglich. Dazu stellt Microsoft eine SharePoint-API und das SharePoint Object Model zur Verfügung, zudem die seltener verwendeten SharePoint-WebServices.

Zur visuellen Erstellung von CAML-Abfragen dient das Tool U2U CAML.

