此次做的项目当中涉及到了使用ajax来构造省市联动表,我做了一个小型的, 但是我在服务器端构造xml是采用拼接字符串的形式, 今天又系统地学习了一下在服务器端将JAVA对象序列化为XML的技术。
1、 开发人员可以选择XML API来实现, 每一个JAVABean对象独立地提供表达自身数据的XML格式, 实现起来较简单, 不需要额外的配置或者更复杂的框架支持与构建过程, 但这种方式难以推广到大量的类 ,因为每个类都要实现各自的方法, 工作量很大。
2、 使用JDOM来实现, 从设计的角度上讲,自行序列化存在数据模型与视图紧密耦合的问题,模型中每一个对象只能用一种途径序列化。序列化的XML格式也是一成不变的, 这意味着AJAX请求需要丰富个性化的数据(某种数据视图)时,对象序列化的XML不能满足或者可以满足但包含有冗余的数据, 因此造成客户端代码要从XML文档汇总找到需要的信息更加爱困难,而且也会增加网络宽带消耗和解析文档时间。 这种耦合还有一种后果,就是XML文档的格式不能脱离JAVA类独立变化,一旦XML文档格式发生改变,可能会影响到多个JAVA类,需要对这些类的修改和重新编译。
3、 XML数据绑定
依靠XML数据绑定框架,实现JAVA对象与XML之间的数据映射是一种常见的方法。为什么选择这样的框架来提供支持呢? 这取决于AJAX是用XML文档的目的: 不关注XML文档的结构而关注其中包含的数据, 而这正是XML数据绑定框架建立的初衷,XML绑定有两个方向:
a、 JAVA对象映射到XML文档
b、 XML文档产生JAVA对象。
响应AJAX的请求发生在服务器端,这里通常从业务逻辑层或持久层获取数据,而数据以JAVA对象(即值对象Value Object)的方式来组织,这就需要从JAVA对象映射到XML文档的技术。XML数据绑定框架有JAXB、 JBind、 JiBX、 Castor等
————————————Castor学习中————————————
4、 页面模版生成XML
使用页面模版也可以生成XML文档,现在流行的Web应用框架模型MVC中,使用动态页面(JSP)、标签(tag)、模版(如Velocity)等技术实现视图View与控制器Control、数据模型Model的分离解耦。这些技术在AJAX框架下同样也会有帮助
动态页面(JSP)和标签(Tag)可以方便地依据需求编写页面模版,而页面模版在装载了数据之后,就可以轻松地生成满足样式要求的XML文档
5、 非XML格式响应 JSON
分享到:
相关推荐
在IT行业中,序列化和反序列化是两个关键的概念,特别...开发者应选择合适的序列化库,或者自行实现序列化机制,以满足项目需求,并注意处理兼容性问题。通过熟练掌握这些技巧,可以提高Delphi应用的稳定性和用户体验。
在MFC中,对象自行负责序列化,这虽然保护了类的内部结构,但也增加了编写和维护序列化代码的复杂性,且容易引入错误。 .NET的序列化机制提供了一种相对独立和标准化的方式,降低了开发和维护的成本。它允许类的...
这个XMLHelper类集成了XML的解析、序列化和反序列化功能,方便开发者快速便捷地操作XML数据。 1. **XML解析**:XMLHelper可能包含解析XML文档的方法,如LoadXml方法,它能够读取XML文件或字符串,并将其转换为Xml...
具体请看http://blog.csdn.net/luq885/archive/2007/05/10/1603330.aspx<br>其中JSonConvert.cs中xml-2-json.xsl文件的路径是固定的,请自行修改
它的序列化机制比XML或JSON更紧凑,从而在网络传输或存储时节省带宽和空间。同时,protobuf支持多种编程语言,包括Java、C++、Python等,使得跨语言的数据交换变得简单。 在Java中使用protobuf,首先需要在项目中...
总结来说,这个压缩包“xml_lib.rar”包含了一些关于如何在C++中使用Boost库进行XML操作的资料,这可能会涉及到XML的读取、写入,以及如何将C++对象序列化和反序列化到XML文档。如果你正在寻找一种有效且灵活的方式...
8. **序列化**:最后,如果需要将修改后的XML结构写回文件,需要实现反向过程,即从数据结构生成XML格式的文本,通常需要自定义函数来生成XML标签和属性。 在"xmlparse.c"这个文件中,我们可以期待看到上述功能的...
XmlSerializer 是 .NET 中的一种 XML 序列化技术,用于将 .NET 对象转换为 XML 文件。 XML 文件的样式 XML 文件可以使用 CSS 样式列表来美化显示。例如,使用 CSS 样式列表可以为 XML 文件中的每一个元素设置...
此外,对于更复杂的XML文档,可能需要使用到`XPath`或`JAXB`等工具来操作和序列化对象。 总结来说,通过Java编程,我们可以方便地创建XML文件,实现数据的结构化存储和交换。这个过程涉及XML的语法理解、DOM解析...
这种模型特别适合处理小到中等规模的XML文件,尤其是用于配置文件、简单的数据存储和对象序列化。 2. **核心类** TinyXML包含了一些基本的类,如`TiXmlDocument`、`TiXmlElement`、`TiXmlAttribute`、`TiXmlText`...
它允许将带注释的 XML Boxer 输出快速反序列化为 Java 对象。 先决条件是 maven(用于解析)和构建和运行的(用于输出)。 修改属性文件并指定 CCG 解析器、Boxer 和模型的路径后,您可以从程序中调用 C&C 工具并...
标题中的“用zeus实现xml与java之间的转换”是指利用Zeus工具将XML文档的数据转换成Java对象,或者将Java对象的数据序列化成XML文档。这个过程是XML Binding(XML绑定)的一部分,使得XML和Java代码能够交互,方便...
根据提供的压缩包子文件的文件名称列表 "1_xml",我们可以推测这个压缩包里至少包含一个XML文件,很可能以序列的方式(例如,可能还有2_xml, 3_xml等)记录了多个自行车的标注信息。这种格式对于批量处理和分析大量...
5. **XML序列化**: - 当需要将数据保存回XML时,需要将节点转换为字符串。可以使用`DOMImplementation`的`createDocumentType`和`createElement`方法创建XML文档结构,然后使用`DOMDocument::saveXML`或`DOM...
在Android应用中,我们通常使用Gson或Jackson库来序列化和反序列化JSON数据,将网络返回的JSON字符串转换为Java对象,便于进一步处理。 XML(eXtensible Markup Language)则是另一种常用的数据交换格式,尤其适用...
对于特殊字符,XML中有一些预定义的转义序列,例如`代表小于号,`>`代表大于号,`&`代表和号,`"`代表双引号,`'`代表单引号。在需要保留原始数据不被解析时,可以使用CDATA(Character Data)区域,如`<![CDATA[ ...
1. 序列化:Thrift提供了一种高效的二进制序列化方式,将对象转换成字节流,便于在网络间传输。序列化过程包括解析数据结构,生成字节表示,并将这些字节写入到输出流。 2. 反序列化:接收端接收到字节流后,通过...
1.C#的protobuf序列化和反序列化,基于注解,无需工具 2.Java的protobuf序列化和反序列化,基于注解,无需工具 3.消息体的广播 Server: 本Java项目是用Maven构造的。如果对Maven不熟悉的,可以参照pom.xml配置...
微软的WF框架提供了XML序列化和反序列化的支持,我们可以通过WorkflowSerializer类将工作流实例转换为XML字符串,反之亦然。当从外部接收XML时,我们需要解析XML,然后使用WorkflowDeserializer类将XML恢复为工作流...
Protocol Buffers是一种高效的数据序列化协议,用于结构化数据的序列化,类似于XML或JSON,但更小、更快、更简单。它允许开发者定义数据结构,然后生成能够在各种数据流中存储、读取和检查这些数据的代码。 **核心...