2012-03-27 14 views
0

アンマーシャリングフェーズで既存のXSDスキーマに対してXMLを検証する方法を説明しているWeb上のサンプルを見つけることができません。JiBX POJOにアンマーシャリングするときのXSDスキーマに対する検証

IBindingFactory bfact = BindingDirectory 
    .getFactory(aClass.class); 
IUnmarshallingContext uctx = bfact.createUnmarshallingContext(); 
    return (aClass) uctx.unmarshalDocument(new FileInputStream(
      fname), null); 
} catch (FileNotFoundException e) { 
    throw new IOException(e); 
    } catch (JiBXException e) { 
    throw new IOException(e); 
} 

しかし、この過程で私がオブジェクトに非整列化する前に、スキーマに対してXMLを検証するためのJiBXを伝えることができる場所??:

現在、私は正常に動作している必要がありJiBXでも可能ですか?私はJaxBを使用した例を見ていますが、JibXでは例を見ていません。

答えて

0

JiBXは完全検証を最初からサポートしていません。

検証をサポートする実装(JDKの一部としてSunによって提供されるものなど)を使用してjavax.xml.stream.XMLInputFactoryを作成し、次にsetProperty(XMLInputFactory.IS_VALIDATING、Boolean.TRUE)をコールし、 createXMLStreamReader()を呼び出して実際のパーサーを作成します。

入力の検証パーサを取得したら、org.jibx.runtime.impl.StAXReaderWrapperコンストラクタを使用してこれをIXMLReaderインスタンスとしてラップすることができます。これはorg.jibx.runtime.implで設定できます.UnarshallingContextはコンテキストインスタンスを非整列化します。

奇妙なことに、私は知られています。こちらを簡単にするためのリクエストが見つかりましたJIBX-381

関連する問題