在XML中将XML反序列化为自定义类?

时间:2009-11-26 15:48:48

标签: xml flex serialization httpservice

HttpService的帮助下,是否可以将XML文件反序列化为Flex中的类,而无需手动检查XML和/或创建类?

编辑:解释得更多更好。

我们有一个XML文件,其中包含:

<Project>
 <Name>NameGoesHere</Name>
 <Number>15</Number>
</Project>

在Flex中,我们希望将其序列化为Project类:

package com.examplepackage
{
    import mx.collections.ArrayCollection;

    [XmlClass]
    public class Project
    {
        public var Name:String;
        public var Number:int;  

        public function Project()
        {
        }
    }
}

XML加载了HTTPService。

3 个答案:

答案 0 :(得分:1)

为了让Flex自动为您的对象序列化和反序列化,需要某种WSDL或RPC协议。因此,您需要指定一个WSDL来用于反序列化XML数据,使用AMF或其他协议,或者使用您的httpservice直接返回的任何MIME类型。

编辑:您可以设置自己的一组类来处理xml对象的反序列化。 AMF服务的工作方式是首先将返回的对象反序列化为mx.utils.ObjecProxy个实例,然后将type的{​​{1}}属性与现有的ObjectProxy进行匹配,并初始化动态RemoteClass属性中值PropertyList中的类。您可以通过查看属性和值的类型和子节点的XML根来设置自己创建ObjectProxy的类集,然后基于Object代理实例化AS类。你不可能不得不编写一些代码来直接处理XML。

答案 1 :(得分:0)

您可能想要尝试xml序列化库,例如FlexXB(http://code.google.com/p/flexxb)。它使用注释来自动化(反)序列化过程,使您可以很好地控制生成的xml。

答案 2 :(得分:0)