Life, SAP, Consulting, Programming, Coding, ASP.NET, Sharepoint, MVC, Javascript, PHP, WebDesign, CSS, HTML

Tìm hiểu về Schema.xml files

Mỗi List Definition xuất hiện trong Create Page có một file Schema.xml được lưu trữ trong một thư mục con của %Program Files\Common Files\Microsoft Shared\web server extesions\12\TEMPLATES\FEATURES. Hoặc là được deployed như là một phần của một Sandboxed Solution. File Schema.xml định nghĩa View, Form, Toolbar va nhưng Field đặc biệt cho List được tạo ra từ List definition đó.

Chức năng của Schema.xml trong việc định nghĩa List Defintion

Những công việc sau đây có thể được triển khai trong Schema.xml trong tùy biến một List Definition:

  • Thêm một Custom Field dựa trên một Field type được định nghĩa trong FldTypes.xml
  • Tạo Custom View cho List được tạo ra từ List Definition
  • Chỉ định Custom Form page cho List Items
  • Thêm mô tả mặc định cho List được tạo ra, hiển thị trong UI

Khi làm việc với List Definition, không nên chỉnh sửa những File Schema có sẵn, vì nếu làm như thế có thể phá vỡ những List đang tồn tại, File đó cũng có nguy cơ bị ghi đè khi nâng cấp, hay cập nhật Sharepoint. Vì thế nên tạo mới Custom List Definition Feature với file Schema.xml bằng cách copy từ file có sẵn mà không nên chỉnh sửa file có sẵn.

Định dạng File

List Element

Thành phần ngoài nhất là List, định nghĩa tên bên trong và tên hiển thị cho List definition cũng như là hướng hiển thị (direction)của text trong các lists, và địa chỉ tương đối với những Lists đã được tạo ra.

<List

xmlns:ows=”Microsoft SharePoint”

Title=”Tasks”

FolderCreation=”FALSE”

Direction=”$Resources:Direction;”

EnableContentTypes=”TRUE”

Url=”Lists/Tasks”

BaseType=”0″>

 

Site-relative URL cũng như các thuộc tính khác của List Element chỉ định nghĩa tương đối và không rõ ràng vì chúng bị override bởi List setting trong Onet.xml của Site Definition. Thuộc tính BaseType định nghĩa loại cơ sở cho List, được giới hạn với những Loại basetype được định nghĩa trong <BaseTypes> của File Onet.xml

MetaData Element

Metadata element nhóm danh sách những metadata trong một List Element và có thể chứa nhiều Element con.

ContentTypes Element

ContentTypes Element định nghĩa content types được sử dụng trong những Lists mà được tạo ra từ chính List definition hiện tại.

<MetaData>

<ContentTypes>

<ContentTypeRef ID=”0x0108″>

<Folder TargetName=”Task” />

</ContentTypeRef>

<ContentTypeRef ID=”0x0120″ />

<ContentTypeRef ID=”0x012004″ />

</ContentTypes>

 

Fields Element

Element Fields chứa các định nghĩa cho những filed đặc biệt có thể chứa trong List definition

<Fields>

  <Field 

    ID="{c3a92d97-2b77-4a25-9698-3ab54874bc6f}" 

    Name="Predecessors" 

    Type="LookupMulti" 

    Mult="TRUE" 

    Required="FALSE" 

    DisplayName="$Resources:core,Tasks_Predecessors;" 

    StaticName="Predecessors" 

    List="Self" 

    ShowField="Title" 

    DisplaceOnUpgrade="TRUE" 

    SourceID="http://schemas.microsoft.com/sharepoint/v3">

  </Field>

  <Field 

    ID="{a8eb573e-9e11-481a-a8c9-1104a54b2fbd}" 

    Type="Choice" 

    Name="Priority" 

    DisplayName="$Resources:core,Priority;" 

    SourceID="http://schemas.microsoft.com/sharepoint/v3" 

    StaticName="Priority">

    <CHOICES>

      <CHOICE>$Resources:core,Priority_High;</CHOICE>

      <CHOICE>$Resources:core,Priority_Normal;</CHOICE>

      <CHOICE>$Resources:core,Priority_Low;</CHOICE>

    </CHOICES>

    <MAPPINGS>

      <MAPPING Value="1">$Resources:core,Priority_High;</MAPPING>

      <MAPPING Value="2">$Resources:core,Priority_Normal;</MAPPING>

      <MAPPING Value="3">$Resources:core,Priority_Low;</MAPPING>

    </MAPPINGS>

    <Default>$Resources:core,Priority_Normal;</Default>

  </Field>

  ...

  <Field  

    ID="{d2311440-1ed6-46ea-b46d-daa643dc3886}" 

    Type="Number" 

    Name="PercentComplete" 

    Percentage="TRUE" 

    Min="0" 

    Max="1" 

    DisplayName="$Resources:core,Percent_Complete;" 

    SourceID="http://schemas.microsoft.com/sharepoint/v3" 

    StaticName="PercentComplete">

  </Field>

  <Field 

    ID="{53101f38-dd2e-458c-b245-0c236cc13d1a}" 

    Type="User" 

    List="UserInfo" 

    Name="AssignedTo" 

    DisplayName="$Resources:core,Assigned_To;" 

    SourceID="http://schemas.microsoft.com/sharepoint/v3" 

    StaticName="AssignedTo">

  </Field>

  ...

</Fields>

 

Mỗi Field Element định nghĩa một tên hiển thị và một tên hệ thống (internal name), một Field type (Type) và một số thuộc tính khác như là “Required”

Views Element

Thành phần Views chứa những định nghĩa cho Views mà có thể có trong List ngay khi nó được tạo ra.

<Views>

  ...

  <View 

    BaseViewID="2" 

    Type="HTML" 

    WebPartZoneID="Main" 

    DisplayName="$Resources:core,My_Tasks;" 

    MobileView="True" 

    MobileDefaultView="True" 

    SetupPath="pages\viewpage.aspx" 

    ImageUrl="/_layouts/images/issues.png" 

    Url="MyItems.aspx" 

    ReqAuth="TRUE">

  <XslLink Default="TRUE">main.xsl</XslLink>

  <RowLimit Paged="TRUE">30</RowLimit>

  <Toolbar Type="Standard" />

  <ViewFields>

    <FieldRef Name="LinkTitle"></FieldRef>

    <FieldRef Name="Status"></FieldRef>

    <FieldRef Name="Priority"></FieldRef>

    <FieldRef Name="DueDate"></FieldRef>

    <FieldRef Name="PercentComplete"></FieldRef>

  </ViewFields>

  <ParameterBindings>

    <ParameterBinding 

      Name="NoAnnouncements" 

      Location="Resource(wss,noXinviewofY_LIST)" />

    <ParameterBinding 

        Name="NoAnnouncementsHowTo" 

        Location="Resource(wss,noXinviewofY_DEFAULT)" />

  </ParameterBindings>

  <Query>

    <Where>

      <Eq>

        <FieldRef Name="AssignedTo"></FieldRef>

        <Value Type="Integer">

          <UserID />

        </Value>

      </Eq>

    </Where>

    <OrderBy>

      <FieldRef Name="Status"></FieldRef>

      <FieldRef Name="Priority"></FieldRef>

    </OrderBy>

  </Query>

</View>

  ...

</Views>

 

Mỗi thành phần View định nghĩa một loại hiển thị (Thông thường là HTML) và một ID duy nhất cho View. Khi một View được hiển thị trong một Webpart, View element cũng định nghĩa View Title,. Thuộc tính URL được sử dụng trong việc tạo ra List Definition chỉ định File aspx mà view sẽ được hiển thị trong đó.View cũng định nghĩa Webpart zone ID của Webpart mà nó sẽ được hiển thị.

Trong Sharepoint, View có thể chứa nhiều thành phần con, định nghĩa nhiều phần khác của View

  • Aggregations định nghĩa trường tham chiếu cho cột calculated.
  • XslLink định nghĩa XSL file định nghĩa nhiều phần khác của View, ví dụ header, body, footer, cũng như là nhóm theo vùng, rowsets (thành phần định nghĩa hiển thị các mục như thế nào khi mà số các dòng đạt đến giới hạn dòng và những vùng view trống)
  • RowLimit
  • Toolbar: định nghĩa vùn hiển thị phía trên List.
  • ViewFields: định nghĩa các Field hiển thị trong View
  • ParameterBindings: định nghĩa chuỗi cài đặt XSLT.
  • Query: định nghĩa Filer cho view

 

Form Elements

Chứa tham chiếu đến những Form được riêng biệt khi làm việc với những List Items khác nhau

<Forms>

  <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />

  <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />

  <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />

</Forms>

 

Mỗi Form element định nghĩa loại Form, có thể là DisplayForm, EditForm, NewForm cũng như là tên của File ASPX được sử dụng cho form đó và các Id của Webpart Zone mà Form sẽ hiển thị.

DefaultDescription Element

Định nghĩa mô tả mặc định hiển thị trong UI

<DefaultDescription>$Resources:core,camlidT13;</DefaultDescription>

Thuộc tính này sẽ bị ghi đè bởi huộc tính trong Onet.xml

List Templates

Người dùng có thể định nghĩa List Template mới bằng cách lưu lại môt template sẵn có. Sử dụng Save as Template trong Sharepoint để định lưu lại thành file .stp. Sau đó download về, up lên site mới để cài đặt.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: