XSD error: References from this schema to components in no namespace are not allowed

XSD error: References from this schema to components in no namespace are not allowed

以下是我的 XML 架构,后跟我要验证的 .xml 文件。

我继续收到错误

Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'type': References from this schema to components in no namespace are not allowed, since not indicated by an import statement.

我是这方面的新手,我对使用命名空间的理解是创建"global"类型,比如我在全局复用的复杂类型"OneType"

我的样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:tns="test/namespace" targetNamespace="test/namespace"
            elementFormDefault="qualified">
  <xsd:complexType name="OneType">
    <xsd:annotation>
       <xsd:documentation>One Test</xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="One"/>
    </xsd:choice>
  </xsd:complexType>

  <xsd:element name="testroot">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Test" type="OneType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<tns:testroot xmlns:tns="test/namespace">
  <tns:Test>
    <tns:One/>
  </tns:Test>
</tns:testroot>

替换

    <xsd:element name="Test" type="OneType"/>

    <xsd:element name="Test" type="tns:OneType"/>

然后你的 XSD 将没有错误,你的 XML 将对你的 XSD.

有效