我有一个非常简单的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>
答案 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命名空间,将其添加到其中