• ベストアンサー

JAXP + XMLSchema

JAXPにて、XMLSchemaを使用したXML解析をしたいのですが、その際、schemaLocationやnoNamespaceSchemaLocation等をXML文書に記述しないで検証を行う手段はないでしょうか? スキーマのファイルパス情報を、XMLファイルから分離したいのです。 もしもそんな手段がないような場合、「ないんじゃない?」的な意見も頂けるとうれしいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Java開発者じゃないし,正しく意味が取れているか自信がないが,(というかJAXPがなんだか知らない(ぉ) 「schemaLocationやnoNamespaceSchemaLocation等をXML文書に記述しないで検証を行う」方法を調べることにした。 で,見つけたのが以下のValidateTest.javaだ。 また、以下のサンプルはそのままでは動作しない。MyErrorHandlerクラスが載ってないからで,ここをコメントアウトするなり自分で実装するなりすれば動くだろう。 見れば解るだろう が,args[0]がスキーマのファイル名,args[1]が検証するファイル名だ。 http://www015.upp.so-net.ne.jp/heyjude/java_xml010.html

ggaogg
質問者

お礼

JAXPとは、Java API for XML Processor(XMLのJava用API)のことです。(ベンダー非依存の統合されたインターフェイス。) ありがとうございました。 Validatorクラスを使えばよかったんですね。 今までDocumentBuilder#setSchemaで試行錯誤してました。。 そういえば、himajin10万さんには、以前にもお世話になりましたね。 いつもありがとうございます。 Validatorと同じパッケージに、ValidatorHandlerというものがありました。 これを使えば、SAXParserやXMLReadrでパースする際にも、同時に妥当性検証が行えるようです。

関連するQ&A