【Java】【XML】【JAXB】XMLスキーマチェック [2]

JAXBで、XMLデータを検証する

問題点

 ネットでは、クラスJAXBContext のメソッドcreateValidator()で、検証するサイトが多いが、
現在(2009/02/02)では、createValidator()が非推奨なっており、コンパイルすらできないので、
SAXを用いた別の方法を記す

解決方法

http://e-class.center.yuge.ac.jp/jdk_docs/ja/api/javax/xml/bind/Unmarshaller.html#setSchema%28javax.xml.validation.Schema%29
より抜粋
setSchema

このメソッドは、推奨されなくなった setValidating(boolean) API に置き換わるものです。 

サンプル

import javax.xml.XMLConstants;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;

            ・・・
            //Unmarsallerオブジェクトの取得
            Unmarshaller unmarshaller = context.createUnmarshaller();
            
            //スキーマ・ファクトリー作成
            SchemaFactory scf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            //スキーマを作成
            URL urlOfXmlSchma = this.getClass().getClassLoader().getResource(XML_SCHEMA_FILE_NAME);
            Schema schema = scf.newSchema(new File(urlOfXmlSchma.getPath()));
            //setSchema()に、スキーマを設定する 事で、XMLデータの正当性をチェックが可能になる
            unmarshaller.setSchema(schema);
            
            ・・・