Я хочу сохранить конфигурацию меню в xml. Итак, я придумал это:
Похоже на механизм папок и файлов. Действие - это простое действие, а ActionGroup состоит как из action, так и actionGroups, но необязательно.
Некоторые правила:
1- Я должен повиноваться, что порядок должен быть соблюден. Вот почему я не могу использовать разные списки для действий и групп действий.
2- Это не правило, но я не хочу ограничивать глубину меню.
Вот классы:
Интерфейс ActionItem:
public interface ActionItem {
}
Конкретный класс Действие:
public class Action implements ActionItem {
private String id;
}
Конкретный класс ActionGroup:
public class ActionGroup implements ActionItem {
private String id;
private List<ActionItem> actions;
}
А Меню класса:
public class Menu {
private List<ActionItem> actions;
}
Но я не могу создать простой xml с этим в XStream. Должен быть способ сказать, что Action - это ActionItem для XStream, но я не смог его найти. На самом деле у меня нет ограничений на инструменты. Если это можно сделать с помощью JAXB, я могу его использовать.
Мне просто нужна простая структура, подобная этой:
<Menu>
<ActionGroup>
<Action/>
<Action/>
<ActionGroup>
<Action/>
<Action/>
<ActionGroup>
<Action/>
<Action/>
</ActionGroup>
</ActionGroup>
<Action/>
<ActionGroup>
<Action/>
<Action/>
</ActionGroup>
</ActionGroup>
</Menu>
Вот что я получаю с XStream:
<MenuConf>
<actions>
<ActionGroup>
<id>Planning</id>
<actions>
<Action>
<id>/Planning/A</id>
</Action>
<Action>
<id>/Planning/B</id>
</Action>
<Action>
<id>/Planning/C</id>
</Action>
</actions>
</ActionGroup>
</actions>
</MenuConf>
Есть ли способ избавиться от тегов "action"?