2015-03-31 72 views
1

上下文:我正在使用Eclipse生成xsd文件。我所有的.xsd文件都在一个位置 - Project /目录。导入名称空间 - 无法将名称解析为(n)'类型定义'组件

问题:当xsd没有引用/导入具有不同目标名称空间的其他xsd时,一切正常。然而,当以下(含namespace="http://www.example.org/experimento")以下XSD导入另一个XSD lugar_experimento.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> 

我在做什么错了?你有没有简单的例子?

回答

3

experimento.xsd,更改此:

xmlns:lugar="http://www.example.org/lugar_experimento" 

到:

xmlns:lugar="http://www.example.org/lugar" 

的问题是命名空间的URI ^^之间的差异。

+0

此外,在'xsd:import'中,'namespace =“http://www.example.org/lugar_experimento”'应该改为'namespace =“http://www.example.org/lugar” '。您导入的名称空间必须与您正在导入的文件中定义的名称空间相匹配。 – 2015-03-31 16:13:44

相关问题