解析XML对代码中的空白处理

所属分类: 网页制作 / XML/XSLT 阅读数: 1647
收藏 0 赞 0 分享

1、在XML规范中,空白包括空格,制表符和空行。在编辑XML文档时,我们常常使用空白来分隔标记,以获得较好的可读性,然而在交互的空白文档中,这些空白就不需要了,但有时候又需要保留这些空白。例如,诗歌和程序代码中的空白,
2、XML处理器总是将文档中不是标记的所有字符都传递给应用程序,一个进行有效性验证的XML处理器会通知应用程序这些字符中的哪一些组成了出现在元素内容中的空白。
3、在XML文档中,可以在元素中使用一个特殊的属性xml:space,来通知应用程序保留此元素中的空白。
4、在有效的文档中,这个属性和其它任何属性一样,在使用时必须声明。Xml:space属性必须被声明为Enumerated(枚举)类型,它的值必须是“default”和“preserve”两者之一,也可两个都取。
例如:
<!ATTLIST poem xml:space (default preserve)’preserve’>
意思是在poem这个元素上声明xml:space这个属性,它的类型是枚举类型,可以取值“default”和“preserve”,且这个属性的默认值是preserve’
<!ATTLIST pre xml:space (preserve)#FIXED ‘preserve’>
意思是在元素pre这个元素上进行声明xml:space属性,类型也是枚举类型,但是它只有一个取值“preserve”,并且用FIXED这个关键字对这个属性进行了缺省声明。声明它有一个默写的缺省值"default"表示对此元素使用应用程序的缺省空白处理模式,‘preserve’指示应用程序保留所有的空白.
5、如果一个元素使用了xml:space属性,将适用于该元素内容中的所有元素,除非被另一个xml:space属性的实例所覆盖。

XML 文档包含两种类型的空白 (a) 有效空白和 (b) 无效空白。下面的例子解释了这两种类型的空白。

有效空白
有效空白通常出现在在元素同时包含文本和标记时。例如:

XML/HTML Code复制内容到剪贴板
  1. <name>TanmayPatil</name>  

XML/HTML Code复制内容到剪贴板
  1. <name>Tanmay Patil</name>  

上面的两个元素是不同的,因为 Tanmay 和 Patil 之间的空白不一样。任何程序读取 XML 文件中的这种元素时都必须保持它们的区别。

无效空白
无效空白意味着只允许在元素内容中出现。例如:

XML/HTML Code复制内容到剪贴板
  1. <address.categoryaddress.category="residence">  

或者

XML/HTML Code复制内容到剪贴板
  1. <address....categoryaddress....category="..residence">  

上面两个例子是一样的。这里,我们通过点号(.)表示空白。在上面的例子中,address 和 category 之间的空白是无效的。

我们还给元素附加一个特殊的属性 xml:space。这表示元素的空白不应该由应用程序移除。我们可以设置这个属性为 default 或者 preserve。正如下面的例子所示:

XML/HTML Code复制内容到剪贴板
  1. <!ATTLIST address xml:space (default|preserve) 'preserve'>  

这里:

值 default 表示这个元素可以接受应用程序的默认空白处理模式。
值 preserve 表示应用程序会保护所有的空白。

更多精彩内容其他人还在看

初学XML的基础知识(认识XML的作用)

“可扩展标记语言”(XML) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型。 XML 使用一组标记来描绘数据元素。每个元素封装可能十分简单也可能十分复杂的数据。您可
收藏 0 赞 0 分享

使用XML实现多渠道接入网站的构架

  其实写这篇文章的目的最多的想法是把自己在去年在瑞士做项目时应用的一个框架给展现出来让大家共享,但我又有点担心我的表达能力不能将我在里面使用的思想很好的表现出来,所以迟迟 不敢下笔,最后还是下了决心,写吧, 不行就在好好改改,当然也希望大家多提些意见。
收藏 0 赞 0 分享

学习XML关于图像超链接的制作

这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址放到<a>的href属性中去,可是这就是在标签中套标签,是不可以的,查了《Web编程实做教程》,才知道正确的解决方案,现在与大家分享。 此段代码运行需要两张图片:a.gif和b.gif。 my
收藏 0 赞 0 分享

Microsoft的XMLHTTP对象介绍

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。 创建XMLHTTP对象的语句如下: Set objXML = CreateObject("Msxml2.XMLHTTP") 或 Set
收藏 0 赞 0 分享

了解WEB页面工具语言XML(六)展望

六、XML展望   任何一项新技术的产生都是有其需求背景的,XML的诞生是在HTML遇到不可克服的困难之后。近年来HTML在许多复杂的Web应用中遇到了问题,要彻底解决这些问题,必须用功能强大的XML来替代HTML作为Web页面的书写工具。XML有利于信息的表达和结构化组
收藏 0 赞 0 分享

了解WEB页面工具语言XML(五)好处

五、XML带来的好处   (1)更有意义的搜索   数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数据都是不同的。有了XML,书就可以很容易以标准的方式按照作者、标题、ISBN序号或其他的标准分
收藏 0 赞 0 分享

用XML将机器内码转换为人们容易理解的信息

  程序中通常会有一些错误代码或标识,为了程序中方便这些东西通常不会使用汉字,经常在程序中用的是一些FileError或数字。还有就是在编码中经常使用的枚举标识对象的状态。而通常这些信息会直接的或间接的现实给用户,可用户需要到的是容易理解的汉字描述。以前要么将这
收藏 0 赞 0 分享

历数Firefox2.0对XML处理的改进

Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进,包括在 RSS Web 提要处理方面有争议的变化。 被赋予新应用程序平台的角色后,现在 Web 浏览器可能是最热门的软件。对于软件开
收藏 0 赞 0 分享

将XML数据转换成HTM

使用一个简单的XSL样式表就可以将XML数据转换成HTML。随着XML规范的不断演进,在新的版本中满足每个人的需要似乎已经成为必要;假设有一个表示一个页面内容的XML数据,现在想将其内容转换成布局。下面是想要转换的XML:
收藏 0 赞 0 分享

(javascript+asp)XML、XSL转换输出HTML

Javascript客户端转换 [code] <html> <body> <script language="javascript"> // Load XML var xml = new ActiveXObject
收藏 0 赞 0 分享
查看更多