参考我之前的 2 篇文章(第 1篇、第 2篇文章)。现在我陷入了另一个奇怪的问题(我是 JAXB 的菜鸟)。我使用 book.xsd 生成了 Java 类(其中包括 bookList 和 book 作为根元素)。一切正常。现在我正在为评论创建完全独立的 XSD 。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="reviews">
<xs:complexType>
<xs:sequence>
<xs:element name="review" type="reviewType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="self" type="xs:anyURI" />
</xs:complexType>
</xs:element>
<xs:complexType name="reviewType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="comments" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="rating" type="xs:integer" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="self" type="xs:anyURI" />
</xs:complexType>
现在,当我使用 JAXB 生成 java 类时,它开始给我以下错误,例如The element declaration with name 'reviews' and namespace '' cannot be resolved
.
任何想法 ?
更新我发现我正在使用一个 common.xsd,它具有跨多个 xsd 使用的基本信息。诸如此类的信息authorType
现在 common.xsd 也被我的 books.xsd 和 reviews.xsd 使用,这可能就是我收到此命名空间错误的原因。我怎样才能在这里避免这个错误?
Schema 已经在这里了。