我正在尝试使用Jaxb2Marshaller对xsd验证xml。但我经常遇到异常
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ""
我尝试了在论坛中提出的方法,但仍然无法正常工作。当我尝试使用简单的xml和xsd时,它可以工作。但是当我的项目特定的xml和xsd无法工作时。
是xsd的问题还是我加载模式的方式错了?
<bean id="reader" class="com.test.batch.CustomizedStaxEventItemReader"
scope="step">
<property name="fragmentRootElementName" value="person" />
<property name="resource" value="file:#{jobParameters['INFILE']}" />
<property name="unmarshaller" ref="personUnmarshaller"/>
</bean>
<bean id="personUnmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.test.batch.Person</value>
</list>
</property>
<property name="schemas">
<list>
<value>classpath:xsd/person.xsd</value>
</list>
</property>
<property name="validationEventHandler" ref="eventHandler"/>
</bean>
请建议。
答案 0 :(得分:0)
这是我针对xsd验证我的xml所做的:
How to validate against schema in JAXB 2.0 without marshalling?