0
設置@ XmlType.namespace我使用JAXB來處理多個XML文檔。如何通過JAXB外部綁定自定義文件
我的問題是,我不能改變相關的XSD的,我不希望修改生成的類。
我想要做的是使用JAXB綁定定製文件來達到預期的效果。
所有我需要做的是進行使用@XmlType.namespace
註釋的等價物。
是否有可能通過設置在JAXB註釋@XmlType.namespace
綁定定製文件?
設置@ XmlType.namespace我使用JAXB來處理多個XML文檔。如何通過JAXB外部綁定自定義文件
我的問題是,我不能改變相關的XSD的,我不希望修改生成的類。
我想要做的是使用JAXB綁定定製文件來達到預期的效果。
所有我需要做的是進行使用@XmlType.namespace
註釋的等價物。
是否有可能通過設置在JAXB註釋@XmlType.namespace
綁定定製文件?
免責聲明:我是jaxb2-annotate-plugin
的作者。
您可以使用jaxb2-annotate-plugin
向架構派生類中添加任意註釋。 @XmlType
將是這樣的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:annox="http://annox.dev.java.net"
jaxb:extensionBindingPrefixes="xjc annox"
version="2.1">
<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
<jaxb:bindings node="xs:complexType[@name='someType']">
<annox:annotateClass>@javax.xml.bind.annotation.XmlType(namespace="urn:test")</annox:annotateClass>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
如果你已經有一個@XmlType
那裏,定製的註釋將「合併」了進去。
lexicore,感謝您花時間看一下。它聽起來像jaxb2插件將解決我的問題,但我無法通過這個錯誤[錯誤]不受支持的綁定命名空間「http://annox.dev.java.net」。我正在使用Eclipse LUNA生成JAXB文件。我究竟做錯了什麼? – Hector
您是否添加並激活了'jaxb2-annotate-plugin'?請參閱[文檔](https://github.com/highsource/jaxb2-annotate-plugin#using-jaxb2-annotate-plugin-with-maven)。 – lexicore
我已將jaxb2罐子添加到我的構建/運行路徑。但是我沒有使用MAVEN。我正在使用Eclipse LUNA中的Generate選項(例如右鍵單擊XSD並選擇Generate> JAXB Classes ...),如何從Eclipse內部生成JAXB類時如何激活jaxb2? – Hector