2011-01-20 67 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那轉換爲輸入流。然後在該輸入流上調用解析器。