2011-01-20 68 views
1

是否可以使用Xerces解析带有内联模式的XML文件?我一直在尽一切努力使这项工作,但我不能成功。它始终引发下面的代码的最后一行的异常(模式是包含xml和内联架构字符串):解析内联XML模式(Xerces for Java)

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> 
+1

Xerces java or C++?另外,“内联模式”是什么意思?向我们展示一个例子。 – skaffman 2011-01-20 14:02:54

回答

0

您可能需要阅读作为常规XML文件中的文件,我们XPath表达式选择的模式元素,然后transfrom那转换为输入流。然后在该输入流上调用解析器。