XML空间的完整解释
一个只对XML文件结构有一定理解能力的学者不适合初学者,请从上到下依次阅读。
对于HTML文件,空间并不重要;然而,对于XML,默认位置是保持空间节点(空间节点在下面解释)。
根据XML规范的规则,所谓的空格是任意的四个字符序列。
uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d
空间特性(空间),对应的特征值是# X20
返回字符(回车),对应于特征值# XD
换行符(换行),对# XA对应的特征值
跳字(标签),对应于# X9的字符值。
XML文件的空间也将形成一个节点,即一个空间节点。
对于XML和XSLT,空间节点涉及两个问题:
uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d
1、重要的是决定哪些空间在XML输入文件中是重要的,XSLT处理器将看到这些空间节点。
2、在XSL模板文件中决定哪个空间很重要是很重要的,XSLT处理器应该把它复制到结果树中,而键是XSL空间。
和保存空间这两个命令。
重要和不重要的空间节点
uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d
如果只能放置某个内容,那么在此中的空间节点不重要(无关紧要)。
如果某个内容是# PCDATA的类型,在它的空间节点应被视为重要的(重要的)。
内容的内容和内容的情况是不可判定的,应视内容的意义而定。
在XSLT处理器接触到XML输入文件之前,它将由XML分析器进行分析。
uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d
(1)XML空间属性可以改变后续XML应用程序处理空间节点的模式,例如,XSLT处理器受到XML空间属性的影响。
(2)任何一个XML文件或内容的端端一柱柱端将由一个单一的换行字符替换(# Xa)。
(3)在属性值被提交给XML应用程序之前,XML分析器也应该首先对属性值进行规范化操作,这是因为每行不同行的结尾字符有不同的组合。例如,Windows系统将包含返回字符的结束符号、新行字符,而UNIX系统只由新行字符组组成。
在读取XML文件之后,XML解析器首先将所有的终止符号转换成一个新的行字符,这不仅统一了不同系统之间不同的终止符号的差异,而且简化了后续XML应用程序的操作困难,称之为规范化。
一、各列文本结束符号应归到一个单一的新行字符(# Xa)。
B,任何空白字符(# X20,# XD,# XA,# X9)应该用空格代替(# X20)。
C,如果字符引用中包含的属性值,它应该与参考字符,替换为例,# Xa;换行符(# XA)将取代。
d,如果属性值包含一个实体引用,它应该用替换符替换文本。
除此之外,任何字符都应该直接放置在标准化属性值中。
F,最后,如果属性类型不一,那么XML解析器应该进一步在属性值后删除空格字符序列,如果在属性值中的空白序列,它也应该取代单一的空间特征。
在构建XML输入文件和XSL模板文件结构树之后,XSLT处理器将相邻的文本节点合并成单个文本节点,然后提取一些文字节点。
uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d uff0d
(1)文字的节点的父节点是空白保留元素名称的组成员。
(2)单词节点中至少有一个非空格字符。
(3)在文字节点的某个祖先中有一个具有保存值的XML空间属性,而在较近的祖先中没有其他的XML空间属性是默认值。此外,文本节点将被删除。
对于XSL模板,所谓的空间保留名称集只有一个可用的文本。XSL模板文件的空间节点将被删除,但是如果空间节点出现在XSL文本中,它将被保留。