gpt4 book ai didi

java - 如何根据 xml 元素的值通过 java 中的 xsd 验证 xml

转载 作者:行者123 更新时间:2023-12-01 04:42:29 26 4
gpt4 key购买 nike

我正在使用 Jaxb2Marshaller 并使用 ValidationEventHandler-handleEvent()。我正在将过程中发生的任何错误消息存储在 map 中。我正在使用 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>

最佳答案

也许是这样的?:

<bean id="contractUnmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>Class1</value>
<value>Class2</value>
</list>
</property>
<property name="schemas">
<list>
<value>Class1Schema</value>
<value>Class2Schema</value>
</list>
</property>
</bean>

关于java - 如何根据 xml 元素的值通过 java 中的 xsd 验证 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16296465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com