2012-03-02 23 views
2

使用XML解析器時,我看到很多使用xsi:schemaLocation屬性的XML文件,但未聲明xsi名稱空間。是假定在XML中已知的xsi:前綴嗎?

這是一個錯誤,還是有一個規範說明它被認爲是解析前已知的?清除「xsi」的命名空間規範不會產生任何結果,但也許答案在另一個文檔中。

回答

4

可以假定沒有名稱空間[XML命名空間除外]是已知的。

如果一個文檔包含一個xsi前綴,還應該有一個關聯的名稱空間(通常爲xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance")。

如果未聲明名稱空間,則XML文件無效。

+0

謝謝,我知道證明不存在的東西很難,但是你有一些參考文檔暗指嗎?我可能會對一些軟件編輯器發生激烈的爭論,我可能需要展示一些東西。 – nraynaud 2012-03-02 12:23:14

+0

@nraynaud - 缺席證明 - [specs](http://www.w3.org/TR/REC-xml-names/#ns-decl)沒有提到這是一個已知的命名空間。 – Oded 2012-03-02 12:26:47

+0

正確的答案,除了有一個預定義的名稱空間總是存在的,前綴「xml」已知。編輯答案以添加此騎手。 – 2012-03-02 14:21:39

相關問題