2010-06-09 2 views
2

Использование Castor, как вы сопоставляете класс Java java.util.ArrayList с элементом <ArrayList/> вместо <array-list/>, сохраняя при этом элементы, которые он содержит?Используя Castor, как вы сопоставляете Java-класс «java.util.ArrayList» с элементом «ArrayList», но также генерируете элементы для содержащихся в нем объектов?

Например, отображение класса

<class name="java.util.ArrayList"> 
    <map-to xml="ArrayList" /> 
</class> 

сопоставляет ArrayList объект в пустой элемент, опуская элементы для объектов, которые могут содержать ArrayList. Как вы принуждаете Castor к созданию элементов для содержащихся объектов?

ответ

3

Добавить атрибут autocomplete="true" для отображения:

<class name="java.util.ArrayList" auto-complete="true"> 
    <map-to xml="ArrayList" /> 
</class> 

См описание auto-complete в соответствии с разделом <class/> в Castor XML Mapping.

+0

auto-complete aye - хороший. –

+0

Интересно, почему не 'auto-complete = true' по умолчанию? –

1
+0

Это не тот случай, что и тот, о котором идет речь. Контейнер в этом случае не является атрибутом в определяемом пользователем классом, а является автономным 'java.util.ArrayList', который содержит экземпляры объектов пользовательского класса. Используя сопоставление, которое я дал в моем вопросе, Castor переименовывает элемент, который он генерирует для 'java.util.ArrayList', от' 'до' ', но он не генерирует элементы для объектов в массиве. Он генерирует пустой элемент ''. –

+0

Это ближе к тому, что мне нужно, но опять же, в моем случае, 'ArrayList' является корневым контейнером и должен явно отображаться как корневой элемент в выходе. Я попытаюсь изменить это сопоставление, чтобы получить то, что мне нужно. –

 Смежные вопросы

  • Нет связанных вопросов^_^