2016-11-09 8 views
0

私はSaxonのいくつかの明白な設定オプションを見逃しているかもしれませんが、ここに私の問題があります:定義済みの名前空間スキーマを持つsaxonを使用して名前空間ファイルを検証する方法はありますか?

名前空間宣言のないxmlファイルinput.xmlがあります。 xsdスキーマschema.xsdがmynamespace名前空間に関連付けられています。 そして、input.xmlファイルのルート要素がmynamespace名前空間にあるかのように、Saxonとschema.xsdファイルを使用してinput.xmlファイルを検証したいのですか? 別の言い方をすると、input.xmlのルート要素にデフォルトの名前空間宣言xmlns = "mynamespace"を追加したいと思いますが、Javaで開き、検証目的でのみ開きません。 可能ですか? Saxonには、xmlファイルが検証されるためのデフォルト名前空間を宣言することを許可する設定オプションがありますか?

答えて

0

はい、Saxonには名前空間のない文書を名前空間文書に変換する機能があります。これはXSLTと呼ばれています。

超効率を望む場合は、名前空間を変更するSAXフィルタを作成し、このフィルタをスキーマバリデータの前の処理パイプラインに配置することができます。

+0

ありがとう。あなたが推測したように、私は効率のためにXSLTを使いたくありませんでした。 SAXフィルターはオプションですが、試してみます。または、スキーマを匿名のものに切り替えるだけです。 –

+0

このような単純な変換の場合、Saxonの処理時間はXML解析のコストによって支配されます。 SAXを使用しても処理時間は大幅に短縮されませんが、ドキュメントが非常に大きい場合はメモリを節約する価値があります。 –

関連する問題