- PR -

XML Schemaによる検証

1
投稿者投稿内容
ボブ
常連さん
会議室デビュー日: 2007/10/03
投稿数: 44
投稿日時: 2008-01-06 19:47
JDK1.4.2_12
パーサ xerces

流通ビジネスメッセージ標準ver1.0のサンプルXMLと標準スキーマを使用してValidateをしようとしています。
しかし、どうやら2つのXSDを指定しなければいけないことが実験より分かりました。

この場合、JDK1.5を使えば過去に上がったスレッドのようにすれば良いことがわかりました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41299&forum=9&2

しかし、JDK1.4を使用している場合、どのように2つのXSDを指定すれば良いか困っています。
ちなみに以下の方法で試してみましたが駄目でした。

String factoryImpl = System.getProperty("javax.xml.parsers.SAXParserFactory");
SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setNamespaceAware(true);
factory.setValidating(true); factory.setFeature("http://xml.org/sax/features/validation", true); factory.setFeature("http://apache.org/xml/features/validation/schema",true); factory.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true); factory.setFeature("http://apache.org/xml/features/continue-after-fatal-error", true);

SAXParser parser = factory.newSAXParser(); parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage","http://www.w3.org/2001/XMLSchema"); parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", XSDFilePath); /* XSDFilePathはFileオブジェクトの配列*/

parser.parse(new FileInputStream(path), new DefaultHandler() { /*pathは検証対象のフルパス*/
 public void error(SAXParseException e) throws SAXException {
throw e;
 }
});
ボブ
常連さん
会議室デビュー日: 2007/10/03
投稿数: 44
投稿日時: 2008-01-09 18:53
xalan-j_2_7_1 をクラスパスに追加することで、
Java1.5と同じソースで実現することができました。
1

スキルアップ/キャリアアップ(JOB@IT)