我正在使用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,而是带有markets setMarkets()和getMarkets()的单词。

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

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


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

有什么想法吗?

最佳答案

马可
您是正确的,您需要使用扩展程序自定义。有两种方法可以替换方法名称:


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

写一个名字转换器
如果您希望您的方法是getMarkets而不是getMarket。


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

JiBX贡献者

关于java - jibx:如何从自动生成的Java集合中删除单词“List”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16833610/

10-12 01:42