企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。       近年来,随着 Web的应用越来越广泛和深入,人们渐渐觉得HTML不够用了,HTML过于简单的语法严重地阻碍了用它来表现复杂的形式。尽管HTML推出了一个又一个新版本,已经有了脚本、表格、帧等表达功能,但始终满足不了不断增长的需求。   有人建议直接使用SGML 作为Web语言,这固然能解决HTML遇到的困难。但是SGML太庞大了,用户学习和使用不方便尚且不说,要全面实现SGML的浏览器就非常困难,于是自然会想到仅使用SGML的子集,使新的语言既方便使用又实现容易。正是在这种形势下,Web标准化组织W3C建议使用一种精简的SGML版本——XML应运而生了。 ![](https://box.kancloud.cn/2016-08-19_57b6bd263d25a.jpg) [图一] XML家族史 ### Q1:什么是XML? - XML 指可扩展标记语言(EXtensible Markup Language) - XML 是一种标记语言,很类似 HTML - XML 的设计宗旨是传输数据,而非显示数据,常用于简化数据的存储和共享 - XML 标签没有被预定义。您需要自行定义标签。 - XML 被设计为具有自我描述性。 - XML 的优势之一,就是可以经常在不中断应用程序的情况进行扩展。 ### Q2:XML与HTML的区别? - XML 被设计用来传输和存储数据。 - HTML 被设计用来显示数据。 - XML 不是 HTML 的替代。 - XML 和 HTML 为不同的目的而设计: - XML 被设计为传输和存储数据,其焦点是数据的内容。 - HTML 被设计用来显示数据,其焦点是数据的外观。 - XML 把数据从 HTML 分离。XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。 ![](https://box.kancloud.cn/2016-08-19_57b6bd26aaa72.jpg) ## XML DTD 和XML Schema   二者的作用很容易理解,为了进行正确的数据交换,就要规定文档的数据类型,也就是规定文档的结构。这里打个比方,意大利人说意大利语,日本人说Japanese,两个的商人要进行对外的贸易,就要有个统一的语言,那就是需要贸易通则 Incoterm2010(作为一名国贸生,能把计算机与专业课联系在一起,可见我专业课上总是开小差了~)      想象一下,一个XML的组成就是元素,属性,内容,那么DTD或是它的升级版Schema就是用来规定一个XML文档什么时候什么地点可以出现什么元素,每个元素都可以有什么描述属性。以及它们出现的顺序,重复的次数。在二者中都有详细的规定了。   DTD可以嵌入在XML文档中,也可以单独形成一个文件,引入即可。 ~~~ <?xml version="1.0"encoding="UTF-8"? > <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> ~~~ ### Q1:DTD与Schema的关系 - 都是用于描述XML文档的结构。 - Schema是基于XML的DTD的替代品。 - Schema要比DTD更强大。 ### Q2:Schema的优点 - XML Schema 支持数据类型 - XML Schema 使用 XML 语法   这样的好处是不必学习新的语言,可以使用XML编辑器来编辑、解析Schema文件。 - XML Schema 可保护数据通信   通过Schema,发送方可以使用一种接收方能够明白的方法来描述数据。 - XML Schema 可扩展   可以根据原有的数据类型自定义出自己需要的数据类型,在相同的文档中可以引用多重的Schema。 ## 小结:      通过XML的学习,知道了HTML与XML实际上没有必然的联系,用途不同的两者总是被大家搞混。了解了XML的组成,下一步就是JavaScript脚本语言的学习,看看在JS中如何操作XML文件。