XML,它有什么用?

好吧,这有点令人尴尬,但我不确定 XML的用途是什么.这是正确的 XML意味着什么,而不是什么是XML.我现在使用XML多年来主要用于配置文件,但这似乎是一个微不足道的用途.我也使用它作为数据文件的互操作格式,但它对我来说看起来并不是特别有效.我对Web开发的经验很少,所以我认为它可能对通信有用,但我读到的关于XML的大部分文章实际上是XML和 JSON之间的比较,而不是XML本身.

更新:到目前为止,我的感觉(基于此comment)是XML用于通用数据传输,但是在最初的兴奋之后由于其低效性而受到青睐(并且它是低效的,因为它是通用的)更多的想法受到欢迎.

我尝试总结一下我使用XML的经验:

优点

人类可读格式:

每个人都可以通过阅读它来检查其内容.这使其成为易于使用且易于理解的通信形式.甚至商界人士都喜欢它(就我多年来对金融机构的经验而言),因为他们理解它,并且他们可以轻松地在消息传递系统中查看消息.只有他们才能决定哪个系统是错误的.让它们变得快乐:)将它与JSON相比较.我认为JSON远非读者友好,因为关闭括号比关闭XML中的元素更难跟踪.你必须回头看看是什么开始.您不需要任何编程技能来理解XML.甚至你的祖母也可以在半小时后理解它.

平台独立性:

无论你使用什么类型的语言和平台,你肯定会有一个解析器来阅读它.这使它可能是异构系统之间最好的通信形式.看到人们通常通过JMS队列传输XML,他们将XML发送到Web服务,他们在传输之前将对象映射到XML文档. XML是如此基本的东西,不同的解析器没有大问题.他们都了解XML.

改造的好工具

您可以使用XSL和XSL-FO将XML文档转换为几乎任何内容. HTML,PDF,TXT,CSV,其他一些XML文件等. XSL非常强大,因为它适应了XML的思维方式.它让你觉得递归,我总是喜欢在面向对象编程之后很有趣. XSL几乎适用于任何平台.您可以使用XSL从纯数据创建报表和文档.
您可以使用JAXB等技术轻松地将XML文档映射到编程对象.

用于验证的好工具

XSD使您能够为XML文档定义一些语法.模式本身不像XML那样用户友好,但最简单的结构如occourance,parenthood,attributes等易于理解和使用.所以这也是一个工具,对商务人士来说可能是好的. XSD适用于几乎所有平台.

XPath和XQuery

这两种技术都可以让您遍历和查询XML.优点与XSL和XSD相同,它们与平台无关. XPath是如此有效,即使对象树apache创建了相当于它:JXPath.

缺点

赘言

它可以占用任何磁盘空间. XML使日志变大,难以读取和获取.另一方面,您可以压缩日志.甚至可以压缩Web服务或JMS消息以减少通道的负载.但即使在这种情况下,压缩也是CPU和内存开销.另一方面,根据我的经验,XML和相关技术可以缩短开发时间,并且您节省的费用远远足以购买一个CPU. CPU比人便宜.

使用效率低下

什么样的对象(XPath表达式,XSL模板,XSD架构,XML解析器等)具有什么样的生命周期,这远非微不足道.什么可以缓存?很多人不正确地避免线程安全问题.这将导致你可怕的缓慢.我想强调一点,这不是技术问题,而是滥用问题.很多人都被困在旧的DOM解析器上,这是一个丑陋的事情.他们在它上面抽象了一些层,并为XML处理创建了专有的API,这很糟糕.继续,使用DOM4j或STAX或JAXB或任何标准.

创造特殊事物的虚假自由

许多公司使用XML创建了域特定语言或可怕的配置文件.由于它易于解析和遍历,因此他们甚至为全新的语言创建了解释器.语言被卡住了,从未创建过计划的开发工具.不要使用XML来制作程序.它不是用来的.不要在XPath中编程,因为它没有经过验证的设计时间.把事情做好. XML主要用于以某种标准形式传输数据.不要在XML中重新发明轮子.对于你自己而言,这将是一个程序化的轮椅,而不是一辆汽车.

关于XML的最佳教程是在ZVON我想.如果需要,可以使用它们.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇