【问题标题】:Components from this namespace are not referenceable from schema document此命名空间中的组件不可从架构文档中引用
【发布时间】:2016-02-27 09:06:15
【问题描述】:

我知道有很多关于这个主题的问题,我已经查看了很多问题。但是从我阅读的所有内容来看,我的架构看起来都是正确的。但是当我尝试验证架构时仍然出现此错误:

org.xml.sax.SAXParseException: src-resolve.4.2: 解析组件“addr:coordinatesElement”时出错。检测到“addr:coordinatesElement”在命名空间“urn:ajga.address:1.0”中,但该命名空间中的组件无法从模式文档“file:///C:/Users/tmcginnis/Workspaces/MyEclipse%”中引用202015%20CI/nanda-schema-0.0.1-SNAPSHOT/src/main/resources/schema/AddressSchema_1_0.xsd'。如果这是不正确的命名空间,则可能需要更改“addr:coordinatesElement”的前缀。如果这是正确的命名空间,则应将适当的“导入”标签添加到“file:///C:/Users/tmcginnis/Workspaces/MyEclipse%202015%20CI/nanda-schema-0.0.1-SNAPSHOT/src /main/resources/schema/AddressSchema_1_0.xsd'。

这是架构:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="urn:ajga:address:1.0"
    xmlns:tns="urn:ajga.address:1.0"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.0">
    <xsd:element name="address">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="addressType" type="xsd:string" minOccurs="0"/>
                <xsd:element name="addressLine1" type="xsd:string"/>
                <xsd:element name="addressLine2" type="xsd:string" minOccurs="0"/>
                <xsd:element name="pobox" type="xsd:string" minOccurs="0"/>
                <xsd:element name="city" type="xsd:string"/>
                <xsd:element name="state" type="xsd:string"/>
                <xsd:element name="zip" type="xsd:string"/>
                <xsd:element name="countyCode" type="xsd:string" minOccurs="0"/>
                <xsd:element name="country" type="xsd:string"/>
                <xsd:element name="fips" type="xsd:string" minOccurs="0"/>
                <xsd:element name="coordinates" type="tns:coordinatesElement" minOccurs="0"/>
                <xsd:element name="description" type="xsd:string" minOccurs="0"/>
            </xsd:all>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="coordinatesElement">
        <xsd:all>
            <xsd:element name="longitude" type="xsd:string"/>
            <xsd:element name="lattitude" type="xsd:string"/>
        </xsd:all>
    </xsd:complexType>

</xsd:schema>

这是怎么回事?

【问题讨论】:

    标签: xml xsd namespaces xml-namespaces


    【解决方案1】:

    命名空间前缀tns 应设置为与targetNameSpace 属性相同的URI。 注意以下 URI 之间的区别:

    targetNamespace="urn:ajga:address:1.0" 
                             ^ 
          xmlns:tns="urn:ajga.address:1.0"
                             ^   
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 2015-12-30
      • 1970-01-01
      • 2021-12-10
      • 2019-04-17
      • 2013-05-11
      • 2011-03-30
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多