2011-07-26 2 views
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> 

しかし、私はファイルを読み込み、ファクトリメソッドに渡している。

答えて

2

私は 'org.springframework.ws:spring-xml'

<property name="schema"> 
    <bean class="org.springframework.xml.transform.ResourceSource"> 
     <constructor-arg value="classpath:/schema.xsd"/> 
    </bean> 
</property> 
ResourceSourceクラスを使用して終了
関連する問題