2013-03-22 130 views
1

我想爲提供給JAXB的XML文件添加註釋。將註釋添加到JAXB xml

我們有一個要求,我將創建具有相同屬性名稱和數據類型的對象,但它們將具有不同的JSON密鑰。

JSON中的鍵名將根據提供的註釋而有所不同。這些註釋是GSON註釋,例如:@SerializedName(「您想要的JSON的鍵名」)。

我試圖從我張貼here

,但不能真正得到任何解決的問題得到一些投入。

任何人有任何建議?

我將添加一些XML模式來解釋。

<xsd:complexType name="RouteType"> 
<xsd:attribute name="Pos" type="xsd:int" use="optional" default="1"/> 
<xsd:attribute name="Dir" type="DirType" use="required"/> 
</xsd:complexType> 

現在在上面的模式中,我可以添加一個註釋到屬性Pos嗎?

+0

當你說爲JAXB XML添加註釋時,你的意思是什麼? – 2013-03-22 13:07:08

+1

我想我會稍微修改一下這個問題,這樣很容易理解。 – Sam 2013-03-22 13:10:28

回答

2

我假設你問如何讓JAXB編譯器自動註釋生成的類。有一個JAXB插件添加註釋:http://confluence.highsource.org/display/J2B/Annotate+Plugin

你可以把它掛到一個Maven的generate-sources階段建立像這樣:

<build> 
    <!-- snip --> 
    <plugins> 
     <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.8.2</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <schemaIncludes> 
          <include>path/to/your/schema.xsd</include> 
         </schemaIncludes> 
         <bindingIncludes> 
          <include>path/to/your/custom-bindings.xjb</include> <!-- if you choose to use a custom bindings file instead of inline annotations in the xsd --> 
         </bindingIncludes> 
         <forceRegenerate>true</forceRegenerate> 
         <extension>true</extension> 
         <episode>false</episode> 
         <args> 
          <arg>-Xannotate</arg> 
         </args> 
         <plugins> 
          <plugin> 
           <groupId>org.jvnet.jaxb2_commons</groupId> 
           <artifactId>jaxb2-basics-annotate</artifactId> 
           <version>0.6.4</version> 
          </plugin> 
         </plugins> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

如果你想要什麼上面的插件不(我認爲它應該,它看起來非常靈活),它應該不是太難滾動自己的修改(我已經做了這個之前添加複製構造函數到生成的類)。