2
XSDファイルをアプリケーションコンテキストXMLファイルのSchemaインスタンスとしてロードしようとしています。私たちはJavaコードでビルドしていますが、私はそれを注入したいと思います。Spring XMLでスキーマをロードする
ここでは、ユーザークラスがどのように見えるかを明確にしています。
class XmlBuilder {
...
Schema schema; // set by spring
public String createXml(Object param1) {
// create xml
Validator validator = schema.newValidator();
try {
validator.validate(documentSS);
} catch (SAXException e) {
// log and convert to a proper exception
}
return xml;
}
}
スキーマはアプリのクラスパスにありますが、スキーマを読み込んでスキーマオブジェクトを作成するだけで問題があります。私はこれを遠くに得ることができる
<bean id="schemaFactory" class="javax.xml.validation.SchemaFactory" factory-method="newInstance">
<constructor-arg value="http://www.w3.org/2001/XMLSchema"/>
</bean>
<bean id="xmlBuilder" class="XmlBuilder">
<property name="schema">
<bean factory-bean="schemaFactory" factory-method="newSchema">
<!-- missing bit -->
</bean>
</property>
</bean>
しかし、私はファイルを読み込み、ファクトリメソッドに渡している。