2015-09-01 39 views
1

在春天,我宣佈我的org.springframework.oxm.jaxb.Jaxb2Marshaller,但我也想聲明外部綁定文件:春Jaxb2Marshaller外部綁定文件

<bean id="myMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
    <property name="contextPath" value="com.path.to.pojos" /> 
    <property name="jaxbContextProperties"> 
     <util:map> 
      <entry key="eclipselink.oxm.metadata-source"> 
       <list> 
        <value>com/path/to/schema/binding.xjb</value> 
       </list> 
      </entry> 
     </util:map> 
    </property> 
    <property name="schema" value="classpath:com/path/to/schema/myService.xsd"/> 
</bean> 

我綁定文件看起來像這樣:

<jaxb:bindings version="1.0" 
    jaxb:version="2.0" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:annox="http://annox.dev.java.net" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    jaxb:extensionBindingPrefixes="xjc annox"> 

    <jaxb:bindings schemaLocation="myService.xsd" node="/xs:schema"> 

     <jaxb:globalBindings> 
      <xjc:javaType name="java.util.Date" xmlType="xs:date" 
      adapter="com.some.path.to.custom.adapter.DateAdapter" /> 
     </jaxb:globalBindings> 

     <!-- More Declarations --> 

     </jaxb:bindings> 
    </jaxb:bindings> 

此設置正常工作與XJC來從模式中的對象與外部綁定文件一起。但我無法獲得適合我的Spring配置的設置。

我得到以下錯誤:

org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 77; unexpected  element (uri:"http://java.sun.com/xml/ns/jaxb", local:"bindings"). Expected elements are <{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-schema>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-schema-type>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-schema-types>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-java-type-adapters>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-registries>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}xml-enums>,<{http://www.eclipse.org/eclipselink/xsds/persistence/oxm}java-types> 

我卡在這一點,我真的需要綁定文件比我的架構分開。我在網上找不到這個設置的任何例子,我會喜歡關於如何用JaxB2Marshaller正確配置一個外部綁定文件的例子。

如果我的問題不完整或需要更多信息,請讓我知道。

感謝,

JP

回答

1

據我所知,綁定文件僅在編譯時使用,從XML模式派生Java類。所以在運行時,在編組器上配置它是沒有意義的。 Spring和JAXB都不會考慮它。您可以使用綁定文件進行配置的所有內容都已在com.path.to.pojos.*類中。

+0

哦,當然。這樣做更有意義,一個燈泡剛剛熄滅。謝謝。 – levacjeep