ustcyier@MOSS

Focus on MOSS2007

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

CAML簡介 (原贴:http://blog.163.com/szmax_limin/blog/static/58182861200931142325680/

一、CAML簡介:

        全稱:協作應用程序標記語言

        用於在WSS中定義在網站和列表中使用的字段和視圖,還用於在網站設置過程中定義WSS數據庫中的表

 

二、CAML的作用:

        1. 使用CAML自定義網站

               

        2. 使用CAML進行呈現

                CAML用於WSS中兩種類型的呈現:

A.          定義字段中包含的數據的類型(數據定義元素)

B.          構造瀏覽器中顯示的HTML(HTML呈現元素)

CAML有兩種類型的元素:

A.          用於字段呈現與架構定義的元素

B.          用於頁呈現的元素

 

        3. 使用CAML進行編程

Ø   創建自定義網站定義和配置

Ø   使用網站定義配置

Ø   設置文件

Ø   創建簡單功能

Ø   自定義Delegate控件

Ø   向用戶界面添加操作

Ø   創建事件處理程序功能

Ø   創建自定義列表定義

Ø   自定義Sharepoint網站的徽標

Ø   向網站定義中添加文檔模板、文件類型和編輯應用程序

Ø   創建解決方案

Ø   向列表添加內容類型

Ø   向網站添加內容類型

Ø   部署工作流模板

Ø   向列表添加列

Ø   引用內容類型中的列

Ø   自定義字段類型定義


 

 

三、數據定義元素:

        CAML字段呈現元素在呈現單個字段時使用,這些字段可顯示在字段類型定義(12\TEMPLATES\XML\FldTypes?.xml)

        每一個字段的定義都由兩個部份組成:

a.      字段定義部份

<Field >內容</Field>

Name值說明:

Ø   AllowBaseTypeRendering:默认值为 FALSE。設置為True表示該字段在顯示時如果出錯就顯示成父類型

Ø   TypeName:字段類型名稱

Ø   ParentType:父類的名稱

Ø   TypeDisplayName:顯示名稱(是指在列表设置页面中显示的名称)

Ø   TypeShortDescription:簡短說明(则是在创建栏页面中显示的名称)

Ø   Filterable:此字段是否可用於使用此字段的列表中進行篩選

Ø   Sortable:是否可以在使用了此字段的列表中對此字段進行排序

Ø   ShowOnListAuthoringPages:是否在列表中顯示此字段

Ø   ShowOnDocumentLibraryAuthoringPages:是否在文檔庫中顯示此字段

Ø   ShowOnSurveyAuthoringPages:是否在調查列表中顯示此字段

Ø   ShowOnColumnTemplateAuthoringPages:是否為列模板字段

Ø   FieldTypeClass:該字段的程序集名稱

Ø   FieldEditorUserControl:指定自定義的字段編輯屬性控件(field_typeFieldEditor.ascx)地址,如果不存在該元素,则字段类型的特定属性将由 PropertySchema 元素(字段类型)元素呈现。

Ø   InternalType:表示一个内部基本类型,不要在自定义字段类型定义中使用此元素

Ø   SQLType:表示将用于在内容数据库中存储数据的SQL数据类型,不要在自定义字段类型定义中使用此元素

b.      字段呈現部分

<RenderPattern >
</RenderPattern>

Name值說明:

Ø   HeaderPattern:定義列標題在列表視圖頁面上的呈現定

Ø   DisplayPattern:定義字段在視圖”(列表項)表單和列表視圖頁面上的呈現模式(DispForm.aspxAllItems.aspx頁面上的呈現模式)

Ø   EditPattern:定義字段在EditFrom.aspx頁面上的呈現模式

Ø   NewPattern:定義字段在NewForm.aspx頁面上的呈現模式

Ø   其它三個基本上用不到,這里就不列出來了

 

可使用的CAML元素:

Ø   Column:返回特定字段的原始数据值

Ø   Column2:用于呈现链接字段类型

Ø   Escape:用于转义字符串中的特定字符

Ø   FieldFilterOptions:用于 FldTypes.xml HeaderPattern 部分中,以显示筛选器下拉菜单

Ø   FieldRef:用于计算字段以引用构成字段,还用于视图中以定义存在哪些字段

Ø   FieldSortImageURL:返回指向用于指示如何对列进行排序的图像文件的 URL

Ø   FieldSortParams:返回列表的排序方向,基于是否已排序字段以及当前默认排序方向来呈现 Asc Desc

Ø   IfEqual:允许基于两个 CAML 表达式的比较结果进行条件呈现

Ø   IfNew:如果项被视为新项,则返回 TRUE

Ø   ImagesPath:返回项目的图像目录的 HTTP 路径

Ø   Limit:将文本截断为指定大小

Ø   LocaleInfo:将服务器区域设置信息传输到客户端,以便正确显示和编辑日期和数字

Ø   PageUrl:用于任何位置,以返回当前页的绝对、编码的 URL

Ø   Property:从当前 ForEach 上下文返回属性

Ø   ScriptQuote:用于从服务器呈现必须解释为引用字符串的文本

Ø   TodayISO:以 ISO 格式呈现当前日期和时间

c.       字段屬性設置部分(在未指定FieldEditorUserControl時使用)
<PropertySchema>

<Fields>

<Field DisplayName="desc" DisplaySize="30" Type="Text">

<Default></Default>

</Field>

</Fields>

</PropertySchema>

四、HTML呈現元素

        頁面呈現CAML元素用於呈現頁面,如需要提取特定字段的屬性並將其呈現在面面上時

       

名称

说明

Batch

用于批处理 HTTP 协议中的命令。

Case

用于在 Switch FieldSwitch 语句内执行比较。

Default

包含将新的项目表单初始化为的字段的默认值。

Expr

包含一个 CAML 表达式,计算该表达式以确定 Switch FieldSwitch 语句的操作过程。

FieldSwitch

基于 CAML 表达式的值提供条件呈现。

ForEach

提供一个用于枚举当前列表中定义的视图或字段的集合的基本机制。

GetVar

在呈现页面的上下文中返回一个变量。

HTMLBase

返回一个为当前页面设置基元素的字符串。

HttpHost

呈现包含当前网站的虚拟服务器的 URL

HttpPath

返回适当的 OWSSVR.DLL 的路径。

HttpVDir

返回当前网站的根目录。

IfEqual

允许基于两个 CAML 表达式的比较结果进行条件呈现。

ListProperty

从数据库返回指定列的值。

Now

呈现当前时间。

Project

Onet.xml 中的顶级元素。

ProjectProperty

返回当前工作组网站的全局属性。

Property

从当前 ForEach 上下文返回属性。

SetList

指定当前列表。

SetVar

在呈现页面的上下文中设置变量。

Switch

允许基于 CAML 表达式的值的条件呈现。

Today

呈现当前日期。

URL

呈现一个 URL

View

Windows SharePoint Services 中定义视图。

XML

用作外部包装以表示 CAML 的一节。

 

五、CAML查詢架構

        用來定義對列表數據的查詢
       
參考:http://msdn.microsoft.com/zh-cn/library/ms467521.aspx

 

六、CAML視圖架構

        用來定義列表視圖在WSS中的呈現方式

        參考:http://msdn.microsoft.com/zh-cn/library/ms439798.aspx

 

七、CAML List架構

        用來定義創建列表的元數據

        參考:http://msdn.microsoft.com/zh-cn/library/aa543477.aspx

 

八、CAML網站架構

        用來定義創建網站集或網站的元數據。

网站定义指定导航栏、列表模板、文档模板、列表基本类型、配置、模块、
组件和服务器电子邮件页脚,以创建网站。

        參考:http://msdn.microsoft.com/zh-cn/library/aa544502.aspx

 

九、文檔圖標架構

        DocIcon.xml文件中使用文檔圖標架構可將文件擴展名和ProgID映射到相磁圖標

        參考:http://msdn.microsoft.com/zh-cn/library/aa979708.aspx

 

十、其它架構

Ø   内容类型定义架构

Ø   功能架构

Ø   自定义字段类型定义

Ø   Solution 架构

Ø   升级定义架构

Ø   工作流程定义架构

posted on 2009-10-15 09:47  yier  阅读(309)  评论(0编辑  收藏  举报