5

我正在开发一个从 xml 文件中读取一些数据的 Java 应用程序。尝试执行时,我收到此错误:

org.xml.sax.SAXParseException;systemId: 文件:/c:/myxmlfile.xml; 行号:7;列号:55;s4s-elt-character:除“xs:appinfo”和“xs:documentation”之外的模式元素中不允许使用非空白字符。看到“我的名字价值”。

我的 xml 文件以:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<gdl_set xmlns="http://www.mywebsite.com"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.mywebsite.com/myxsddefinition.xsd"
     shortname="Shortname">
<name>My Name Value</name>

你能帮我理解问题出在哪里吗?

4

4 回答 4

4

在我看来,解析器似乎出于某种原因试图将您的实例文档作为模式文件处理。

于 2013-01-02T18:13:19.410 回答
4

是的,我也遇到了同样的问题,然后我发现我将 XSD 文件作为 XML 文件的输入传递。

像那样 -

String xsdPath= "122015/1224/sample.xml";
String **xmlPath** = "122015/1224/sample.xsd";
于 2015-12-24T18:13:15.330 回答
1

我在尝试验证转换文件时遇到了同样的错误。

我收到错误的原因是因为我使用 XML 文件而不是 XSD 来验证它。在我的项目中,它们都具有相同的名称。所以我错误地给出了 XML 文件的名称来代替 XSD。

一旦我改变了它,它就会按预期工作。因此,如果上述解决方案不起作用,请查看您的情况是否存在问题。

于 2015-10-08T09:58:08.110 回答
0

我正在使用:

<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.2</version>

而不是 1.6 版本,在 2.2 版本中您可以指定:

<sources>
     <source>src/main/resources/masteraccount/</source>
</sources>

但我忘了添加

<xjcSourceExcludeFilters>
    <filter implementation="org.codehaus.mojo.jaxb2.shared.filters.pattern.PatternFileFilter">
        <patterns>
            <pattern>\.xml</pattern>
        </patterns>
    </filter>
</xjcSourceExcludeFilters>

禁用 .xml 文件的使用。在我的情况下,插件试图使用 .xml 文件,但正确的我的架构在 .xsd 文件中。

于 2016-07-27T14:23:14.163 回答