更新時(shí)間:2021-07-22 來源:黑馬程序員 瀏覽量:
若想通過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í)例文檔位于同一目錄中。