Как обрабатывать этот XML в JAXB с аннотациями? - PullRequest
2 голосов
/ 19 ноября 2011

У меня есть 2 вопроса о том, как проанализировать конкретный аспект этого XML в JAXB с аннотациями.

Предполагается, что у меня определен класс FosterHome ...

1) Для "Тег "Дети", есть ли способ содержать свойства в классе "Дети" без необходимости создавать отдельный класс "Информация"?

2) Поскольку свойства тега "Информация" связаны с "ChildList "также, мне нужно иметь два класса Child, один без Info и один с Info?Или есть лучший способ?

Я пытаюсь найти лучший способ разобрать это.Пожалуйста, обратитесь к этой публикации для текущего набора классов: Как мне проанализировать этот XML в Java с JAXB?

<FosterHome>
<Orphanage>Happy Days Daycare</Orphanage>
<Location>Apple Street</Location>
<Families>
    <Family>
        <ParentID>Adams</ParentID>
        <ChildList>
            <ChildID>Child1</ChildID>
            <ChildID>Child2</ChildID>
        </ChildList>
    </Family>
    <Family>
        <ParentID>Adams</ParentID>
        <ChildList>
            <ChildID>Child3</ChildID>
            <ChildID>Child4</ChildID>
        </ChildList>
    </Family>
</Families>
<Children>
    <ChildID>Child1</ChildID>
    <Info>
       <Age>6</Age>
       <FavColor>Blue</FavColor>
    </Info>
    <ChildID>Child2</ChildID>
    <Info>
       <Age>8</Age>
       <FavColor>Red</FavColor>
    </Info>
    ...
</Children>
</FosterHome>

1 Ответ

1 голос
/ 19 ноября 2011

Чтобы ответить # 1, вы можете использовать MOXy .При этом вы можете использовать @XPath, чтобы получить age и favColor.Фактически, @Blaise Doughan - это человек, с которым вы, возможно, захотите поговорить (он ответил на ваш предыдущий пост), потому что он является руководителем команды для этого проекта MOXy ... довольно активным на этом форуме.Вот пример использования, похожего на ваш: С MOXy и XPath, возможно ли разархивировать список атрибутов?

Что касается # 2, ваша структура XML выглядит странно.Если вам разрешено изменять XML, я бы добавил возраст ребенка и его любимый цвет вместе с именем ребенка, примерно так: -

...
<Family>
    <ParentID>Adams</ParentID>
    <ChildList>
        <ChildID name="Child1" age="6" favColor="Blue"/>
        <ChildID name="Child2" age="8" favColor="Red"/>
    </ChildList>
</Family>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...