缩写
|
说明
|
Namespaces
|
防止不同软件使用名字因为重复而发生冲突
|
XPath
|
定位文档中的数据
|
XPointer
|
说明在文档中的位置
|
Xquery
|
在文档集中查找数据
|
XSLT
|
对数据进行格式转换
|
XSL
|
以页面格式表示数据
|
Xlink
|
连接来自不同文档的数据
|
N/A
|
说明比DTD 更广泛的格式定义
|
|
|
这一篇简单介绍一下XML的特性标准。
首先是命名空间,在实际利用XML的过程中,存在一种现象,就是不同的程序使用同一张XML文档,但是不同程序可能用了同样的名字去表示其实是不一样的数据,为了解决这个问题,引入了命名空间的概念,将XML的元素或属性跟唯一的‘命名空间’联系起来,以区分不同数据。比如,一张订单可以用XML表示,部分数据如下:
<Reconciliation>
<Customer>
<Name>John</Name>
<Address>Accounts Payable-Bar Corporation</Address>
<Order>
<Status>.....</Status>
</Order>
</Customer>
</Reconciliation>
Status 表示订单的状态,如果是财务程序处理这张 XML ,那么 Status 的值为‘invoiced’(已开票)或‘uninvoiced’;如果是交货程序处理,是“shipped”(已交货)或“unshipped”,即同样一个元素,对不同部门可能意义不同,这时就可以用命名空间;
<Reconciliation
xmlns:acct=http://www.foocompany.com/names/acct-rev10
xmlns:ful=http://www.foocompany.com/names/ful-rev10>
<Customer>
<Name>John</Name>
<Address>Accounts Payable-Bar Corporation</Address>
<Order>
<acct:Status>.....</acct:Status>
<ful:Status>.....</ful:Status>
</Order>
</Customer>
</Reconciliation>
当越多的人使用同一个XML时,命名空间就越重要,对开发商而言,所有产品可以定义为一张XML,但不同产品应该有不同的命名空间;企业内部不同部门也应该对应不同的命名空间;
Xpath 、 XPointer 、XQuery 都有定位数据的功能,XPath 是基础,XPath 的语法提供了利用类似文件目录那样的层级结构表示树状结构(因为两者是对应的),XPointer 是比 XPath 更 精确的方式,而 XQuery 是从一个文档集而不是一篇文档中搜集符合条件的节点。这方面详细的内容同样可以参考W3CSchool.
http://www.w3school.com.cn/
XSL 和 XSLT 从名字上就可以看出是相关的,它们的关系是由于历史原因;最初,人们想要为 XML 文档设计一种通用的显示方式,就是 XSL;它的作用相当于 CSS 对 HTML 的作用,要达到这个目标,XSL需要满足两方面要求,第一是重新组织文档的内容(这是显示的关键),第二是将显示属性与内容相关联;问题在于,第一方面的研究进展很快,而且发现这种对XML文档的重组不仅对显示有用,对很多其他方面也很有用,最简单的就是,两个公司各自有各自的XML标准,现在要对两个公司的业务进行自动化处理,而业务都是以XML存储的,那么这个过程势必需要对XML结构进行改变,以使两种标准能统一,这就是XSLT!而第二方面,合适显示属性的研究还存在争议,所以单独作为 XSL,而XSLT先一步成为了标准。事实上,XSLT 不仅在数据转换方面发挥重要作用,在基于XML文档的数据抽取方面也有很大作用的,这个以后有机会再详细说;
有一个问题需要知道,就是以上提到的几种特性标准,实际上用一般的程序语言也可以达到同样的操作,比如用java的dom或SAX,同样可以定位到某一节的去取值,所以,这些所谓特性标准其实是将这类比较经常的操作独立出来而已。所以,有些操作,用 XSLT 的效率还远比不上直接用 dom 写,但是复杂的问题,用 特性标准来做就可以使系统更清晰。
分享到:
相关推荐
pugixml是一款轻量级、高性能的C++库,专为XML解析和操作而设计。这个库由Artemev开发,提供了简单易用的API,使得在C++项目中处理XML文档变得非常便捷。本示例将详细介绍如何使用pugixml进行XML的读取和写入操作。 ...
在PowerBuilder(简称PB)这个强大的开发环境中,处理XML文件是一项常见的任务。XML(Extensible Markup Language)是一种用于存储和传输数据的通用格式,尤其在跨平台和网络应用中广泛使用。本示例主要探讨如何在...
TinyXML和TinyXML2是两个小型的开源库,专门用于解析和操作XML(eXtensible Markup Language)文档。这两个库都是用C++编写的,为C++开发者提供了方便的接口来读取、写入和操作XML数据。下面将详细介绍这两个库的...
易语言XML解析是编程领域中的一个重要主题,尤其对于使用易语言进行开发的程序员来说,理解并掌握XML(可扩展标记语言)的解析方法是至关重要的。XML作为一种结构化数据存储和交换格式,广泛应用于网络通信、配置...
andxml汉化版是一个xml文件反编译工具,可与APKTOOL反编译配合使用,APK文件使用APKTool反编译生成XML文件后,就可以直接通过它进行汉化编辑 注意: 1、一键机器翻译会造成某些代码出现翻译错误现象,请人工识别。...
TinyXML-2 是一个简单、小型、高效的 C++ XML 解析器,可以被轻松集成到其他程序中。它使用文档对象模型(DOM)的方式解析XML,可解析 XML 文档,并根据该文档构建可读取、修改和保存的文档对象模型。 作为XML解析...
**Pugixml详解:一个高效易用的XML解析库** 在编程中,XML(Extensible Markup Language)是一种被广泛使用的数据交换格式,特别是在跨平台通信、配置文件和数据存储等领域。为了处理XML文档,开发者通常需要依赖...
使用java工具xml2axml.jar反编译AndroidManafest文件 通过xml2axml.jar工具反编译AndroidManafest文件 还原AndroidManafest.xml详细过程: 1、获取到apk 2、解压获取里面的AndroidManifest.xml文件 3、在xml2axml....
Oracle数据库系统提供了强大的XML处理能力,这主要体现在其内置的几个PL/SQL包上,如DBMS_XMLDOM、DBMS_XMLPARSER和DBMS_XMLQUERY。这些包为开发者提供了处理XML文档的一整套工具,使得在数据库环境中进行XML数据的...
XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。在IT行业中,XML因其结构清晰、可扩展性强的特点,被广泛应用于数据交换、配置文件、Web服务等领域。本文...
TinyXML-2,通常以tinyxml2库的形式存在,是一个轻量级的C++库,专门用于解析和操作XML文档。这个库由李·斯坦普(Lee Stemp)开发,设计简洁,易于集成到各种项目中,特别是对于嵌入式系统和资源有限的环境。在给定...
在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...
TinyXML2是一个小型、快速且易于使用的C++库,用于解析和生成XML文档。这个库的设计目标是简单、高效,并且适用于嵌入式系统。在本文中,我们将深入探讨如何使用TinyXML2来解析和创建XML文件,特别是涉及到CDATA区段...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在软件开发、Web服务、配置文件等领域。本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 ...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换、文档存储等领域。TinyXML2是轻量级的C++ XML解析库,它提供了简单、直接的方式来读写XML文档。本项目是基于tinyxml2...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。XML Schema(通常缩写为XSD)则是为XML文档定义结构和数据类型的规范,它允许我们对XML文档进行更严格...
- 库的主要类包括`XMLDocument`(XML文档对象)、`XMLElement`(XML元素)、`XMLText`(XML文本)、`XMLComment`(XML注释)和`XMLAttribute`(XML属性)等。 2. **解析XML文件** - 使用`XMLDocument::LoadFile()...
XMLParser是一种用于解析XML文档的C++实现,它旨在提供简单、小巧且稳定的解决方案,以处理XML数据。XML,即可扩展标记语言,是用于存储和传输数据的标准格式,广泛应用于配置文件、数据交换和文档结构化等领域。XML...
XML(eXtensible Markup Language)是一种用于存储和交换数据的标记语言,广泛应用于软件开发、数据存储和网络通信等领域。Matlab作为一个强大的数值计算和数据分析环境,也提供了与XML交互的功能,这主要通过XML ...
(2) 解压Xml Tools 2.4.8 Unicode.zip,关闭Notepad++ (3) 将xmltools子文件夹下的XMLTools.dll拷贝至Notepad++的plugins子文件夹 (4) 将ext_libs子文件夹下的所有dll文件拷贝至Notepad++的根目录(与notepad++.exe...