2011-01-31 88 views
24

我對XML/Schema文件的知識有限。如何使用XML文檔中本地計算機上的Schema

所以這應該是一個相當簡單的問題。 如何爲schemaLocation指定本地文件?

<?xml version="1.0"?> 

<note 
    xmlns="http://www.w3schools.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.w3schools.com note.xsd"> 
    ... 
</note> 

這是來自www.w3.org的示例,指定模式的部分位於schemaLocation中。 我試着看文檔,但是如何指定一個本地文件?

喜歡的東西

xsi:schemaLocation="../relativepath/schemafolder not.xsd"> 

感謝

回答

24

schemaLocation必須包含由空格分隔的兩個值:命名空間URI(這並不改變)和架構URL。

所以你的情況

xsi:schemaLocation="http://www.w3schools.com ../relativepath/schemafolder/note.xsd"> 

不要被看似有效的HTTP URL命名空間URI所迷惑,那只是小的瘋狂XML發明人之一。

xsi:schemaLocation="namespace1 schemaurl1 namespace2 schemaurl2 ..." 

(我也建議你使用相對路徑小心::)

其實,你可以在一個schemaLocation指定幾個命名空間的架構,而他們是當你移動你的文件非常有用,但仍然使用相同的代碼(或工具)驗證它,當您在應用程序中部署驗證代碼時,「工作目錄」可能不是您所期望的。這並不是說您不應該使用相對路徑,只是爲了意識到這一點,當你看到一個關於未找到的模式的怪異例外)。

+0

所以鏈接不必是有效的?我仍然需要在那裏放些東西?即使它根本不用? – grobartn 2011-01-31 22:48:39

相關問題