我正在使用 Jaxb2Marshaller 并使用 ValidationEventHandler-handleEvent()。我将过程中发生的任何错误消息存储在地图中。我正在使用 xsd 来验证强制/可选标签。所以问题取决于xml中标签的值,一些其他标签值可能成为强制性/可选的。
现在对于所有情况,我都制作了单独的 xsd 来尝试检查各自的必填字段。但是我如何告诉 jaxb 来验证应该使用哪个 xsd 的 xml?
<bean id="jaxb2MarshallerForABC" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath">
<util:constant
static-field="com.abc.pqr.util.ABCMessageConstants.PACKAGE_DATAMODEL_AB_IN_OB" />
</property>
<property name="schemas">
<value>
classpath:xsd/tc/oa/in/InboundMessageIss.xsd <!--Depending on xml value validate with different xsd/since there could be diffent tag as mandatory/optional -->
</value>
</property>
<property name="unmarshallerListener" ref="unMarshallingListenerForOA"/>
<property name="validationEventHandler" ref="validationEventHandler" />
</bean>