JoriDor,
Я пересмотрел свои шаги и обнаружил, что истинной причиной является второе различие между тем, что я создал, и тем, что я получил из приведенного ниже примера.
Мой экземпляр ArrayCollectionпеременная была создана функциями получения / установки.Когда я изменил его на общедоступную переменную, как пример кода, это сработало!Это очень разочаровывает, так как теперь я должен рассмотреть возможность изменения своих классов VO.
Чтобы не сдаваться слишком легко, я представляю, что классы mx.rpc.xml используют отражение ( descriptionType () ), поэтому, может быть, я увижу, что можно сделать, изменив обработку тегов по сравнению с .
... 30 минут спустя и поблагодарив Adobe за открытый Flex - Ifound XMLDecoder.getExistingValue () использует descriptionType и отвечает за получение / установщик (он же «accessor»).Мой конструктор создал пустой ArrayCollection.Что ж, XMLDecoder.setValue не знает, заменить ли этот AC или добавить к нему элементы.Это делает последнее.Перемещал инстанцирование AC до первого вызова геттера (конечно, проверяя на ноль), и теперь он работает!
Надеюсь, это исправит это для вас.Основные части XML-декодера, которые нужно посетить, если вы склонны: setValue (), getExistingValue (), а затем проблема с решением, которую выполняет promoValueToArray ().
Начало отведенной части ...
Я тоже нахожу такое же поведение.Я не знаю, будет ли это считаться ответом, но у меня есть код, который работает, взятый с этого сайта .Основное различие, которое я могу различить между моим кодом / данными и тем, что публикуется на этом сайте, заключается в способе объявления моей коллекции / массива в схеме.
В моей схеме я объявил коллекцию втаким образом:
<complexType name="Things">
<sequence>
<element name="thing" type="ids:Thing" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="ParentThing">
<complexContent>
<sequence>
<element name="things" type="Things"/>
</sequence>
<complexContent>
</complexType>
В коде с сайта, на который есть ссылки, коллекция объявляется более прямо:
<xs:complexType name="example">
<xs:sequence>
...
<xs:element name="items">
<xs:complexType>
<xs:sequence>
<xs:element name="item" type="item" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
(В случае, если вас скинули, "example"тип и элемент в примере кода. Это отбросило меня, когда я исследовал, как работает пример кода (я предпочитаю соглашение только с прописными буквами типов / классов.))
Во всяком случае,пример кода работает, и разница в схеме, казалось, была единственной разницей, которая имела значение.Глядя на экземпляры XML (его и мой), разницы не было.Каждая коллекция имеет элемент с множественным именем.То есть имеет экземпляров, в то время как имеет экземпляров.
Мне было бы интересно узнать, как выглядит ваша схема и / или экземпляр XML и изменяет ли она его для соответствияПриведенный выше пример (если в вашем случае возможны изменения схемы) устраняет проблему.