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

极客学院   发布时间:2016-02-14 11:33:50   作者:佚名   我要评论
这篇文章主要介绍了XML对代码中的空白处理,文中介绍到了XML书写中的有效空白与无效空白的区分,需要的朋友可以参考下

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中的字符实体与字符数据,文中所说的CDATA片段即是指字符数据即不由解析器解析的文本块,需要的朋友可以参考下
    2016-02-14
  • 详解XML中的代码注释书写方法

    这篇文章主要介绍了详解XML中的代码注释书写方法,文章中总结了注释使用的一些注意点,比如XML不支持嵌套注释等,需要的朋友可以参考下
    2016-02-14
  • XML中的属性学习教程

    这篇文章主要介绍了XML中的属性学习教程,包括使用属性将数据存储在子元素中的例子,需要的朋友可以参考下
    2016-02-14
  • 详解XML中的标签与元素的使用

    这篇文章主要介绍了XML中的标签与元素的使用,是XML入门学习中的基础知识,需要的朋友可以参考下
    2016-02-14
  • MSXML分析程序 V6.0 官方免费安装版 64位

    MSXML 6.0 SP1 旨在为现有 MSXML 6.0、MSXML 3 和 MSXML 4 提供升级途径,有需要的朋友们可以过来看看
    2016-02-05
  • 详解XML中的文档与声明用法

    这篇文章主要介绍了XML中的文档与声明用法,是XML入门学习中的基础知识,需要的朋友可以参考下
    2016-02-04
  • XML标记语言的基本概念及语法入门教程

    这篇文章主要介绍了XML标记语言的基本概念及语法入门教程,XML同时也被广泛用作标记数据来作为XML数据交换格式,需要的朋友可以参考下
    2016-02-04
  • WPS2016文档怎么保存为XML格式?

    WPS2016文档怎么保存为XML格式?wps默认的伯村格式是.doc,但是有的时候,必须使用xml格式的文件,该怎么把WPS的doc格式另存为xml格式呢?下面我们来看看详细教程
    2015-11-05
  • 批量导入XML数据到drupal系统的方法

    这篇文章主要为大家介绍了批量导入XML数据到drupal系统的方法,主要通过一个XML文件导入类来实现这一功能,是非常实用的技巧,需要的朋友可以参考下
    2014-11-10
  • js+flash+xml实现图片3D分裂切换效果源码

    这是一款基于js+flash+xml实现的3D图像切换效果源码,当鼠标悬停的时候,显示左右箭头、进度条、和感叹号(点击实现翻转效果,可做图片解释说明时用)。图片和flash分开,如
    2014-10-22

最新评论