当前位置: 首页 > 科技观察

什么是XML?

时间:2023-03-13 13:41:55 科技观察

了解XML,这是一种严格但灵活的标记语言,适用于从文档到图像的所有内容。XML是一种分层标记语言。它使用开始和结束标记来定义数据,常用于存储和交换数据,并且由于其极大的灵活性,无论是在文档还是图像中都使用得非常多。这是一个XML文档示例:Fedora8WerewolfSlackware12.1TuxBobDobbs阅读此示例XML,您可能会发现此XML的格式具有直观的特点。无论您是否熟悉本文档的主题,您都可能了解本文档中的数据。这部分是因为XML被认为是冗长的。它使用了很多标签,这些标签可以有很长的描述性名称,并且数据以分层方式排序,这有助于解释数据之间的关系。您可能从这个示例中了解到Fedora发行版和Slackware发行版是两个截然不同且不相关的Linux发行版,因为每个实例都“包含”在其自己单独的标记中。XML也非常灵活。与HTML不同,它没有预定义的标签列表。您可以自由创建代表您需要的任何数据结构的标签。XML的组成数据是为了被读取而存在的,当计算机“读取”数据时,这个过程称为解析。再次使用示例XML数据,这里是大多数XML解析器认为重要的术语。文档:标签标记文档的开始,标签标记文档的结束。Nodes:,,这些都是节点,用解析的术语来说,一个节点就是一个包含其他标签的标签。元素:这些是像FedoraTux这样的元素。以第一个<开始并以最后一个>结束是一个元素。Content:两个元素标签之间的数据称为content,在第一个标签中,Fedora字符串是一个content。XML模式XML文档中的标记和标记继承称为模式。有些模式是任意组合的(例如,本文中的示例XML代码完全是即兴创作的),而其他模式则是由标准组织严格定义的。例如,可缩放矢量图形(SVG)架构由W3C定义,而DocBook架构由NormanWalsh定义。模式强制一致性。最基本的模式通常也是最严格的。在我的示例XML代码中,将发布名称放在节点中是没有意义的,因为文档的隐式模式明确指出mascot必须是发布的“子”元素。数据对象模型(DOM)如果您必须不断地描述标签和位置(例如“系统部分中Linux部分中第二个发行版标签的名称标签”),那么谈论XML可能会让人感到困惑,因此解析器XML数据使用文档对象模型(DOM)的概念。DOM将XML数据放入一种“家谱”结构中,从根元素(在我的示例XML中为os标记)开始,并包括路径上的每个标记。文档对象模型的这种相同的XML数据结构可以表示为路径,就像Linux系统中的文件或Internet上网页的位置一样。例如,标签的路径可以表示为//os/linux/distribution/slackware/mascot。两个标签可以表示为//os/linux/distribution,因为有两个distribution节点,所以解析器可以直接把两个节点的内容加载到一个数组中,这样就可以查询了。严格的XMLXML也以严格着称。这意味着大多数应用程序都设计为在遇到XML错误时故意失败。这听起来可能有问题,但这是开发人员最欣赏XML的地方之一,因为当应用程序试图猜测如何解决错误时,可能会发生不可预知的事情。例如,在HTML定义明确之前,大多数Web浏览器都包含“怪癖模式”,因此当人们试图查看错误的HTML代码时,Web浏览器可以加载作者可能想要的内容。结果是非常不可预测的,尤其是当一个浏览器的猜测与另一个浏览器的猜测不同时。XML不允许因故意错误而失败。这允许作者修复错误,直到他们生成有效的XML。由于XML定义明确,因此许多应用程序都有验证器插件以及独立命令(如xmllint和xmlstarlet)来帮助您及早发现错误。转换XML因为XML通常用于数据交换,所以将XML转换为其他数据格式或其他XML模式是很常见的。经典示例包括XSLTProc、xmlto和pandoc,但从技术上讲,还有许多其他应用程序可以转换XML,或者至少是部分程序。事实上,LibreOffice使用XML来布置其文字处理器和电子表格文档,因此无论何时从LibreOffice导出或转换文件,您都在转换XML。开源EPUB格式的电子书使用XML,因此无论何时将文档与EPUB相互转换,都在转换XML。Inkscape是一个基于矢量的插图应用程序,它将其文件保存在SVG中,SVG是一种为图形设计的XML模式。任何时候将Inkscape中的图像导出为PNG文件,都在转换XML。这个清单可以继续下去。XML是一种数据存储格式,旨在确保您的数据,无论是画布上的点和线、图表上的节点,还是文档中的文字,都可以轻松准确地提取、更新和转换。学习XML编写XML很像编写HTML。感谢JayNick的辛勤工作,现在有一个免费且有趣的XML在线课程可以教您如何使用XML创建图形。通常,探索XML需要很少的特殊工具。由于HTML和XML之间的密切关系,您可以使用Web浏览器来查看XML。此外,QXmlEdit、NetBeans和Kate等开源文本编辑器通过有用的提示、自动完成、语法验证等功能使键入和阅读XML变得容易。选择XMLXML乍一看似乎需要很多数据,但它与HTML并没有太大区别(事实上,HTML已经以XHTML的形式重新实现为XML)。XML具有独特的优势,构成其结构的标签恰好也是元数据,提供有关其存储内容的信息。一个设计良好的XMLschema包含并描述了你的数据,让用户一眼就能看懂并快速解析,开发者也可以使用一些库来快速解析。