gpt4 book ai didi

java - 向 JAXB xml 添加注释

转载 作者:行者123 更新时间:2023-11-30 04:27:14 27 4
gpt4 key购买 nike

我想向提供给 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 添加注释吗?

最佳答案

我假设您问的是如何让 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>

如果上面的插件没有完全满足您的要求(我认为它应该这样做,它看起来非常灵活),那么进行您自己的修改应该不会太困难(我之前已经这样做过添加复制构造函数生成的类)。

关于java - 向 JAXB xml 添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com