jibx: как да премахнете думата List от автоматично генерирани java колекции?

Използвам jibx за автоматично генериране на java, класифицирана въз основа на xsd схема. В тази схема имам колекция, наречена пазари:

<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, но вместо това с думата markets setMarkets() и getMarkets().

Знам, че мога да задам персонализиран файл в pom.xml:

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

Но не знам как да посоча поведението, от което се нуждая в custom1.xml.

Някаква идея по въпроса?


person marcocast    schedule 30.05.2013    source източник


Отговори (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

person Don Corley    schedule 30.05.2013