上下文:我使用Eclipse生成xsd文件。我的所有.xsd文件都在一个位置 - 项目/目录。
问题:当xsd没有引用/导入具有不同目标命名空间的其他xsd时,一切正常。但是,当下面的xsd(使用namespace="http://www.example.org/experimento"
)从另一个命名空间(lugar_experimento.xsd
)导入另一个xsd namespace="http://www.example.org/lugar_experimento"
时,我收到以下错误:
Cannot resolve the name xxx to a(n) 'type definition' component.
这是我的XSD(experimento.xsd
):
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/experimento"
xmlns:tns="http://www.example.org/experimento"
xmlns:lugar="http://www.example.org/lugar_experimento"
elementFormDefault="qualified">
<xsd:import schemaLocation="lugar_experimento.xsd" namespace="http://www.example.org/lugar_experimento"/>
<xsd:complexType name="experimento">
<xsd:sequence>
<xsd:element name="identificador" type="xsd:string" />
<xsd:element name="lugar" type="lugar:tipoRefGeografica"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
我想使用以下XSD:'to'我希望使用以下XSD(保存在lugar_experimento.xsd
中):
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/lugar"
xmlns:tns="http://www.example.org/lugar"
elementFormDefault="qualified">
<xsd:complexType name="tipoRefGeografica">
<xsd:choice>
<xsd:element name="W3Cgeo" type="tns:tipoW3Cgeo" />
<xsd:element name="kml" type="tns:tipoKml" />
</xsd:choice>
</xsd:complexType>
<xsd:simpleType name="tipoKml">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d\.{0,1}\d*\s\d+\.{0,1}\d*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="tipoW3Cgeo">
<xsd:sequence>
<xsd:element name="lat" type="xsd:decimal" />
<xsd:element name="long" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
我做错了什么?你有什么简单的例子吗?
答案 0 :(得分:3)
在experimento.xsd
中,更改此内容:
xmlns:lugar="http://www.example.org/lugar_experimento"
为:
xmlns:lugar="http://www.example.org/lugar"
问题是名称空间URI ^^。
之间的区别