展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > XML入门问答

XML入门问答

什么是置标语言? 平时我们写文章用的语言,叫书面自然语言。如果我们在里面加了一些标记,比如为了强调某句话,就在下面画条线,那这种带标记的语言,就是置标语言(Markup Language)。不过,这里要聊的置标语言,是专门给计算机看的——它的标记通常用文字或数字来表示,含义清晰。做法也很简单:先定义

什么是置标语言?

平时我们写文章用的语言,叫书面自然语言。如果我们在里面加了一些标记,比如为了强调某句话,就在下面画条线,那这种带标记的语言,就是置标语言(Markup Language)。不过,这里要聊的置标语言,是专门给计算机看的——它的标记通常用文字或数字来表示,含义清晰。做法也很简单:先定义一套有特定含义的标记,然后把这些标记加到书面语言里,就成了置标语言。

举个例子,为了让计算机知道一段文字里,哪部分是标题、哪部分是作者、哪部分是正文,我们可以定义这样一套标记:<标题>、;<作者>、;<正文>、。然后,把上面那段文字改写成置标语言,就成了:

<标题>什么是置标语言?

<作者>xml.net.cn

<正文>我们日常书写的语言,被称为书面自然语言。… …

置标语言和那些控制流编程语言不一样,它更像是一种描述文档结构的数据流语言。在计算机处理时,这些标记既可以当作数据,也可以当作控制指令来用。

在编程世界里,习惯把一种语言的定义整体称为“某某程序设计语言”,而把用这种语言写的文字叫做“某某语言程序”。套用这个习惯,我们可以把置标语言的定义整体称为“某某置标语言”,而把用这种置标语言写的文字段落,叫做“某某语言文档”。比如,如果我们把上面那套标记命名为“文章置标语言”,那么下面那段带标记的文字,就是“文章置标语言文档”。

什么是SGML?

从字面上看,SGML(Standard Generalized Markup Language —— 标准的通用置标语言)是一种置标语言,但它其实是一种通用的文档结构描述语言,主要用来定义文献模型的逻辑和物理结构。SGML是ISO组织在1986年发布的ISO 8879国际标准。

一个SGML语言程序,由三部分组成:语法定义、文件类型定义(简称DTD)和文件实例。语法定义规定了DTD和文件实例的语法结构;DTD定义了文件实例的结构以及组成结构的元素类型;文件实例则是SGML语言程序的主体部分。

在实际使用中,每一个特定的DTD都定义了一类文件。比如,所有新闻稿件都可以用同一个DTD。所以,人们习惯把拥有特定DTD的SGML语言称为某某置标语言,比如HTML。这样一来,SGML就成了那些派生语言的元语言。

什么是XML?

XML是eXtensible Markup Language(可扩展的置标语言)的缩写,由W3C组织在1998年2月发布。W3C制定XML标准的初衷,是定义一种在互联网上交换数据的标准。做法是简化SGML:去掉语法定义部分,适当简化DTD,并增加一些互联网特有的成分。所以,XML也是一种置标语言,基本上是SGML的一个子集。因为XML也有DTD,所以它也可以作为派生其他置标语言的元语言。

什么是HTML?

HTML是Hypertext Markup Language(超文本置标语言)的缩写,它是SGML的一个实例,也是W3C发布的标准,专门用于在互联网上发布信息。

XML、SGML、HTML之间是什么关系?

HTML是SGML的一个实例,它的DTD是固定的标准,所以HTML不能作为定义其他置标语言的元语言。XML是SGML的一个子集,严格来说,XML也还是SGML。和HTML不同,XML有DTD,所以可以像SGML一样作为元语言,用来定义其他文件系统或置标语言。如果把置标语言分为元置标语言和实例置标语言,那么SGML和XML都是元置标语言,而HTML以及由XML派生的XHTML都是实例置标语言。

XML的用途是什么?

在互联网上,服务器之间、服务器与浏览器之间需要大量数据交换,尤其是电子商务。这些数据需要说明内容和表现方式,用置标语言来干这事再合适不过。SGML完全可以胜任,但SGML对互联网来说太复杂了。所以,我们需要一种既能像SGML那样作为元语言,又相对简单的置标语言——XML就这样诞生了。因此,XML在互联网上的用途主要有两个:一是作为元置标语言,定义各种实例置标语言标准;二是作为标准交换语言,描述交换的数据。

HTML已经这样流行了,为什么还要发展XML?

简单来说,HTML做不了XML要做的事。因为XML的任务必须由元置标语言完成,而HTML只是一个实例置标语言。在XML出现前,互联网的发展被HTML的以下几个问题束缚着:

1)HTML无法描述数据内容,而这恰恰是数据检索、电子商务所必需的。

2)HTML对数据表现的描述能力很有限,比如无法描述矢量图形、科学符号等,只能通过图片来表现。

3)HTML作为实例置标语言,完全无法适应新标记需求的发展。

XML的出现,正好解决了这些问题。

XML怎样简化SGML?

为了简化SGML,XML重新定义了一些内部值和参数,删掉了很多繁杂、不常用、让编程变复杂的特征。具体细节可以参考W3C的相关文档。

用XML你能定义自己的文件类型(DTD)吗?

答案是肯定的,这也是XML与HTML最大的区别之一。

谁对XML负责?

XML是W3C的一个项目,规格说明书由W3C的XML工作组制定。这个工作组成员来自各个领域和公司,通过电子邮件交流信息,不断修改和完善。XML是集体智慧的结晶,不是某个公司的专利。1.0版规格说明书在1998年2月10日由W3C正式推荐使用。

为什么XML如此重要?

试想一下,如果互联网世界里大家都讲方言,交换信息时都得翻译,那得多麻烦。XML之所以重要,正是因为它扮演了“国际语言”的角色。而且,它还为互联网世界提供了定义各行各业“专业术语”的工具。

什么是文档类型定义(DTD)?

文档类型定义(DTD)是一套关于标记符的语法规则。它告诉你文档里可以用哪些标记符,它们按什么顺序出现,哪些标记符可以出现在其他标记符里面,哪些标记符有属性,等等。DTD原本是为SGML开发的,它可以是XML文档的一部分,但通常是一份单独的文档或一系列文档。XML本身没有通用的DTD,需要数据交换的行业或组织可以定义自己的DTD。

如何在浏览器中阅读XML?

阅读XML文档的工具一般叫XML解析器,也叫XML处理器。XML处理器把数据传给应用软件,让软件去处理、出版、查询或显示。XML本身不提供应用程序接口(API),只是把数据传过去。XML处理器不会解析不符合规范的数据。Netscape和Microsoft都已经把XML解析器集成到浏览器中。还有一些免费的XML阅读器和解析器,可以在应用软件或XML制作软件中使用。

使用问题

如何得到XML浏览器?

XML标准发布不久,很多软件还在试验阶段。处理HTML的浏览器有很多,但将来会涌现大量不同领域的XML应用程序,所以别指望有一个浏览器能100%处理所有程序。

XML的工具(比如解析器、树结构管理、搜索、格式化等)会被加到浏览器的库或工具包里,帮助开发人员更容易编写XML程序。这类应用程序可以通过增加语义来适应特定领域,或者用Ja va等语言为浏览器开发插件,在Web上传输模块。

Microsoft的IE4和5浏览器可以处理一些Microsoft-oriented的XML程序,但显示时需要转换为HTML。Arbortext的XML Stylesheet程序介绍了如何使用XML+XSL。你还需要ActiveX控件和XSL codebase。Microsoft建议可以在HTML文件中加入XML段,因为只支持HTML的浏览器会忽略不认识的标识元素。

Netscape(Mozilla)浏览器已经通过了一个XML+RDF测试,使用了James Clark的expat XML解析器。

为什么要使用XML而不是HTML?

比较重要的原因有以下六条:

1)作者和供应商能用XML设计自己的文档类型,不必被HTML束缚。

2)XML的超文本链接能力比HTML强得多,提供的信息内容更丰富,也更易用。

3)XML能提供更多更好的机制,方便浏览器的信息表现和性能优化。

4)XML舍弃了SGML的复杂性,编写处理XML的应用程序更容易。

5)信息易于存储,可重复使用。

6)XML文件在SGML环境中也可使用,不局限于Web。

必须从SGML或HTML转向XML吗?

不需要。现有的SGML和HTML应用软件会继续和现有文件一起工作。但如果你想查看或下载XML文件,就需要使用能理解、处理XML的程序。

可以用Ja va创建和管理XML文件吗?

是的,任何程序设计语言都能用来从XML源文档中输出数据。已经有很多前端和后端工具让程序设计和数据管理更方便。你可以在一些技术网站上找到更详细的说明。

开发问题

XML的规格说明书在哪里?

在W3C官网上就可以找到。

“DTDless”、“valid”和“well-formed”等术语的含意是什么?

在标准SGML文档中,所有用到的标记、元素、元素的属性都必须由DTD来说明。但XML并不总是需要DTD,所以XML文档可以带DTD,也可以不带。DTDless的意思就是没有DTD的XML文件,你可以创建自己的标识和元素,但不用在DTD中正式定义。DTDless文件通过创建元素时直接定义它们。不过,当XML应用程序(比如浏览器)遇到DTDless文件时,因为没有DTD告诉它文件的结构,所以创建DTDless文档时仍需要一些规则来规范。于是,“well-formed”XML文档的概念就产生了,它规定了书写XML文档的语法规范。所有符合这个规范的XML文档就是“well-formed”的。如果一个“well-formed”的XML文档还包含了DTD,那它就是一个“valid”的XML文档。

为什么XML文件的分析结果出现乱码?

这是编码问题引起的。XML标准规定,XML解析器必须支持UTF-8和UTF-16编码,并且能自动区分这两种编码。对于其他编码(比如中文的GB2312或BIG5)并不要求支持。如果XML文件里有编码声明,解析器就按声明处理;否则就按识别结果(总是UTF-8或UTF-16之一)。所以,如果文件编码不是这两种,你必须在文件前面加上编码声明,比如,表示文件编码是GB2312。

现有的XML解析器大多不支持中文编码,因此无法读取包含中文的XML文件。你可以使用支持中文编码的解析器,比如MSXML、IBMJA VA4C、IBMJA VA4J等。也可以用内码转换工具,把编码转换成UTF-8或UTF-16后再解析,然后再把结果转回原编码。你甚至自己写一个内码转换程序也完全可以。

关于UTF-8和UTF-16编码的详细信息,可以在相关标准文档中找到。

XML如何与数据库连接?

XML是一种文件格式,它没有规定与数据库的连接方法。你需要用传统的方法连接数据库,进行查询,然后把结果转成XML格式。现在有些工具提供了这样的流程,基本步骤都差不多。下面是一个用ASP直接生成XML文件的例子,你可以参考一下(代码略)。

(注:代码示例中包含了ASP代码,用于从数据库查询并生成XML。由于涉及具体实现,保留原样。)

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
精品专题 更多
本月促销

正软商城本月促销专区,汇集办公、设计、安全、影音、系统工具及AI软件等正版软件优惠活动,提供限时折扣、特价授权和优惠购买信息,活动库存及价格以页面实时展示为准。

装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

Mole
Mole

Mole 是一款专为 Mac 设计的深度清理优化工具,涵盖缓存清理、应用管理及实时状态监控等功能。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Seer
Seer

Seer是一款在Win平台下的空格键功能增强效率工具,只需轻敲空格键,就能预览几乎任何格式的文件。它更适合把零散的小功能集中起来使用,处理高频琐碎任务时会更省事。