2012-03-27 40 views
0

我無法在Web上找到任何示例解釋如何在解組階段對現有XSD模式驗證XML。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); 
} 

但是,在這個過程中,我可以告訴JIBX解組對象前,驗證對模式的XML? JiBX有可能嗎?我看到使用JaxB的例子,但沒有使用JibX。

回答

0

JiBX不支持從頭開始全面驗證。

你必須創建一個支持驗證(如由Sun作爲他們的JDK的一部分提供的一個),然後調用setProperty(XMLInputFactory.IS_VALIDATING,Boolean.TRUE)和實施javax.xml.stream.XMLInputFactory用createXMLStreamReader()調用創建一個實際的解析器。

一旦您的輸入有驗證解析器,您可以使用org.jibx.runtime.impl.StAXReaderWrapper構造函數將其作爲IXMLReader實例包裝,然後可以在org.jibx.runtime.impl上設置它.UnmarshallingContext解組上下文實例。

奇怪的是,我知道,你可以在這裏找到一個讓它更容易的請求JIBX-381