最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
关于XML:以对象模型为中心
时间:2022-07-02 11:46:28 编辑:袖梨 来源:一聚教程网
许多应用开发都需要与 XML 打交道,一种常见的做法是从 XML 入手:不是分析现有的 XML 格式,就是设计一个新的 XML 格式,然后使用 DOM、SAX 之类的解析器把 XML 转化为应用对象,这种做法当然可行,然而我认为存在以下几个缺点:
如果不是使用已定义的 XML 格式,就需要设计一个 XML schema ,这通常是一个繁琐的工作。
如果不想使用 Castor 之类的框架,解析 XML 也是一件麻烦的事情。
如果概念不清,由 XML 格式分析得到的对象模型会和 XML 有关联,这就使对象模型依赖于 XML 这个实现细节,变得难以重用。
对大部分应用来说,XML 应该是一种实现细节,应当尽可能地推迟考虑它,我们关注的中心应该是应用的对象模型。从对象模型出发,对于已定义好的 XML 格式,可以利用 Castor 等框架来相互转化;对于尚未定义的 XML 格式,可以利用 Xstream 之类的序列化框架来转化,这时你几乎不需要关心 XML 的格式,解析的工作当然也没有了。事实上,在这种情况下,是否需要使用 XML 格式就是一个问题,为什么不利用 Java 本身的序列化框架(Serialable) 来序列化为二进制格式呢?应该更简单。
如果不是使用已定义的 XML 格式,就需要设计一个 XML schema ,这通常是一个繁琐的工作。
如果不想使用 Castor 之类的框架,解析 XML 也是一件麻烦的事情。
如果概念不清,由 XML 格式分析得到的对象模型会和 XML 有关联,这就使对象模型依赖于 XML 这个实现细节,变得难以重用。
对大部分应用来说,XML 应该是一种实现细节,应当尽可能地推迟考虑它,我们关注的中心应该是应用的对象模型。从对象模型出发,对于已定义好的 XML 格式,可以利用 Castor 等框架来相互转化;对于尚未定义的 XML 格式,可以利用 Xstream 之类的序列化框架来转化,这时你几乎不需要关心 XML 的格式,解析的工作当然也没有了。事实上,在这种情况下,是否需要使用 XML 格式就是一个问题,为什么不利用 Java 本身的序列化框架(Serialable) 来序列化为二进制格式呢?应该更简单。