SAXParseException: "s4s-elt-character: Non-whitespace characters are not allowed in schema elements"



我正在开发一个Java应用程序,它从xml文件中读取一些数据。试图执行,我得到这个错误:

org.xml.sax.SAXParseException;systemId:文件:/c:/myxmlfile.xml;lineNumber: 7;columnNumber: 55;s4s-elt-character:除了'xs:appinfo'和'xs:documentation'之外,模式元素中不允许使用非空白字符。看到'My Name Value'.

我的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>

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

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

Like that -

String xsdPath= "122015/1224/sample.xml";
String **xmlPath** = "122015/1224/sample.xsd";

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

当我试图验证转换文件时,我得到了相同的错误。

我得到错误的原因是因为我用XML文件而不是XSD来验证它。在我的项目中,它们都有相同的名字。因此,我错误地将XML文件的名称替换为XSD。

一旦我改变了,它就像预期的那样工作了。所以,如果上面的解决方案不起作用,看看这是否是你的问题。

我使用的是:

<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文件。

相关内容

最新更新