DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 使用帶批注的 XDR 架構創建 XML 視圖
使用帶批注的 XDR 架構創建 XML 視圖
編輯:XML詳解     

可以使用 XDR(簡化 XML-Data)架構創建關系數據的 XML 視圖。然後可以使用 XPath 查詢來查詢這些視圖。這類似於使用 CREATE VIEW 語句創建視圖並指定對視圖的 SQL 查詢。
XML 架構描述 XML 文檔的結構以及對文檔中數據的不同約束。當指定對該架構的 XPath 查詢時,返回的 XML 文檔結構由對其執行 XPath 查詢的架構確定。
在 Microsoft® SQL Server™ 2000 中,使用簡化 XML-Data (XDR) 語言創建架構。XDR 是一種靈活的語言,它克服了用來描述文檔結構的文檔類型定義 (DTD) 的一些限制。與 DTD 不同,XDR 架構使用與 XML 文檔相同的語法描述文檔結構。 此外,在 DTD 中,所有數據內容均為字符數據。XDR 語言架構使您得以指定元素或特性的數據類型。
在 XDR 架構中,<Schema> 元素包含整個架構。作為 <Schema> 元素的屬性,可以描述定義架構名稱的特性和架構駐留的命名空間。在 XDR 語言中,所有元素聲明都必須包含在 <Schema> 元素中。
最小的 XDR 架構如下:
<?XML version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:XML-data">
   ...
</Schema>
<Schema> 元素是從 xml-data 命名空間 (urn:schemas-microsoft-com:XML-data) 派生出的。
 
說明  本文檔假設您熟悉 XML-Data 語言。
XDR 架構的批注
可以在 XDR 架構中使用對到數據庫的映射進行描述的批注來查詢該數據庫,並以 XML 文檔格式返回結果。SQL Server 2000 引入了許多批注,可以使用這些批注將 XDR 架構映射到數據庫中的表和列。可以對 XDR 架構所創建的 XML 視圖指定 XPath 查詢,以查詢數據庫並獲得 XML 格式的結果。
這是替代更復雜的 SQL 查詢編寫過程的方法,該方法使用 FOR XML EXPLICIT 模式將 XML 文檔結構作為查詢的一部分加以描述。有關在 SELECT 查詢中使用 FOR XML EXPLICIT 模式的更多信息,請參見使用 EXPLICIT 模式。然而,為克服對映射架構上的 XPath 查詢的大多數限制,請使用 FOR XML EXPLICIT 模式的 SQL 查詢返回 XML 文檔格式的結果。
如果擁有公用 XDR 架構(如 Microsoft BizTalk™ 架構),可以執行下列任一操作: 
· 編寫 FOR XML EXPLICIT 模式的查詢,以便生成的數據對公用 XDR 架構有效;然而,編寫 FOR XML EXPLICIT 查詢可能比較麻煩。 
· 制作公用 XDR 架構的專用復本。然後將批注添加到專用復本,從而生成映射架構。可以指定對映射架構的 XPath 查詢。該查詢所生成的是公用架構命名空間中的數據。與編寫復雜的 FOR XML EXPLICIT 查詢相比,創建帶批注的架構並指定對該架構的 XPath 查詢是一個簡單得多的過程。下圖說明了此過程。 
 
 
說明  Microsoft BizTalk™ 框架旨在為常用商業對象(如合同、訂單和約會)定義標准 XML 格式。這些商業架構復本可以在 http://biztalk.org/BizTalk/default.ASP 中找到。
映射架構
在關系數據庫的上下文中,將任意的 XDR 架構映射到關系存儲是非常有用的。達到此目的的一個方法是對 XDR 架構進行批注。帶批注的 XDR 架構稱為"映射架構",它提供了關於如何將 XML 數據映射到關系存儲的信息。映射架構實際上是關系數據的 XML 視圖。可以使用這些映射檢索 XML 文檔格式的關系數據。

Microsoft SQL Server 2000 引入了許多批注,可以在 XDR 架構中使用這些批注,將元素和特性映射到數據庫表和列。可以使用 XPath(XML 路徑)指定對映射架構(XML 視圖)的查詢。映射架構描述了最後所得到的文檔結構。
批注的命名空間
在 XDR 架構中,使用下面的命名空間指定批注:urn:schemas-microsoft-com:XML-sql。
下例顯示指定命名空間的最簡單方法是在 <Schema> 標記中指定它。urn:schemas-microsoft-com:XML-sql 命名空間的批注必須是由命名空間限定的。
<?XML version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:XML-data"
        xmlns:sql="urn:schemas-microsoft-com:XML-sql" 
   ...........
</Schema>
所用的命名空間前綴是任意的。 在本文檔中,sql 前綴用於表示批注命名空間和使此命名空間中的批注區別於其它命名空間中的批注。
數據類型的命名空間
XDR 架構使您得以指定元素或特性的數據類型。使用下面的命名空間指定數據類型: urn:schemas-microsoft-com:datatypes。
以下是帶有命名空間聲明的最小 XDR 架構:
<?XML version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:XML-data"
        xmlns:sql="urn:schemas-microsoft-com:XML-sql"
        XMLns:dt="urn:schemas-microsoft-com:datatypes">
   ...
</Schema>
所用的命名空間前綴是任意的。 在本文檔中,dt 前綴用於表示數據類型命名空間和使此命名空間中的批注區別於其它命名空間中的批注。
<Schema> 元素來源於 xml-data 命名空間:urn:schemas-microsoft-com:XML-data。 
XDR 架構示例
下例顯示如何將批注添加到 XDR 架構中。XDR 架構由 <Employee> 元素和 EmpID、Fname 及 Lname 特性組成。
<?XML version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:XML-data"
        XMLns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:XML-sql">

<ElementType name="Employee" > 
<AttributeType name="EmpID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="EmpID" />
    <attribute type="FName" />

    <attribute type="LName" />
</ElementType>
</Schema>
現在,將批注添加到此 XDR 架構中,使架構的元素和特性映射到數據庫的表和列。 帶批注的 XDR 架構如下: 
<?XML version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:XML-data"
        XMLns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:XML-sql">

<ElementType name="Employee" sql:relation="Employees" >
    <AttributeType name="EmpID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="EmpID" sql:fIEld="EmployeeID" />
    <attribute type="FName" sql:fIEld="FirstName" /> 
<attribute type="LName" sql:fIEld="LastName" />
</ElementType>
</Schema>
在此映射架構中,使用 sql:relation 批注將 <Employee> 元素映射到 Employees 表。使用 sql:fIEld 批注將特性 EmpID、Fname 和 Lname 映射到 Employees 表中的 EmployeeID、FirstName 和 LastName 列。
此帶批注的 XDR 架構提供關系數據的 XML 視圖。使用 Xpath(XML 路徑)語言可以查詢該 XML 視圖。Xpath 查詢返回 XML 文檔形式的結果,而不是 SQL 查詢所返回的行集。
 
說明  在映射架構中,指定的關系值(如表名和列名)區分大小寫。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved