当我尝试使用xjc运行XSD文件时出现此错误:
解析组件' xlin:href'时出错。有人发现了这一点 ' xlin:HREF'在名称空间' http://www.w3.org'中,但来自的组件 此命名空间不能从架构文档"文件中引用 地址"也许是' xlin:href'的前缀需要改变。如果 这是正确的命名空间,然后是适当的导入'标签应该 被添加到"文件地址"
以下是代码:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:element name="property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="giataId" use="optional"/>
<xs:attribute type="xs:dateTime" name="lastUpdate" use="optional"/>
<xs:attribute ref="xlin:href" xmlns:xlin="http://www.w3.org/1999/xlink"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:date" name="lastUpdate"/>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:0)
要访问另一个命名空间中的任何XSD组件,您必须导入该命名空间。
在您的情况下,添加
<xs:import namespace="http://www.w3.org/1999/xlink"
schemaLocation="http://www.w3.org/1999/xlink.xsd"/>
到您的XSD以访问XLink组件。
以下是从XSD引用XLink组件(如href
:
通常在xlink
元素上声明xs:schema
名称空间前缀:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xlink="http://www.w3.org/1999/xlink"
导入XLink XSD:
<xs:import namespace="http://www.w3.org/1999/xlink"
schemaLocation="http://www.w3.org/1999/xlink.xsd"/>
引用所需的XLink组件:
<xs:attribute ref="xlink:href" xmlns:xlin="http://www.w3.org/1999/xlink"/>