2012-05-23 2 views
0

Я использую XStream для преобразования объектов Java в их XML-копии.Удалить/заменить/Комбинировать тег, сгенерированный из родительского списка Объект <> в XStream

Один такой объект содержит List<Window> windows переменную, которая, когда генерируемые дисплеи:

<windows> 
    <Window> 
        <WindowType>Monthly</WindowType> 
        <WindowBegin> 
        <Month>null</Month> 
        <Day>null</Day> 
        </WindowBegin> 
        <WindowEnd> 
        <Month>null</Month> 
        <Day>null</Day> 
        </WindowEnd> 
    </Window> 
    <Window> 
    .... 
    </Window> 
</windows> 

Я хотел бы знать, если это возможно, чтобы предотвратить список <> родительский тег из генерируется, например, так:

 <Window> 
         <WindowType>Monthly</WindowType> 
         <WindowBegin> 
         <Month>null</Month> 
         <Day>null</Day> 
         </WindowBegin> 
         <WindowEnd> 
         <Month>null</Month> 
         <Day>null</Day> 
         </WindowEnd> 
     </Window> 
     <Window> 
     .... 
     </Window> 

This question использует string.replace, но это оставит пробелы в xml, если этот список находится в пределах другого объекта, который необходимо очистить. Скорость для этого важна, поэтому я искал подход из самого XStream, если это возможно.

Благодаря

+0

Если вы удалите '' теги результат не будет deserializable через XStream , почему ты хочешь сделать это? –

+0

В соответствии с данной схемой. В схеме есть несколько окон (окон), поэтому я их храню как Список <> под его родительским объектом. Я надеялся, что для этого есть работа ... – JWiley

+0

Извините, если формулировка вопроса смутила вас @JimGarrison, я не был слишком уверен в решении, рад, что нашел этот сайт. Спасибо за попытку! – JWiley

ответ

0

Вполне возможно, что я не сделал слово на вопрос правильно, но решение я нашел (через XStream) точно не удалить тег, но использует неявное именование объединить родительский тег с его детьми , Благодаря @Blaise Doughan's отличным tutorials для этого.

Ex)

Список окон; будет сериализовать в:

<windows> 
    <Window> 
        <WindowType>Monthly</WindowType> 
        <WindowBegin> 
        <Month>null</Month> 
        <Day>null</Day> 
        </WindowBegin> 
        <WindowEnd> 
        <Month>null</Month> 
        <Day>null</Day> 
        </WindowEnd> 
    </Window> 
    <Window> 
    .... 
    </Window> 
</windows> 

Но добавив:

@XStreamImplicit(itemFieldName="Window") 
List<Window> windows; 

будет сериализовать в:

 <Window> 
         <WindowType>Monthly</WindowType> 
         <WindowBegin> 
         <Month>null</Month> 
         <Day>null</Day> 
         </WindowBegin> 
         <WindowEnd> 
         <Month>null</Month> 
         <Day>null</Day> 
         </WindowEnd> 
     </Window> 
     <Window> 
     .... 
     </Window>