首頁技術(shù)文章正文

怎樣引入XML Schema文檔?

更新時(shí)間:2021-07-22 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

若想通過XML Schema文件對(duì)某個(gè)XML文檔進(jìn)行約束,必須得將XML文檔與Schema文件進(jìn)行關(guān)聯(lián)。在XML文檔中引入Schema文件有兩種方式,具體如下:


1、 使用名稱空間引入XML Schema文檔

在使用名稱空間引入XML Schema文檔時(shí),需要通過屬性xsi:schemaLocation來聲明名稱空間的文檔,xsi:schemaLocation屬性是在標(biāo)準(zhǔn)名稱空間“http://www.w3.org/2001/XMLSchema-instance”中定義的,在該屬性中,包含了兩個(gè)URI,這兩個(gè)URI之間用空白符分隔。其中,第一個(gè)URI是名稱空間的名稱,第二個(gè)URI是文檔的位置,接下來,通過一個(gè)案例來演示如何使用名稱空間引入XML Schema文檔,如例1所示。

例1 book.xml

     <?xml version="1.0" encoding="UTF-8"?>
     <書架 xmlns="http://www.it315.org/xmlbook/schema" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.it315.org/xmlbook/schema
              http://www.it315.org/xmlbook.xsd">
         <書>
             <書名>JavaScript網(wǎng)頁開發(fā)</書名>
             <作者>張孝祥</作者>
             <售價(jià)>28.00元</售價(jià)>
         </書>
     </書架>

在例1中, schemaLocation屬性用于指定名稱空間所對(duì)應(yīng)的XML Schema文檔的位置,由于schemaLocation屬性是在另外一個(gè)公認(rèn)的標(biāo)準(zhǔn)名稱空間中定義的,因此,在使用schemaLocation屬性時(shí),必須要聲明該屬性所屬的命名空間。

需要注意的是,一個(gè) XML 實(shí)例文檔可能引用多個(gè)名稱空間,這時(shí),可以在schemaLocation屬性值中包含多對(duì)名稱空間與它們所對(duì)應(yīng)的XML Schema文檔的存儲(chǔ)位置,每一對(duì)名稱空間的設(shè)置信息之間采用空格分隔。接下來通過一個(gè)案例來演示在一個(gè)XML文檔中引入多個(gè)名稱空間名稱的情況,如例2所示。

例2 xmlbook.xml

     <?xml version="1.0" encoding="UTF-8"?>
     <書架 xmlns="http://www.it315.org/xmlbook/schema" 
           xmlns:demo="http://www.it315.org/demo/schema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.it315.org/xmlbook/schema
                             http://www.it315.org/xmlbook.xsd 
                               http://www.it315.org/demo/schema 
                                 http://www.it315.org/demo.xsd">
         <書>
             <書名>JavaScript網(wǎng)頁開發(fā)</書名>
             <作者>張孝祥</作者>
             <售價(jià) demo:幣種="人民幣">28.00元</售價(jià)>
         </書>
     </書架>


2、 不使用名稱空間引入XML Schema文檔

在XML文檔中引入XML Schema文檔,不僅可以通過xsi:schemaLocation屬性引入名稱空間的文檔,還可以通過xsi:noNamespaceSchemaLocation屬性直接指定,noNamespaceSchemaLocation屬性也是在標(biāo)準(zhǔn)名稱空間“http://www.w3.org/2001/XMLSchema-instance”中定義的,它用于定義指定文檔的位置。接下來,通過一個(gè)案例來演示noNamespaceSchemaLocation屬性在XML文檔中的使用,如例3所示。

例3 xmlbook.xml

     <?xml version="1.0" encoding="UTF-8"?>
     <書架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="xmlbook.xsd">
         <書>
             <書名>JavaScript網(wǎng)頁開發(fā)</書名>
             <作者>張孝祥</作者>
             <售價(jià)>28.00元</售價(jià)>
         </書>
     </書架>

在例3中,文檔xmlbook.xsd與引用它的實(shí)例文檔位于同一目錄中。






猜你喜歡:

什么是Schema約束?有什么優(yōu)勢(shì)?

如何編輯XML的文檔聲明?

XML的名稱空間指的是什么?聲明空間語法格式介紹

黑馬程序員Java高級(jí)軟件工程師培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!