了解 XML 架构(XML与OO)
三年前就已经开始学习和了解XML了,可到如今对这个XML也没有一个清醒的认识。以前听同事说,XML是一种可以定义其它语言的语言。所以也就一直那样认为了。而在实际的使用中,又会有什么必要自己去定义一种语言呢?
XML可以取代小的桌面数据库。这是最近的认识,它的强大功能在于数据关系的平台及语言无关性,它的标准可以让XML文件在任何支持XML的程序中使用。然而,又听到这样的问题:XML的效率太低了。而对于今天这样速度如此之快的PC机而言,可以在0.几秒钟之内就加载数十K甚至数百K的XML文件时,这似乎不是一个问题了。
然而同事的项目在PDA上却无法运作了,因为数K的文件在PDA上加载要花上几分钟。而且还是在C++下的。分析问题的主要原因就是对XML文件的DOM对象的全文加载,使得内存不够而无法完成任务。就算是XML文件本身不大,而分析它的结构,操作它的数据元素,这都是一件很头疼的事。于是大家又讨论到 .net下来处理XML文件,因为大家觉得在.net下对XML的支持可能会好一些。
我前几天才认真的看了一下关于XML的书,这几天也在网上找到了一些文章,但大多数的文章就是简单的XML结构。一个例子,看了数百次的例子,无非就是一个Person的实例,用什么Name,age等来定义一个数据结构。然而我也实在是无法明白它在我们的项目里会起一个什么样的角色。如果说因为XML文件的数据结构统一性,可让我的同事的项目使用我的XML文件,而XML文件的数据结构还是我们自己定义的一个私有结构。那这几乎没有什么意义的,因为我完全可以不用什么XML,而用其它任何的文件结构,只在我告诉这个结构,让同事来分析并处理它就行了。正如很早以前我们用的一个文本数据库文件一样。
我不甘心XML就是这样的一个结局,于是花了一些时间在XML的学习上。试图找到一种XML与我们所开发的项目之间的关系。而这里正是我所找到的一点可以让自己高兴一下的信息:http://www.microsoft.com/china/MSDN/library/data/xml/dnsqlpro04L.mspx
这里一篇讲解XML架构的文章,它说明了XML到底是一个什么结构,为什么它可以取代桌面数据,为什么它可以在不同的开发环境里共同使用。我觉得正真让我理解到它的本质的,还是这样的一张图:
图 2. OO 与 XML 概念
这正是我所想要的,而这样结构,就使得一方面我们以前所做的工作都是有效的,而且可以在以前的基础上,增加XML功能。
这里的架构类型,就是XML Schema,这一内容我和同事都讨论过,然而他们好像并不大喜欢XML Schema,我不知道为什么,然而如果在不知道XML Schema的时候,想用好XML真的是很困难的,这也就是为什么很多人在最开始使用XML的时候都会遇到我前面所提到的一些问题一样:不是觉得没有必要,就是觉得效率不高,或者觉得.net下的架构太复杂不想用。然而看到上面这张图以后,还会这样想吗?我在看到XML的这种结构时,真的太兴奋了。
相信读者可以在这个页面上找到和我一样想要的东西。
http://www.microsoft.com/china/MSDN/library/data/xml/dnsqlpro04L.mspx
转载于:https://www.cnblogs.com/WuCountry/archive/2006/03/02/340971.html
了解 XML 架构(XML与OO)相关推荐
- 创建带有关联的 XML 架构的 XML 文件 从 XML 文件创建 XML 架构
一.创建带有关联的XML 架构的XML 文件 1.创建新的 Windows 应用程序项目 首先需要在 Visual Basic 或 Visual C# 中创建新的 Windows 应用程序.创建一个新 ...
- AOP的XML架构、AOP的@AspectJ
AOP的XML架构 aop的xml架构例子:https://www.w3cschool.cn/wkspring/omps1mm6.html aop的@AspectJ例子:https://www.w3c ...
- XML 架构示例(微软文档)
https://msdn.microsoft.com/zh-cn/library/ms256129(v=vs.80).aspx 本主题包含万维网联合会 (W3C) 订单示例.第一个示例是订单的架构.第 ...
- XSL 转换:XSLT 可缓和 XML 架构的不相容性问题[网淘]
XSL 转换:XSLT 可缓和 XML 架构的不相容性问题 发布日期: 4/14/2004| 更新日期: 4/14/2004 Don Box,Aaron Skonnard,John Lam 本文假设您 ...
- XML 架构参考 (XSD)
XML 架构定义语言 (XSD) 使您可为 XML 文档定义结构和数据类型.XML 架构定义的元素.属性和数据类型符合"World Wide Web Consortium (W3C) XML ...
- MyEclipse Web开发教程:XML XML架构(一)
MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 1.MyEclipse中的XML编辑 本文档介绍了MyEclipse XML Editor中可用的一些 ...
- 理解 XML Schema:XML Schema 初步 (I)
理解 XML Schema:XML Schema 初步 (I) 内容: 购买订单模式文档 复合类型定义,元素和属性声明 出现约束 全局元素和属性 命名冲突 简单类型 列表类型(List Type) 联 ...
- XML 解析XML文档 XML约束
XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...
- perl XML创建XML文件
首先安装XML::Writer,XML::Parser等模块 1.执行/usr/bin/perl -MCPAN -e 'install "YAML"' 安装YAML模块 2.进入C ...
最新文章
- 俄罗斯、乌克兰程序员薪资大曝光!年薪普遍 15w+,女程序员比男程序员收入高?...
- python爬取多页_Python 爬虫 2 爬取多页网页
- IDEA插件推荐:中文字符自动转化!
- 翻译:MariaDB DATABASE()
- Cassandra 数据分区
- linux 环境变量_如何管理你的 Linux 环境变量 | Linux 中国
- 为何去银行存款的人越来越少,但是银行的存款却在增加?
- 什么是工业光纤收发器,工业收发器的作用是什么?
- 分布式事务实践 解决数据一致性 分布式系统
- 第一行代码 Android (郭霖 著)
- 浅谈linux中的grub
- repo 的几个使用理解
- 根据需求增加或删除表格行
- 【实习】【算法】百度面经之四
- 如何设置Idea字体颜色
- Microsoft Visual Studio 2013产品激活密钥
- mpeg 音频格式科普
- 计算机网络实验一 验证性实验
- Travel around the UK
- win10怎么把锁屏界面变成壁纸
热门文章
- 计网期末复习 - CRC循环冗余校验计算
- return 、break 和 continue的区别
- 不联网redhat5.5安装oracle11g,redhat5.5_64位上安装oracle11gR2_步骤+问题解决
- 大学生计算机基础清考试卷,天大《计算机网络基础》4月毕业清考作业考核试题模板.doc...
- python_魔法方法(二):算术运算
- uva 232 Crossword Answers
- DM8168 TILER(2)
- HttpUtility.UrlEncode 方法 (String) 对 URL 字符串进行编码 NET Framework 4.6 and 4.5
- iOS开发总结(A0)- Localization
- 从C语言开始的语言革命