【问题标题】:jibx : how to remove the word "List" from auto generated java collections?jibx:如何从自动生成的 java 集合中删除单词“List”?
【发布时间】:2013-05-30 10:21:02
【问题描述】:

我正在使用 jibx 自动生成基于 xsd 模式分类的 java。 在这个架构中,我有一个名为市场的集合:

<xs:element maxOccurs="unbounded" minOccurs="0"
name="markets" nillable="true" type="market"/>

当我运行 jibx(使用 maven 插件)时,结果是一个带有以下集合的 java 类:

 private List<Market> marketList = new ArrayList<Market>();
/** 
     * Get the list of 'markets' element items.
     * 
     * @return list
     */
    public List<Market> getMarketList() {
        return marketList;
    }

    /** 
     * Set the list of 'markets' element items.
     * 
     * @param list
     */
    public void setMarketList(List<Market> list) {
        marketList = list;
    }

我想要的是元素的名称以及没有单词 List 的 getter 和 setter,而是使用单词市场 setMarkets() 和 getMarkets()。

我知道我可以在 pom.xml 中指定一个自定义文件:

<customizations>
<customizations>src/main/config/custom1.xml</customizations>
</customizations>

但我不知道如何在 custom1.xml 中指定我需要的行为。

对此有任何想法吗?

【问题讨论】:

    标签: java list auto-generate jibx


    【解决方案1】:

    马可,
    你是对的,你需要使用扩展定制。替换方法名有两种方式:

    1. 使用 strip-suffixes 命令。
      您的自定义文件将如下所示
      <schema-set xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <name-converter strip-suffixes="List"/>
      </schema-set>>

    2. 编写名称转换器
      如果您希望您的方法是 getMarkets 而不是 getMarket。

    以下是您想要从 JiBX 网站执行的操作的文档:
    http://jibx.sourceforge.net/fromschema/codegen-extends.html

    JiBX 贡献者

    【讨论】:

      猜你喜欢
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 2016-08-25
      • 2016-08-28
      相关资源
      最近更新 更多