我有一個非常簡單的問題,它與給定的XML Schema文件相關,您可以在我的文章下方看到。它來自我必須在一週內寫出的考試,以及關於架構格式良好的問題。不知道爲什麼XML Schema格式不正確?
錯誤已經標記爲黃色,我得到了關於命名空間的提示,但最終我不知道如何解決問題。我的第一個想法是,類型定義Type="Book"
需要像Type="urn:Book"
這樣的前綴,但我不確定。
我感謝您的任何建議,可以幫助我解決在這種情況下我缺乏知識。
我有一個非常簡單的問題,它與給定的XML Schema文件相關,您可以在我的文章下方看到。它來自我必須在一週內寫出的考試,以及關於架構格式良好的問題。不知道爲什麼XML Schema格式不正確?
錯誤已經標記爲黃色,我得到了關於命名空間的提示,但最終我不知道如何解決問題。我的第一個想法是,類型定義Type="Book"
需要像Type="urn:Book"
這樣的前綴,但我不確定。
我感謝您的任何建議,可以幫助我解決在這種情況下我缺乏知識。
那是因爲你指定Book
在使用targetNamespace
屬性urn:schemaS
命名空間。爲此,您需要爲urn:schemaS
定義一個名稱前綴,並使其符合type="nsPrefix:Book"
。
當你聲明一個名爲complexType
它的名字是一個合格一個,與目標命名空間相關聯 - 這樣你所宣稱是在urn:schema5
命名空間的類型Book
。
當您引用類型時,您必須指定其限定名稱,並且架構不會默認目標名稱空間,它將使用正常的XML名稱空間聲明。因爲您沒有,所以您正嘗試在默認名稱空間('')中使用類型Book
,該類型不存在。
你必須要麼添加一個命名空間聲明:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:schema5="urn:schema5"
targetNamespace="urn:schema5"
elementFormDefault="qualified">
,然後用它
<xs:element name="book" type="schema5:Book" maxOccurs="3"/>
或(我的首選)聲明,你的目標命名空間作爲默認的一個:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:schema5"
targetNamespace="urn:schema5"
elementFormDefault="qualified">
然後你不必做任何事情。
非常感謝你爲這個快速的答案,它幫助了我很多,我想我有一個關於命名空間的功能的想法,特別是在這種情況下:) – Matthias 2012-03-28 14:49:19
@Matthias然後接受這是正確的答案 – 2012-03-28 14:51:43