Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XML反序列化到Flex中的自定义类?_Xml_Apache Flex_Serialization_Httpservice - Fatal编程技术网

将XML反序列化到Flex中的自定义类?

将XML反序列化到Flex中的自定义类?,xml,apache-flex,serialization,httpservice,Xml,Apache Flex,Serialization,Httpservice,在Flex中是否可以将XML文件反序列化为类,而无需手动检查XML和/或在HttpService的帮助下创建类 编辑:解释得更多更好 我们有一个XML文件,其中包含: <Project> <Name>NameGoesHere</Name> <Number>15</Number> </Project> XML加载了HTTPService。为了让Flex自动序列化和反序列化对象,需要某种WSDL或RPC协议。因此,您要么需

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

编辑:解释得更多更好

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

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

XML加载了HTTPService。

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


编辑:您可以设置自己的类集来处理xml对象的反序列化。AMF服务的工作方式是首先将返回的对象反序列化为实例,然后将
ObjectProxy
type
属性与现有的
RemoteClass
匹配,并将
PropertyList
中类的属性初始化为动态
对象
属性中的值。您可以通过查看类型的XML根以及属性和值的子节点来设置创建ObjectProxy的自己的类集,然后基于对象代理实例化AS类。但是,您将无法避免编写一些代码来直接处理XML。

您可能需要尝试使用XML序列化库,例如FlexXB()。它使用注释自动执行(反)序列化过程,使您能够很好地控制生成的xml。

也可以尝试将xml反序列化为对象:


嗯,我明白了。编写我们自己的类集来处理序列化/反序列化实际上不是一个选项。因此,我认为我们没有其他选择,只能手动操作。谢谢您可以理解我所说的需要某种定义将值从XML对象映射到AS类的意思。例如,在不查看模式的情况下,
节点被读取为字符串值,而
项目
类的
Number
属性被键入为
int
。您需要某种模式或其他信息来处理映射,这就是Flex支持AMF和基于WSDL的web服务的原因。
package com.examplepackage
{
    import mx.collections.ArrayCollection;

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

        public function Project()
        {
        }
    }
}