XMlL将数据与显示分开。
个人理解:
对于一个文档来说,除了要展示数据信息,还要考虑到数据在文档中的样式,例如字体大小颜色等等,同时还会考虑数据在文档中是如何排版的,是居中显示还是左对齐显示等等。
一个HTML文档,它里面的标签标记数据的时候,不同的标签标记完数据之后,数据的样式也有可能不同,且还会参与到数据的排版,即不同的标签标记同一个数据其排版也可能不同。
而XML文档中的标记仅仅用来修饰数据,而不参与数据究竟如何显示、如何排版。更加关注数据本身和数据与数据之间的结构关系。
提示:对于XML更加关注数据与数据之间的关系这点和我们计算机里的磁盘分区管理文件非常像。
对于windows操作系统来说,首先是“我的电脑”、"我的电脑"下面有C、D、E、F等磁盘分区,然后每个磁盘分区里面又有若干个文件夹,文件夹再嵌套文件夹。而在XML文档中先是根标记,然后下面又是好多的子标记。这一点以后会学到。
XML对文档的格式要求更加严格。
HTML文档格式非常松散,导致了HTML文档解析的复杂性,也造成了游览器兼容的问题,所以XML从一开始,就对文档的格式制定了非常严格的标准,凡是符合这一标准的XML文档就是格式良好的XML文档(Well-Formed XML Documents)
问题1:HTML文档格式非常松散,松散主要指的是什么?
1.对于标签来说,HTML并没有对标签的使用定义什么规范,这里主要是指两个方面。
第一小点标签是否闭合不重要,第二小点、标签是否正确嵌套也不重要。
对于第一小点,
、、等标签是可以直接使用,而加不加闭合标签则无所谓,当然其显示结果可能不是程序员想看到的。首先人为规定是要闭合的,但是语法上没有这里限制,所以不同游览器解析HTML文档的时候对于这类问题的处理方式可能不同。
再看第二小点,在HTML也是被允许的,不会报错,但人为规定是要合理嵌套的。所以能不能达到程序员的预期也就不知道了。
2.在HTML文档中,单标签是不需要闭合的,对于
这类单标签来说,HTML中可以直接
这样使用。这一点在HTML5之前,格式良好的HTML文档是要求写成
这个样子,但是HTML5的时候,直接写成
也被广泛认可了。
3.标签是不区分大小的,但是在使用的时候,人为规定使用小写,但不是语法规定的。
4.所有标签在嵌套使用的时候,不要求一定要严格的符合嵌套的规则(这一点在第一点的第二小点有提到,为了配合问题二里的各个小点,辅助记忆。)但是,人为规定是要进行严格意义的嵌套的。
5.所有属性值都不必须要用双引号或者单引号括起来,但是人为的要求是要写的,而语法上对此没有规定。
6.HTML文档中可以有多个根元素。注意对于HTML文档,通常来说html标签为根元素标签,但是在一个HTML文档中写两个html标签语法上也是可以的。
或者说你可以不写HTML标签直接写类似
注意:HTML语法上虽然限制很少,但是其不严谨的地方都有相应的人为规范,所以要遵循人为的规范,这样做的好处有助于可以在多个游览器中使用,因为游览器中解析HTML文档的时候,由于没有一个严格意义的规范,所以不同的游览器解析同一个HTML文档可能会呈现不同的效果。所以学习严格的人为规范有助于HTML文档在不同游览器之间的扩展性
问题2:XML对文档的格式制定了非常严格的标准,这个标准是什么?
1.开始标签必须要有一个结束标签,例如利用XML自定义了如下成对标签
、<tr、(注意XML是没有定义好的标记的,所有使用的标记都要自己定义)则使用时,
必须这样使用——
…
、…、…,即开始标签必须要有一个结束标签。2.空元素标签必须被关闭。例如对于空元素标签(类似HTML中的单标签)
,在使用的时候必须写成这个样子——
,即空元素标签必须被关闭。当然这里的
也是假定自己定义的。
3.所有的标签都区分大小写
4.所有的标签之间在嵌套使用的时候,必须严格嵌套即…
5.所有标签的属性值都必须用单引号或者双引号括起来。
6.XML有且只能有一个根元素
结合问题1和问题2,就能知道HTML和XML在语法规则上的区别,和何为一个格式良好的XMl文档。即
1.成对标签要闭合
2.空标签也要闭合
3.标签区分大小写
4.嵌套要严格
5.所有属性要用单引号或双引号
6.只有一个根元素
在以后的学习中还会有关于格式良好的XML文档的要求,到时候再补记忆和补充。