@ResponseBodyおよび@XmlElementマーシャリング(JAXB)を使用して多数のXMLを返すシステムがあります。XMLスキーマを使用してJAXBによってマーシャリングされた@ResponseBodyを検証する方法
作成されたスキーマを使用して結果のXMLを検証する最良の方法は何ですか?
まだ要素を実行してそれらをテストする必要がありますが、XMLスキーマの検証によって2番目の部分が本当に簡単になります。
@ResponseBodyおよび@XmlElementマーシャリング(JAXB)を使用して多数のXMLを返すシステムがあります。XMLスキーマを使用してJAXBによってマーシャリングされた@ResponseBodyを検証する方法
作成されたスキーマを使用して結果のXMLを検証する最良の方法は何ですか?
まだ要素を実行してそれらをテストする必要がありますが、XMLスキーマの検証によって2番目の部分が本当に簡単になります。
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文字列:何もしないSAX」たDefaultHandlerに整列化することにより
Reader reader = new StringReader(xml);
StreamSource source = new StreamSource(reader);
unmarshaller.unmarshal(source, YourJAXBClass.class);
検証JAXBオブジェクト:
marshaller.marshal(obj, new DefaultHandler());
ええと、これをSpringとどのように '@ ResponseBody'に結びつけるのですか? – mamruoc
Springはこれを簡単にします(Jaxb2Marshalle r):
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="schema" value="file:/some/path/schema.xsd"/>
</bean>
私はSpringにはかなり新しくなっていますが、テストする必要がある '@ ResponseBody'をどのxsdに指定するのですか(コントローラーは複合モデルに基づいてマーシャリングされたXMLを返します) – mamruoc
Oki、 = "marshaller" class = "test.project.util.ClasspathScanningJaxb2Marshaller">
http://www.ibm.com/developerworks/web/library/wa-restful/(リスト4)を参照してください。 httpマーシャリングコンバーターをセットアップし、それに上記のマーシャラーを与えます。 –
ソリューションを見つけましたか? –
残念ながら、 – mamruoc