【问题标题】:Parsing Inline XML Schema (Xerces for Java)解析内联 XML 模式(Xerces for Java)
【发布时间】:2011-01-20 14:00:52
【问题描述】:

是否可以使用 Xerces 解析具有内联模式的 XML 文件?我一直在尽我所能来完成这项工作,但我无法成功。它总是在下面代码的最后一行抛出异常(schema 是一个包含 xml 和内联 schema 的字符串):

private XSModel getXSModel(String schema) throws XNIException, IOException{
    XMLGrammarPreparser preparser = new XMLGrammarPreparser();  
    preparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA, null);  
    XSGrammar g = (XSGrammar)preparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA,new XMLInputSource(null, null, null,new ByteArrayInputStream(schema.getBytes()), "ISO-8859-1"));  
    return g.toXSModel(); 
}

错误如下:

[错误] :1:9586: s4s-elt-character: 'xs:appinfo' 和 'xs:documentation' 以外的架构元素中不允许使用非空白字符...

对于属于 XML 的每一行都会显示该消息(超出架构标记)


更新:这是一个例子:

<root>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
        <element name="age" type="integer"/>
    </schema>
    <!--HERE THE XML BEGINS-->
    <age>35</age>
</root>

【问题讨论】:

  • Xerces java 还是 c++?另外,“内联架构”是什么意思?给我们举个例子。

标签: java xsd inline xerces


【解决方案1】:
【解决方案2】:

您可能希望将文件作为常规 xml 文件读取,使用 xpath 表达式选择模式元素,然后将其转换为输入流。然后在该输入流上调用解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多