我有一个需要编写 XSD 的 xml 片段
<root xmlns="http://xmlns.oracle.com/sca/1.0" xmlns:id="http://xmlns.oracle.com/id/1.0">
<service name="Book" id:number="465"/>
</root>
以下 XSD 在生成 JAXB 类时会出错。
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/sca/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="service">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name"/>
<xs:attribute ref="ns:number" xmlns:ns="http://xmlns.oracle.com/id/1.0"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
错误是
C:\Program Files\Java\jdk1.7.0_06\bin>xjc -p test C:\book.xsd 解析模式... [错误] src-resolve.4.2:解析组件“ns:number”时出错。检测到“ns:number”在命名空间“http://xmlns.oracle.com/id/1.0”中,但该命名空间中的组件无法从模式文档“file:/C:/book”中引用。xsd'。如果这是不正确的命名空间,则可能需要更改 'ns:number' 的前缀。如果这是正确的命名空间,则应将适当的“import”标签添加到“file:/C:/book.xsd”。file:/C:/book.xsd 的第 10 行