1

Xercesを使用してインラインスキーマでXMLファイルを解析することは可能ですか?私はこの仕事をするためにできる限りのことを試みてきましたが、成功することができませんでした。以下のコードの最後の行で常に例外がスローされます(スキーマはxmlとインラインスキーマを含む文字列です)。

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>
4

2 に答える 2

0

ファイルを通常の xml ファイルとして読み込み、xpath 式を使用してスキーマ要素を選択し、それから入力ストリームに変換することができます。次に、その入力ストリームでパーサーを呼び出します。

于 2011-01-20T18:41:15.850 に答える