前言

最近应导师要求,对交通领域的一篇协议性的文件进行学习,在协议的附录里,发现了一份对应这份协议的xml纲要,篇幅巨大,于是心中好奇xml究竟是什么,在这里做一简单记录,与大家共享。

XML的概念

XML(Extensible Markup Language),中文为可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 XML可以用来标记数据、定义数据类型,可以允许用户对自己标记语言进行定义,是对人和机器都比较友好的数据承载方式。它提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,非常适合万维网传输,是Internet环境中跨平台、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。

可以将XML的概念总结为以下几点:
1)是一种很像超文本标记语言的标记语言。
2)它的设计宗旨是传输数据,而不是显示数据。
3)它的标签没有被预定义。您需要自行定义标签。
4)它被设计为具有自我描述性。
5)它是W3C的推荐标准。
6)是各种应用程序之间进行数据传输的最常用的工具。

可扩展标记语言(XML)和超文本标记语言(HTML)之间的差异
而XML与另一类十分相似的超文本标记语言(HTML)之间又有何关系呢?下面列出了两者之间的差别。如果你在学习XML前具备对HTML知识的基本了解,这对于你学习XML是十分有利的。
1)它不是超文本标记语言的替代。
2)它是对超文本标记语言的补充。
3)它和超文本标记语言为不同的目的而设计:它被设计用来传输和存储数据,其焦点是数据的内容。 超文本标记语言被设计用来显示数据,其焦点是数据的外观。
4)超文本标记语言旨在显示信息,而它旨在传输信息。
5)对它最好的描述是:它是独立于软件和硬件的信息传输工具。

XML不会做任何事情
也许这有点难以理解,但是 XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。
下面实例是 Jani 写给 Tove 的便签,存储为 XML:

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

上面的这条便签具有自我描述性。它包含了发送者和接受者的信息,同时拥有标题以及消息主体。 但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
实例中的标签没有在任何XML标准中定义过。这些标签是由XML文档的创作者发明的。这是因为XML语言没有预定义的标签。HTML中使用的标签都是预定义的。HTML文档只能使用在HTML标准中定义过的标签。XML允许创作者定义自己的标签和自己的文档结构。

XML语法

XML 的语法规则很简单,且很有逻辑。这些规则很容易学习,也很容易使用。

XML 文档必须有根元素
XML 必须包含根元素,它是所有其他元素的父元素,比如以下实例中 root 就是根元素:

<root><child><subchild>.....</subchild></child>
</root>

XML 声明
XML 声明文件的可选部分,如果存在需要放在文档的第一行,如下所示:

<?xml version="1.0" encoding="utf-8"?>

以上实例包含 XML 版本。
UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的默认编码。

所有的 XML 元素都必须有一个关闭标签
在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签:

<p>This is a paragraph.</p>
<br />

XML 标签对大小写敏感
XML 标签对大小写敏感。标签Letter与标签letter是不同的。
必须使用相同的大小写来编写打开标签和关闭标签:

<Message>这是错误的</message>
<message>这是正确的</message>

XML 必须正确嵌套
在 XML 中,所有元素都必须彼此正确地嵌套:

<b><i>This text is bold and italic</i></b>

在上面的实例中,正确嵌套的意思是:由于i元素是在b元素内打开的,那么它必须在b元素内关闭。

实体引用
在 XML 中,一些字符拥有特殊的意义。 如果您把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。 这样会产生 XML 错误:

<message>if salary < 1000 then</message>

为了避免这个错误,请用实体引用来代替 “<” 字符:

<message>if salary &lt; 1000 then</message>

XML 中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似。

<!-- This is a comment -->

在 XML 中,空格会被保留
HTML 会把多个连续的空格字符裁减(合并)为一个:

XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
在旧的 Mac 系统中,使用 CR 来存储新行。 XML 以 LF 存储换行。

XML实例

实例:XML新闻
对新闻的供求双方来说,通过使用这种标准,可以使各种类型的新闻信息通过不同软硬件以及编程语言进行的制作、接收和存档更加容易:

<?xml version="1.0" encoding="ISO-8859-1"?>
<nitf>
<head>
<title>Colombia Earthquake</title>
</head>
<body>
<headline>
<hl1>143 Dead in Colombia Earthquake</hl1>
</headline>
<byline>
<bytag>By Jared Kotler, Associated Press Writer</bytag>
</byline>
<dateline>
<location>Bogota, Colombia</location>
<date>Monday January 25 1999 7:28 ET</date>
</dateline>
</body>
</nitf>

实例:XML 气象服务
XML 国家气象服务案例,来自 NOAA(National Oceanic and Atmospheric Administration):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<current_observation><credit>NOAA's National Weather Service</credit>
<credit_URL>http://weather.gov/</credit_URL><image>
<url>http://weather.gov/images/xml_logo.gif</url>
<title>NOAA's National Weather Service</title>
<link>http://weather.gov</link>
</image><location>New York/John F. Kennedy Intl Airport, NY</location>
<station_id>KJFK</station_id>
<latitude>40.66</latitude>
<longitude>-73.78</longitude>
<observation_time_rfc822>Mon, 11 Feb 2008 06:51:00 -0500 EST
</observation_time_rfc822><weather>A Few Clouds</weather>
<temp_f>11</temp_f>
<temp_c>-12</temp_c>
<relative_humidity>36</relative_humidity>
<wind_dir>West</wind_dir>
<wind_degrees>280</wind_degrees>
<wind_mph>18.4</wind_mph>
<wind_gust_mph>29</wind_gust_mph>
<pressure_mb>1023.6</pressure_mb>
<pressure_in>30.23</pressure_in>
<dewpoint_f>-11</dewpoint_f>
<dewpoint_c>-24</dewpoint_c>
<windchill_f>-7</windchill_f>
<windchill_c>-22</windchill_c>
<visibility_mi>10.00</visibility_mi><icon_url_base>http://weather.gov/weather/images/fcicons/</icon_url_base>
<icon_url_name>nfew.jpg</icon_url_name>
<disclaimer_url>http://weather.gov/disclaimer.html</disclaimer_url>
<copyright_url>http://weather.gov/disclaimer.html</copyright_url></current_observation>

参考网站

https://www.runoob.com/xml/xml-tutorial.html

XML(可扩展标记语言)的详细介绍 概念、语法与实例相关推荐

  1. XML (可扩展标记语言)

    XML (可扩展标记语言) 一. 标记语言 标记语言,是一种将文本(txt)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码. 当今广泛使用的标记语言是超文本标记语言(H ...

  2. java 解析标记语言_Java XML可扩展标记语言(eXtensible Markup Language)

    一.XMl 1.1.XML简介: XML指可扩展标记语言(eXtensible Markup Language),它是一种很像HTML的标记语言.XML的设计宗旨是传输数据,焦点是数据的内容,而HTM ...

  3. 第三章 可扩展标记语言XML

    XML(可扩展标记语言)的作用: 用于传输和存储数据的,并且对数据有一定的描述性. 没有预定义标签,用户可以自定义标签. XML最好的描述是:XML 是独立于软件和硬件的信息传输工具.即不依赖于任何软 ...

  4. 可扩展标记语言类毕业论文文献有哪些?

    本文是为大家整理的可扩展标记语言主题相关的10篇毕业论文文献,包括5篇期刊论文和5篇学位论文,为可扩展标记语言选题相关人员撰写毕业论文提供参考. 1.[期刊论文]一种基于可扩展标记语言的软件系统解耦合 ...

  5. “可扩展标记语言”(XML) 提供一种描述结构化数据的方法。

    摘要: "可扩展标记语言"(XML) 提供一种描述结构化数据的方法.与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型. XML 使 ...

  6. 扩展标记语言-XML

    XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML 很重要,也很容易学习. :::::::::::::::::::::::: ...

  7. 可扩展标记语言--XML

    XML(EXtensible Markup Language)可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 在电子计算机中,标记指计算机所能理解的信息符号, ...

  8. 可扩展标记语言XML之一:XML的概念、作用与示例

    哈喽大家好啊,乐字节小乐又来给大家分享Java技术文章了.上次已经讲完了Java多线程相关知识(可以看我博客文章), 这次文章将讲述可扩展标记语言XML 一. 标记语言 标记语言,是一种将文本(Tex ...

  9. 第八章 可扩展标记语言XML

    1.什么是XML? XML:Extensible Markup Language(可扩展标记语言) HTML:HyperLink Text  Markup Language(超文本标记语言) 2.xm ...

最新文章

  1. ES6前端就业课第三课之class
  2. yum安装ruby_rediscluster安装
  3. 多线程编程(14) - 多线程同步之 WaitableTimer (等待定时器对象)
  4. readyboost提升明显吗_主动降噪影响音质吗?为什么降噪耳机打开降噪后音质会有明显提升...
  5. 三十万,买一只基金,放着不管,五年后会怎么样?
  6. jboss7体验及配置入门
  7. Jetty使用教程(四:24-27)—Jetty开发指南
  8. 使用计算机录制声音10,Win10怎么录制电脑内部声音 Windows10电脑自身录音教程
  9. 微信小程序表格前后台分页
  10. Flink中水位线/Periodic周期水印/Punctuated每个事件水印实现原理/ PunctuatedWatermarks/PeriodicWatermarks
  11. STM32学习心得三十三:FLASH闪存编程原理与实验
  12. PID到底是个啥?来给你讲个故事
  13. 计算机桌面图标怎样变大变小,win7电脑桌面图标变大怎么恢复?win7桌面图标怎么变小?...
  14. Log4j 漏洞最早由阿里云团队发现;HashiCorp 挂牌上市,市值 152 亿美元;Go 1.18 Beta1 发布 | 开源日报
  15. NBUT1582 比赛吃鸡腿
  16. C语言处理/proc/meminfo
  17. 互联网重提内容为王?学Netflix(奈飞)做好内容营销
  18. JSP教师辅助办公软件教学进程管理系统yeclipse开发mysql数据库bs框架java编程jdbc详细设计
  19. 网络打印两个基本端口(LPD和9100)的相关知识
  20. 7.10网站数据统计

热门文章

  1. 本科工科专业考研转计算机,自考本科考研【985工科专业】的所获经验,【已上】...
  2. 华为云AI能力抢先体验 HC大会现场火爆“比心”
  3. Android集成阿里云推送功能
  4. 《5分钟商学院》笔记之消费心理学
  5. 线性分类器与非线性分类器
  6. 【转载】PYTORCH整理:60分钟入门
  7. 二说 拷贝构造函数 拷贝赋值函数
  8. 微信公众号关联微信小程序详细步骤
  9. Digia 从 Nokia 手中接管 Qt
  10. zabbix监控磁盘IO性能