jibx: как удалить список слов из автоматически сгенерированных коллекций 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, но вместо этого со словами market 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