XML XSD错误:org.xml.sax.SAXParseException:s4s-elt-schema-ns:元素'Config'的名称空间必须来自模式名称空间

时间:2014-01-24 09:00:52

标签: xml xml-parsing xsd

我有一个非常简单的XML&解析期间抛出以下错误的XSD。

  

org.xml.sax.SAXParseException:s4s-elt-schema-ns:名称空间   元素'Config'必须来自模式命名空间,   'http://www.w3.org/2001/XMLSchema'。

XML转到此处:

   <?xml version="1.0" encoding="ISO-8859-1" ?> 
 <Config>

        <Test Script="final.sh" />

    </Config>

XSD到这里:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Config">
        <xs:complexType>

        <xs:all> 
            <xs:element name="Test" minOccurs="0">
                <xs:complexType>
                    <xs:attribute name="Script" type="xs:string" use="required" />          

                </xs:complexType>
            </xs:element>

        </xs:all>

        </xs:complexType>
    </xs:element>

</xs:schema>

3 个答案:

答案 0 :(得分:1)

我在Oxygen中尝试过,文档是有效的。

这是我使用的两个文件:

xsd文件:

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation='schema.xsd'>

    <Test Script="final.sh" />

</Config>

xml文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">   
    <xs:element name="Config">
        <xs:complexType>

            <xs:all> 
                <xs:element name="Test" minOccurs="0">
                    <xs:complexType>
                        <xs:attribute name="Script" type="xs:string" use="required" />          

                    </xs:complexType>
                </xs:element>

            </xs:all>

        </xs:complexType>
    </xs:element>
</xs:schema>

确保正确地将xsd架构附加到xml文件,然后它应该没问题。

答案 1 :(得分:0)

提供的实例文档对提供的模式有效,因此这里有一些奇怪的事情。

错误消息似乎表明您实际验证的架构是

targetNamespace="http://www.w3.org/2001/XMLSchema"

这可能是一件相当奇怪的事情。

我担心你在回答你的问题时会得到很多非常糟糕的建议。

答案 2 :(得分:-1)

缺少root命名空间,将其添加到其中