|
协作应用程序标记语言 (CAML) 是一种基于 XML 的语言,用于在 Windows SharePoint Services 中定义在网站和列表中使用的字段和视图。CAML 还用于在网站设置过程中定义 Windows SharePoint Services 数据库中的表。也可以对列表进行更新,在使用SharePoint Web Service的时候十分重要。详细的规范请参考http://msdn.microsoft.com/zh-cn/library/ms462365.aspx,本文列出一些常用的和重要的信息。
1. 一些属性
RowLimit:<RowLimit>10</RowLimit>查询结果的返回行限制
ViewFields:<ViewFields> <FieldRef Name='Title'/> <FieldRef Name='Name'/></ViewFields>查询结果要显示的字段
2. 查询条件
query.Query = "<Where><Eq><FieldRef Name='Status'/>" + "<Value Type='Text'>Completed</Value></Eq></Where>";
2.1.比较操作符如下:
Comparison Operators
| General Meaning
| Eq
| =
| Gt
| >
| Lt
| <
| Geq
| >=
| Leq
| <=
| Neq
| <>
| Contains
| Like
| IsNull
| Null
| IsNotNull
| NotNull
| BeginsWith
| Beginning with word
| DateRangesOverlap
| compare the dates in a recurring event with a specified DateTime value, to determine whether they overlap
| 2.2.Or
.<Where> <Or> <Geq><FieldRef Name='Field1'/> <Value Type='Number'>1500</Value> </Geq> <Leq> <FieldRef Name='Field2'/><Value Type='Number'>500</Value> </Leq> </Or> </Where>
2.3.And
<Where> <And> <BeginsWith> <FieldRef Name="Conference"/> <Value Type="Note">Morning</Value> </BeginsWith> <Contains> <FieldRef Name="Conference" /> <Value Type="Note">discussion session</Value> </Contains> </And></Where>
2.4.Orderby
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
2.5.GroupBy
<GroupBy>
<FieldRef Name="Modified"/>
</GroupBy>
3.转义
Original
| Replacement
| "
| \"
| \
| \\
| +
| \u002b
| >
| \u003e
| <
| \u003c
| '
| \u0027
|
|
|
例:
<FieldRef Name=\"Checkbox\"></FieldRef> <Value Type=\"bit\">1</Value>
4.Batch
内嵌于 HTTP 协议中,Batch 元素必须至少包含一个 Method 元素。Batch 元素允许客户端应用程序一次性向服务器传送多个命令。
4.1.格式
<Batch
OnError = "Return" | "Continue"
ListVersion = ""
Version = ""
ViewName = "">
<Method>
...
</Method>
...
</Batch>
属性
| 说明
| ListVersion
| 可选属性,类型为 Integer。指定列表的版本号。
| OnError
| 可选。以下是可能的值:
· Return — 在遇到第一个错误之后,停止执行任何方法。此值为默认值。
· Continue — 在遇到错误后,继续执行后续方法。
| Version
| 可选属性,类型为 String。指定正在服务器上运行的 Windows SharePoint Services 的版本号。版本号包含四个整数,格式为 N.N.N.NNNN,它们表示产品的主版本、次版本、阶段版本和增量版本。
| ViewName
| 可选属性,类型为 Guid。指定视图的 GUID。
|
4.2.Method:在批处理中用于指定 Batch 元素中的命令。
Method 元素是 Batch 元素所必需的
<Method ID="Text"
Cmd = "Text"
ID = "Text">
</Method>
属性
| 说明
| Cmd
| 可选属性,类型为 Text。在 Web 服务中使用,指定相关命令发布到服务器以进行列表项更新。可能的值包括:
· Delete — 删除指定项目。
· New — 创建指定项目。
· Update — 修改指定项目。
| ID
| 必需属性,类型为 Text。自由形式标识字符串,它实际并非由服务器使用,而是返回到客户端。
| 4.3. SetList:指定当前正在使用的列表。
<SetList
Name = "Text"
PreserveContext = "TRUE" | "FALSE"
Scope = "Request">
</SetList>
属性
| 说明
| Name
| 必需属性,类型为 Text。指定该列表的名称。
| PreserveContext
| 可选属性,类型为 Boolean。如果为 FALSE,则实现 SetList 元素将返回数据库查询,该查询是获取显示单个列表项的表单中数据所必需的。当视图和表单位于同一页面中时,此功能非常有用。默认值为 TRUE。
| Scope
| 当设置为 Request 时,此属性使整个列表可用于该页面。
| 4.4. SetVar:允许在本地将页呈现到当前 XML 级别或将页全局呈现到页的上下文中设置变量。
<SetVar
ID = "Text"
Name = "Text"
Scope = "Request"
Value = "Text">
</SetVar>
属性
| 说明
| ID
| 可选属性,类型为 Text。提供变量的 ID。
| Name
| 必需属性,类型为 Text。指定变量的名称。
| Scope
| 如果设置为 Request,则变量是全局变量。
| Value
| 可选属性,类型为 Text。当这是一个空元素时,可用于为变量指定值。
| 在下面的示例中,第一个 GetVar 元素返回“Value_2”,第二个 GetVar 元素返回“Value_1”,因为包含“Value_2”的 SetVar 元素仅适用于“Sample”元素的子级。“Value_2”在“Sample”结束标记之后超出范围。
XML
<SetVar Name="myVar">Value_1</SetVar>
<Sample>
<SetVar Name="myVar">Value_2</SetVar>
<GetVar Name="myVar"/>
</Sample>
<GetVar Name="myVar"/>
4.5.例子
batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>6</Field>" +
"<Field Name='Title'>Modified sixth item</Field></Method>" +
"<Method ID='2' Cmd='Update'><Field Name='ID'>7</Field>" +
"<Field Name='Title'>Modified seventh item</Field></Method>" +
"<Method ID='3' Cmd='Delete'><Field Name='ID'>5</Field>" +
"</Method><Method ID='4' Cmd='New'>" +
"<Field Name='Title'>Added item</Field></Method>";
5.WSS中的各种字段类型与.NET中对应的数据类型的对照关系
Name
| Format
| Attachments
| System.Boolean
| Boolean
| System.Boolean
| Calculated
| N/A
| Choice
| System.String
| Computed
| N/A
| Counter
| System.Int32
| CrossProjectLink
| System.Boolean
| Currency
| System.Double
| DateTime
| System.DateTime
| GridChoice
| System.String
| Guid
| System.Guid
| Integer
| System.Int32
| Lookup
| System.String
| MaxItems
| System.Int32
| ModStat
| System.Int32
| MultiChoice
| System.String
| Note
| System.String
| Number
| System.Double
| Recurrence
| System.Boolean
| Text
| System.String
| Threading
| System.String
| URL
| System.String, System.String
| User
| System.String
|
|
|
|
|
|
|
|