SharePoint Portal 2003中Document Library的List Schema的结构研究
文档库是比较有代表性的列表, 研究一下它的Schema, 应该对其他的列表都有一定的指导意义. 文档库的Schema的位置在:
C:\Program Files\Common Files\Microsoft Shared\web server extensions\TEMPLATE\TEMPLATE\1033\SPS\LISTS\DOCLIB\SCHEMA.XML
打开这个文件发现比较乱, 我整理了一下, 抓在Notepad++中的截图来说明这个文档的结构. 让我们开始吧.
顶层
=========
1. 顶级结构
第二层
=========
1. List->MetaData->Fields
2. List->Metadata->Views
再往里面就都是用CAML拼接页面元素的部分了.
其中涉及到的比较重要的CAML元素介绍如下:
1. FieldSwitch
下面的例子定义了Note field的两种不同的渲染模式, 取决于这个field是否有rich text formatting.
<RenderPattern Name="DisplayPattern" DisplayName="DisplayPattern"> <FieldSwitch> <Expr> <Property Select="RichText" /> </Expr> <Case Value="TRUE"> <Column AutoHyperLinkNoEncoding="TRUE" /> </Case> <Default> <Column HTMLEncode="TRUE" AutoHyperLink="TRUE" AutoNewLine="TRUE" /> </Default> </FieldSwitch> </RenderPattern>
2. GetVar
下面的例子使用GetVar元素来返回当前的filtering信息, 用来确定在上面的列表中的工具栏里下一个显示什么.
<Switch> <Expr> <GetVar Name="Filter" /> </Expr> <Case Value="1"> <HTML>Hide Filter Choices</HTML> </Case> <Default> <Switch> <Expr> <GetVar Name="FilterField1" /> </Expr> <Case Value=""> <HTML>Filter</HTML> </Case> <Default> <HTML>Change Filter</HTML> </Default> </Switch> </Default> </Switch>
未完.....
Schema.xml
http://msdn.microsoft.com/en-us/library/ms459356.aspx
FieldSwitch Element (View)
http://msdn.microsoft.com/en-us/library/ms412771.aspx
GetVar Element (View)