在XML文档中,注释可以出现在其他标记之外的任何位置,另外,它们还可以在文档类型声明中语法允许的地方出现。
分析:注释可以出现在其他标记之外的任何位置。即标记内部是不允许出现注释的。
例如:
可以出现注释<content(不可以)>可以出现注释</content(不可以)>可以出现注释
允许在文档类型中语法允许的地方出现
例如:
可以出现注释<!ELEMENT content "#PCDATA"(不可以)>可以出现注释
XML的注释和HTML的注释类似都是以小于号<、感叹号!、双连字符–
都是以双连字符–、大于号结束
再注释开始符和注释结束符之间可以写注释的内容
注释用于对文档中的内容起一个说明作用。使用注释时,要注意以下五点:
1、注释不能出现在XML声明之前,XML声明必须是文档最前面的部分。下面情况是不允许的:
注释语句//注释不可以出现在xml声明之前
<?xml verson = "1.0"? > 2、注释不能出现在标记中 3、注释中可以包括和隐藏标记,但是要注意,在注释掉标记之后,新的文本仍然是一个结构完整的xml文档。 4、字符串“--”(双联字符)不能在注释中出现。 5、在XML中,不允许注释以--->结尾。 因为在注释中不允许出现双联字符"--",对于字符串"--->"是无法区分该字符是字符"-"和注释结束符"-->"的组合,还是双连字符"--"和字符"->"组合。 处理指令 -- 处理指令(Processing instructions, 简称Pis)允许文档中包含由应用程序来处理的指令。在XML文档中,有可能会包含一些非XML格式的数据,这些数据XML处理器无法处理,我们就可以通过处理指令来通知其它应用程序来处理这些数据。 分析: 允许文档中包含由应用程序来处理的指令。 简单来说文档中有一种指令,这种指令的作用是通知应用程序来处理XML文档中的某些内容。 在XML文档中,有可能会包含一些非XML格式的数据,这些数据XMl处理器无法处理,我们就可以通过处理指令来通知其它应用程序来处理这些数据。 在XML文档中,哪些是非XML格式的数据? 这里可以拿HTML举例,对于一个html文档来说,面除了有html标签之外,还有css样式和javascript代码。这些内容光靠处理html的处理器是无法实现的,必须要有处理css样式和javascript代码功能的处理器。 个人理解,对于一个网页来说,是由html、css、js相互配合写成在游览器中运行的,所以游览器中肯定是包含了处理html、css、js这三种代码的处理器的。 个人理解,在XML文档中肯定也是包含有类似数据的,一般的XML处理器只能处理XML格式内容,所以需要通过处理指令来指示外部应用程序来处理XML文档中非XML格式的字符数据。 如何将这些数据通过处理指令来通知应用程序对其进行处理。? 处理指令的作用:通知相关程序来处理XML文档中无法由XML处理器处理的非XML格式的数据。处理指令也就相当于在非XML格式数据和相应的处理程序之间建立了联系。处理指令也就是用来通知相关应用程序来处理XML文档中的非XML格式数据。 处理指令(PI)的语法和XML声明类似,以"<?"开始,以"?>"结束。
一个常见的使用样式表单的处理指令如下所示:
<?xml-stylesheet href = "hello.css" type = "text/css"?>
要注意的是,对于其他的非W3C定义的处理指令不能以字符串“XML”和“xml”开头;
其余的部分是传递给应用程序的字符数据。
应用程序从处理指令中取得目标和数据,进行相应的处理。
分析(个人理解)
“xml-stylesheet”叫做处理指令的目标。
“xml-stylesheet”是一个通用标识符,大多数应用程序都能识别,识别该标识符的应用程序就会对其进行相应的处理。个人理解该类应用程序包含在XML处理程序之中。
其余的部分是传递给应用程序的字符数据。
对于本例来说,href="hello.css"和 type="text/css"就是要传递给应用程序的字符数据。 处理这些数据的应用程序的名字为“xml-stylesheet”。
由于处理指令就是用来调用应用程序来处理XML文档中的非XML格式的字符数据的,所以除了要指定处理该类字符数据的应用程序之外,还要指明处理的是XML文档中哪段非XML格式字符数据。
对于本例来说,要处理的非XML格式的字符数据为样式表单hello.css。而type="text/css"的作用是用来描述该样式表单的,说明该样式表单hello.css中的字符数据为text文本,内容是一段css代码。
由于“xml-stylesheet”是调用处理“样式表单”的应用程序,那么hello.css就是将要被处理的“样式表单”,type="text/css"是该样式表单的文本说明,为text字符文本,内容是css的代码。
总结下处理指令<?"xml-stylesheet" href="hello.css" type="text/css"?>的含义是,通过该处理指令,通知能识别标识符为xml-stylesheet的应用程序,来处理XML文档中的样式表单hello.css,该样式表单的数据内容为text文本,代码为css代码。
而且该例中的样式表单不是直接在XML文档中定义的,而是引用外部的样式表单文件——文件名为hello.css
个人理解,对于一个XML文档来说,是需要XML处理器对其进行解析和处理的。但是由于XML文档中不仅仅有XML格式的字符数据,还可能包含非XML格式的字符数据。所以对于一个XML处理程序来说,不仅仅要有处理XML文档格式数据的能力,还应该具备处理常用的非XML文档格式数据的能力。
所以,个人分析XML处理程序包含XML处理器和其他应用程序,而其他应用程序就是用来处理常用的非XML格式数据的。
个人感觉对于常用的非XML格式的字符数据,使用的就是类似xml-stylesheet这类的通用标识符,这样应用程序就可以通过通用标识符来对非XML格式的字符数据进行相应的处理。
处理指令的作用是通知应用程序来处理XML文档中的非XML格式数据。首先通过处理指令的目标指明需要使用的应用程序,同时还要传递给应用程序需要处理的字符数据。
处理指令的目标可以有两种方式来指明所需的应用程序。
第一种,使用应用程序的名字。
第二种是通过大多数程序可以识别的通用标识符。
先看第一种,通过应用程序的名字。通过程序的名字可以很轻易地调用相应的应用程序,但是传递给该应用程序所需的字符数据,可能不是应用程序可以识别的。(简单来说把一段C程序传给Java的编译器进行编译显然是无法成功的)
再看第二种大多数程序可以识别的标识符,那么对于不识别该标识的应用程序肯定是不会响应该处理指令的,即使是能识别该标识符的程序,由于传递给改程序的数据不正确,那么该应用程序也是无法进行处理。
所以,个人感觉为了使得XML文档运行的更加良好,所以对于不认识的处理指令,大多数应用程序采用忽略的方式进行处理。
xml-stylesheet处理指令总是放在XML声明之后,第一个元素之前。其他处理指令可以放在除标内部和XML声明之前的任何位置。
注意:虽然XML声明和处理指令的语法十分相似,但XML声明并不是处理指令,XML处理程序对XML声明和处理指令采取的是不同的处理方式。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12125.html