首页 > 其他分享 >XML(可扩展标记语言)

XML(可扩展标记语言)

时间:2023-09-29 14:31:28浏览次数:41  
标签:XML Web 定义 标记 扩展 文档 数据 语言

XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。

XML简介

与HTML一样,XML是从所有标记语言的元语SGML(Standard Generalized Markup Language,标准通用标记语言)中派生出来的。SGML 是一种元语言,XML也是一种元语言,一个定义 Web 应用的 SGML 子集。和 SGML 一样,也可以用XML 来定义种种不同的标记语言以满足不同应用的需要。

随着越来越多的规范对XML的支持,使得XML的功能日趋强大,不仅在Web世界,而且在整个软件系统架构过程中都发挥出巨大的作用。

(1)实现不同数据的集成。不同的数据库系统,其存储结构、应用程序接口都存在着许多不同点,因此基本上无法开发出一套能够针对这些相互不兼容的数据库的查询程序。而 XML 的出现,则改变了这个现象,由于数据是结构化的,因此即使它们的来源不同,也能够很容易地结合在一起。在开发时,可以在中间层的服务器上对从后端数据库和其他应用来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。

(2)使用于多种应用环境。XML的高扩展性、高灵活性特性,使得其可以描述各种不同种类的应用软件中各种不同类型的数据。另外,XML 独有自描述性,可以很容易进行交换、处理,而且还不需要多余的内部描述。

(3)客户端数据处理与计算。由于 XML 格式的标准化,许多浏览器软件都能够提供很好的支持,因此只需简单地将 XML 格式的数据发送给客户端,客户端就可以自行对其进行编辑和处理,而不仅是显示。而且,DOM 还允许客户端利用脚本或其他编程语言处理数据,而无须回到服务器端。这种将数据视图与内容分离的机制,可以更容易地创建出基于 Web 的、功能强大的应用,而无须基于高端数据库。

(4)数据显示多样化。XML将显示和数据内容分离,提供了一种简单、开放、扩展的方式来描述结构化数据。与HTML不同的是,HTML描述了数据的外观,而XML则描述的是数据本身。因此,XML 定义的数据可以指定不同的显示方式,利用CSS或XSI(eXtensible Stylesheet Language,可扩展样式表语言)等工具来提供显示机制。

(5)局部数据更新。通过 XML,数据可以实现局部的更新。也就是说,当有其中的一部分数据变化时,并不需要重发整个结构化的数据,服务器只需将变化的元素发送给客户。而不是像现在的情况,只要一条数据变化了,整页都必须重建。而且,还可以将新增的信息加入到已存在的页面中,这样就可以使得应用的性能更高。

XML的相关技术

XML主要是一种数据描述方法,其魅力要在与其相关的技术的结合中才能显示出来。XML相关的技术有很多,但主要的有三个,分别是Schema、XSL和XLL(eXtensible Link Language,可扩展连接语言)。

(1)DTD(Document Type Definition,文档类型定义)与 Schema。用来对文档格式进行定义的语言,就相当于数据库中需要定义数据模式一样,DTD 和 Schema 决定了文档的内容应该是些什么类型的东西。其中 DTD 是从 SGML 继承下来的,而 Schema 是专门为XML文档格式而设计的,它们都规定了XML 文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素之间的关系。(2)CSS 和XSL。由于XML 是内容和格式分离的语言,所以需要专门的协议来定义XML 文档的显示格式,CSS 和XSL 就是用来定义XML文档显示格式的。其中CSS是随着 HTML的出现而出现的,它是一种极其简单的样式语言;XSL 则是专门为 XML设计的样式语言,它被定义为一套元素集的 XML语法规范,该语法用来将XML文件转换为 HTML 或者其他格式的文档。

(3)Xpath、Xpointer与Xlink。都是用于扩展Web 上的链接。Xlink是XML标准的一部分,用于定义对 XML 的链接。Xlink 与 HTML 中<a>标记的功能很类似,可以在XML文档中插入元素,用于创建不同资源间的链接: Xpath 是一门语言,用于把 XML文档作为带有各种节点的树来查看。使用 Xpath 可以定位 XML 文档的任意节点。在XML中,链接分为两部分,即Xlink和Xpointer。Xlink是XML的链接语言,用于描述一个文档如何链接到另一个文档。Xpointer 是 XML 语言的指针,用于定义如何寻址-个文档的各个组成部分。Xpointer 是对 Xpath 的扩展,它可以确定节点的位置和范围通过字符串匹配查找信息。Xlink 必须与Xpath或Xpointer 配合工作。Xpath 或Xpointer用于定义文档链接的位置,Xlink 提供文档中链接位置上的实际链接。

(4)XML名字空间。当多个文档创建 DTD 或者 Schema 时,需要某种方式来确定每个定义的起源。名字空间(Namespace)的使用可以有效地防止名字冲突的发生。

(5)XML 查询语句。XQL(XML Query Language,XML 查询语言)和XML-QL(XML-Query Language,XML 查询语言)是两种比较有影响力的查询语言,它们是对XSL 的一种自然的扩充,并在 SL 的基础上提供了筛选操作、布尔操作和对节点集进行索引,并为查询、定位等提供了单一的语法形式。

(6)RDF(Resource Description Framework,资源描述框架)。元数据是有关数据的数据和有关信息的信息。元数据在 Web 上有很多用途,包括管理、搜索、过滤和个性化Web 网站。RDF是用于编译、交换和重新使用结构化元数据的W3C 指的XML应用程序,它能使软件更容易理解 Web 站点的内容,以便可以发现 Web 站点上的资源。

(7)DOM、SAX和XML解析器。DOM 使用树型结构来表示XML 文档,以便更好地看出层次关系,这是很直观,方便的方法。但用 DOM 处理 XML 文档,在处理前要对整个文档进行分析,把整个 XML 文档转换成树型结构放到内存中,在文档很大时将占用很大的内存空间。SAX的目的是为处理大型文档而进行优化的标准的解析接口。它是事件驱动的,每当它发现一个新的XML标记,就用一个 SAX解析器注册柄,激活回调函数。XML Parser(解析器)是一个用于处理XML 文档的软件包,它为用户提供了操作XML文档的接口,以便减轻应用程序处理XML 数据的负担。目前解析器的类型可以分为验证的和非验证的两种。


标签:XML,Web,定义,标记,扩展,文档,数据,语言
From: https://blog.51cto.com/u_15590807/7650091

相关文章

  • 【中秋国庆不断更】OpenHarmony定义扩展组件样式:@Extend装饰器
    【中秋国庆不断更】OpenHarmony定义扩展组件样式:@Extend装饰器在前文的示例中,可以使用@Styles用于样式的扩展,在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式。说明:从APIversion9开始,该装饰器支持在ArkTS卡片中使用。装饰器使用说明语法@Extend(UIComponentName)......
  • 【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(上)
    一、XML概述XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应用领域。XML文档由元素(element)、属性(attribute)和内容(content)组成。​......
  • xStream完美转换XML、JSON
    xStream框架xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换;前面有介绍过json-lib这个框架以及Jackson这个框架它们都完美支持JSON,但是对xml的支持还不是很好。一定程度上限制了对Java对象的描述,不能让xml完全体现到对Java......
  • FastDFS--扩展篇(Php&&Apache2&&Nginx)
         FastDFS不是通用的文件系统,只能通过专用的API来访问,目前提供了CJAVAPHP的API,下面我们来安装php扩展。   让Fastdfs支持php,在FastDFS的源码包解压后里面有个php_client目录,进入此目录,参照README进行安装: phpize./configuremakemakeinstall    ......
  • KdMapper扩展实现之microstar(NTIOLIB_X64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称NTIOLIB_X64.sys 时间戳50......
  • lxml的实际使用
    点击查看代码html=etree.HTML(resp.text)divs=html.xpath("/html/body/div[6]/div/div/div[2]/div[5]/div[1]/div")fordivindivs:companyName=div.xpath("./div/div/a[1]/div[1]/p/text()")[1].strip()price=div.xpath("./div/di......
  • odoo xml文件中&出现报错问题:Unescaped & or nonterminated character/entity referen
    解决方式1:将“&”改写为“&amp;” 解决方案2:使用CDATA区:当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低,这时应该使用CDATA段。在CDATA段中出现的“ < ”、“ > ”、“ " ”、“ ’ ”、“&”都无需使用转义字符,但CDATA段中不能包含“]]>”,......
  • KdMapper扩展实现之MICSYS(MsIo64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称MsIo64.sys 时间戳5DA7C......
  • com.qq.weixin.mp.xml.AesException: 签名验证错误
    【已解决】AesException:签名验证错误问题原因:部分语言在url接收时会将+转化为空格导致出错的。这个问题企业微信官方客服两天也没有给个解释,突然就解决了。生气...... ......
  • C# 中定义Task的扩展类
    目录一背景二代码分析1.ActionResult2Task的扩展类TaskExtension2.1Task中创建相互关联的Cancellation2.2Task中等待特定的结果返回2.3Task中等待执行结果的完成2.4Task执行增加Timeout2.5其它Task中使用的一些小技巧2.5完整的代码展示一背景在很多的时候我们代码中......