[英]Don't know why XML Schema isn't well-formed?
我有一個非常簡單的問題,它與給定的XML模式文件有關,您可以在我的文章下面看到。 這是我必須在一周內寫的一次考試,它是關於格式正確的問題。
該錯誤已被標記為黃色,並且我得到的提示是關於名稱空間的,但是最后我不知道如何解決該問題。 我的第一個想法是類型定義Type="Book"
需要像Type="urn:Book"
這樣的前綴,但是我不確定。
感謝您提供的任何建議,在這種情況下可以幫助我解決知識不足的問題。
這是因為您使用targetNamespace
屬性指定Book
在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">
然后您無需執行其他任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.