溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用帶批注的XDR架構(gòu)創(chuàng)建 XML 視圖

發(fā)布時間:2021-01-27 09:52:28 來源:億速云 閱讀:175 作者:小新 欄目:編程語言

這篇文章主要介紹如何使用帶批注的XDR架構(gòu)創(chuàng)建 XML 視圖,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

可以使用 XDR(簡化 xml-Data)架構(gòu)創(chuàng)建關(guān)系數(shù)據(jù)的 XML 視圖。然后可以使用 XPath 查詢來查詢這些視圖。這類似于使用 CREATE VIEW 語句創(chuàng)建視圖并指定對視圖的 SQL 查詢。
XML 架構(gòu)描述 XML 文檔的結(jié)構(gòu)以及對文檔中數(shù)據(jù)的不同約束。當(dāng)指定對該架構(gòu)的 XPath 查詢時,返回的 XML 文檔結(jié)構(gòu)由對其執(zhí)行 XPath 查詢的架構(gòu)確定。
在 Microsoft? SQL Server? 2000 中,使用簡化 XML-Data (XDR) 語言創(chuàng)建架構(gòu)。XDR 是一種靈活的語言,它克服了用來描述文檔結(jié)構(gòu)的文檔類型定義 (DTD) 的一些限制。與 DTD 不同,XDR 架構(gòu)使用與 XML 文檔相同的語法描述文檔結(jié)構(gòu)。 此外,在 DTD 中,所有數(shù)據(jù)內(nèi)容均為字符數(shù)據(jù)。XDR 語言架構(gòu)使您得以指定元素或特性的數(shù)據(jù)類型。
在 XDR 架構(gòu)中,<Schema> 元素包含整個架構(gòu)。作為 <Schema> 元素的屬性,可以描述定義架構(gòu)名稱的特性和架構(gòu)駐留的命名空間。在 XDR 語言中,所有元素聲明都必須包含在 <Schema> 元素中。
最小的 XDR 架構(gòu)如下:

<?xml version="1.0" ?> 
<Schema xmlns="urn:schemas-microsoft-com:xml-data"> 
   ... 
</Schema> 
<Schema> 元素是從 xml-data 命名空間 (urn:schemas-microsoft-com:xml-data) 派生出的。

說明  本文檔假設(shè)您熟悉 XML-Data 語言。
XDR 架構(gòu)的批注
可以在 XDR 架構(gòu)中使用對到數(shù)據(jù)庫的映射進(jìn)行描述的批注來查詢該數(shù)據(jù)庫,并以 XML 文檔格式返回結(jié)果。SQL Server 2000 引入了許多批注,可以使用這些批注將 XDR 架構(gòu)映射到數(shù)據(jù)庫中的表和列??梢詫?XDR 架構(gòu)所創(chuàng)建的 XML 視圖指定 XPath 查詢,以查詢數(shù)據(jù)庫并獲得 XML 格式的結(jié)果。
這是替代更復(fù)雜的 SQL 查詢編寫過程的方法,該方法使用 FOR XML EXPLICIT 模式將 XML 文檔結(jié)構(gòu)作為查詢的一部分加以描述。有關(guān)在 SELECT 查詢中使用 FOR XML EXPLICIT 模式的更多信息,請參見使用 EXPLICIT 模式。然而,為克服對映射架構(gòu)上的 XPath 查詢的大多數(shù)限制,請使用 FOR XML EXPLICIT 模式的 SQL 查詢返回 XML 文檔格式的結(jié)果。
如果擁有公用 XDR 架構(gòu)(如 Microsoft BizTalk? 架構(gòu)),可以執(zhí)行下列任一操作:  
· 編寫 FOR XML EXPLICIT 模式的查詢,以便生成的數(shù)據(jù)對公用 XDR 架構(gòu)有效;然而,編寫 FOR XML EXPLICIT 查詢可能比較麻煩。  
· 制作公用 XDR 架構(gòu)的專用復(fù)本。然后將批注添加到專用復(fù)本,從而生成映射架構(gòu)??梢灾付▽τ成浼軜?gòu)的 XPath 查詢。該查詢所生成的是公用架構(gòu)命名空間中的數(shù)據(jù)。與編寫復(fù)雜的 FOR XML EXPLICIT 查詢相比,創(chuàng)建帶批注的架構(gòu)并指定對該架構(gòu)的 XPath 查詢是一個簡單得多的過程。下圖說明了此過程。

說明  Microsoft BizTalk? 框架旨在為常用商業(yè)對象(如合同、訂單和約會)定義標(biāo)準(zhǔn) XML 格式。這些商業(yè)架構(gòu)復(fù)本可以在 http://biztalk.org/BizTalk/default.asp 中找到。
映射架構(gòu)
在關(guān)系數(shù)據(jù)庫的上下文中,將任意的 XDR 架構(gòu)映射到關(guān)系存儲是非常有用的。達(dá)到此目的的一個方法是對 XDR 架構(gòu)進(jìn)行批注。帶批注的 XDR 架構(gòu)稱為"映射架構(gòu)",它提供了關(guān)于如何將 XML 數(shù)據(jù)映射到關(guān)系存儲的信息。映射架構(gòu)實際上是關(guān)系數(shù)據(jù)的 XML 視圖??梢允褂眠@些映射檢索 XML 文檔格式的關(guān)系數(shù)據(jù)。
Microsoft SQL Server 2000 引入了許多批注,可以在 XDR 架構(gòu)中使用這些批注,將元素和特性映射到數(shù)據(jù)庫表和列??梢允褂?XPath(XML 路徑)指定對映射架構(gòu)(XML 視圖)的查詢。映射架構(gòu)描述了最后所得到的文檔結(jié)構(gòu)。
批注的命名空間
在 XDR 架構(gòu)中,使用下面的命名空間指定批注:urn:schemas-microsoft-com:xml-sql。
下例顯示指定命名空間的最簡單方法是在 <Schema> 標(biāo)記中指定它。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 前綴用于表示批注命名空間和使此命名空間中的批注區(qū)別于其它命名空間中的批注。
數(shù)據(jù)類型的命名空間
XDR 架構(gòu)使您得以指定元素或特性的數(shù)據(jù)類型。使用下面的命名空間指定數(shù)據(jù)類型: urn:schemas-microsoft-com:datatypes。
以下是帶有命名空間聲明的最小 XDR 架構(gòu):

<?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 前綴用于表示數(shù)據(jù)類型命名空間和使此命名空間中的批注區(qū)別于其它命名空間中的批注。
<Schema> 元素來源于 xml-data 命名空間:urn:schemas-microsoft-com:xml-data。  
XDR 架構(gòu)示例
下例顯示如何將批注添加到 XDR 架構(gòu)中。XDR 架構(gòu)由 <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>

現(xiàn)在,將批注添加到此 XDR 架構(gòu)中,使架構(gòu)的元素和特性映射到數(shù)據(jù)庫的表和列。 帶批注的 XDR 架構(gòu)如下:

<?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>

在此映射架構(gòu)中,使用 sql:relation 批注將 <Employee> 元素映射到 Employees 表。使用 sql:field 批注將特性 EmpID、Fname 和 Lname 映射到 Employees 表中的 EmployeeID、FirstName 和 LastName 列。
此帶批注的 XDR 架構(gòu)提供關(guān)系數(shù)據(jù)的 XML 視圖。使用 Xpath(XML 路徑)語言可以查詢該 XML 視圖。Xpath 查詢返回 XML 文檔形式的結(jié)果,而不是 SQL 查詢所返回的行集。
 
說明  在映射架構(gòu)中,指定的關(guān)系值(如表名和列名)區(qū)分大小寫。

以上是“如何使用帶批注的XDR架構(gòu)創(chuàng)建 XML 視圖”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI