Использование Flex ValueObjects с вложенными массивами в XML

#xml #apache-flex #service

#xml #apache-flex #Обслуживание

Вопрос:

Я использовал инструмент Flash Builder «подключиться к данным / сервису» для подключения к URL-адресу XML, который выглядит примерно так:

 <house>
 <name>Home</home>
 <address_line1>My street</address_line1>
 <zip>12345</zip>
 <photos>
   <photo>/url/to/photo</photo>
   <photo>/url/to/another/photo</photo>
 </photos>
</house>
  

Это создало сервис и пакет под названием ValueObjects. В этом пакете ValueObjects есть класс под названием «House», как я и ожидал, и я разработал, как получить к ним доступ и их свойствам.

Чего я не могу понять, так это как работать с классом под названием «Photos». У каждого дома есть свойство «photos» типа Photos, которое, как я ожидаю, будет массивом, но я ни за что на свете не могу понять, как его повторить или посмотреть, что в нем хранится.

Кто-нибудь может помочь, пожалуйста? Надеюсь, я не просто туплю, но я потратил целую вечность, пытаясь понять это для себя…

Комментарии:

1. Возможно, вы хотите опубликовать сгенерированный код.

2. Я надеялся, что это будет что-то очевидное (оказалось, что так и было), и не хотел все портить кучей кода. Я отсортировал это в конце и теперь жду 8 часов, прежде чем смогу ответить на свой собственный вопрос. Короче говоря, в XML-файле в URL-адресе была указана только одна фотография в первом доме, поэтому Flex предположил, что это НЕ массив. Doh.

Ответ №1:

Я полагаю, что Photos сам должен содержать ArrayCollection экземпляры Photo внутри. Будет лучше, если вы разместите здесь список Photos , чтобы более точно ориентироваться.

Ответ №2:

Doh. Кажется, у меня вошло в привычку отвечать на свои собственные вопросы.

Вот почему это не сработало — в моем XML с первым элементом House была связана только одна фотография. Flash Builder, должно быть, решил, что на самом деле это не массив, просто просматривает первый элемент в XML.

Я добавил еще одну фотографию в дом, удалил папки service и ValueObject и воссоздал их на основе обновленного источника XML.

Мой код теперь работает так, как ожидалось:

Дом.Фото.photo.getItemAt(0)

Вы живете и учитесь. Кажется, o