【发布时间】:2016-04-09 13:32:09
【问题描述】:
在阅读 XML 时,我应该尝试对对象建模(在 OO 意义上)还是将内容保留为 XML 实体?
在使用面向对象语言阅读“强类型”(基于模式)XML 内容时,我试图在两种方法之间做出选择:
首先,我将创建一个类型化的类层次结构来表示该模式的每个可能的元素类型及其类型化属性和所有内容。然后,当我解析一个文档时,我会递归地扫描每个节点并创建一个适当的类实例,复制所有的嵌套、属性、子项(作为集合)等。然后,我可以在我的应用程序中随意操作这个对象树,当保存回来时,我必须调用对象的
toXml()方法,或者以某种方式将对象“转换”回 XML 格式。使用一些现成的 XML 库(任何高级语言都有一个或多个),我会解析文档并将其结构保存在内存中。那将意味着一棵节点树。然后我会直接操作它们,并可以使用库方法将所有内容保存回文件。此外,如果我的应用程序需要数据的表示,我可以创建其属性和方法实际上是指底层 Node 结构的代理对象。
问题是:通常是如何完成的?是否有一种“正确”的方式在 XML 和 OO 之间进行映射并返回? OO 是否应该使用 XML 的众所周知的方式,或者 OO 应该使用 XML 的方式?
【问题讨论】:
标签: xml oop language-agnostic