我有一个系统使用@ResponseBody和@XmlElement编组(JAXB)返回了很多XML。如何使用XML模式来验证由JAXB编组的@ResponseBody
使用创建的Schema验证生成的XML的最佳方法是什么?
我仍然需要遍历元素并测试它们,但是使用XML Schema验证会使第二部分非常容易。对于JAXB编组与解组
我有一个系统使用@ResponseBody和@XmlElement编组(JAXB)返回了很多XML。如何使用XML模式来验证由JAXB编组的@ResponseBody
使用创建的Schema验证生成的XML的最佳方法是什么?
我仍然需要遍历元素并测试它们,但是使用XML Schema验证会使第二部分非常容易。对于JAXB编组与解组
设置XSD架构:
SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
InputStream schemaStream = openMySchemaFileStream();
Schema schema = schemaFactory.newSchema(new StreamSource(schemaStream));
marshaller.setSchema(schema);
unmarshaller.setSchema(schema);
验证XML字符串,来解组是:
Reader reader = new StringReader(xml);
StreamSource source = new StreamSource(reader);
unmarshaller.unmarshal(source, YourJAXBClass.class);
通过编组到SAX”的DefaultHandler
验证JAXB对象,不做任何事:
marshaller.marshal(obj, new DefaultHandler());
呃,我该如何将此连接到Spring以及'@ ResponseBody'中的结果? – mamruoc 2012-03-22 21:47:45
春天让你很容易(假设你使用Jaxb2Marshalle r):
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="schema" value="file:/some/path/schema.xsd"/>
</bean>
我对Spring很新,但是如何指定哪个xsd到哪个'@ ResponseBody'这是我需要测试的(控制器返回一个基于组合模型的编组XML) – mamruoc 2012-03-22 21:49:09
Oki,我已经添加了'
查看http://www.ibm.com/developerworks/web/library/wa-restful/(清单4)建立一个http编组转换器并给它上面的编组器。 – 2012-03-23 11:12:41
您是否找到解决方案? – 2015-06-05 08:53:03
不幸的是没有。 – mamruoc 2015-06-06 21:40:49