2015-03-31 56 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

相關問題