网络编程
位置:首页>> 网络编程>> XML编程>> Thinking XML: 创建 XML 的好建议(3)

Thinking XML: 创建 XML 的好建议(3)

 来源:互联网 发布时间:2008-05-29 11:25:00 

标签:

Henri 关于 Unicode 和字符处理的建议基本上是完全正确的。不过我认为“Avoid adding pretty-printing white space in character data”一节有点夸大其词。多数情况下,元素之间而不是带有字符数据的元素内部的精细打印是安全的。如 Henri 所述,清单 1 所示的如果以清单 2 的形式呈现通常是不安全的。

清单 1. XML 例子

<foo>bar</foo>

清单 2. 在字符数据中增加空白后的 XML 例子

<foo>
 bar
</foo>

但通常以清单 3 的形式打印 XML 是安全的,输出结果如清单 4 所示。

清单 3. 另一个 XML 例子


<doc><foo>bar</foo></doc>


清单 4. 清单 3 中的 XML 在字符数据中增加了空格

<doc>
 <foo>bar</foo>
</doc>

很多 XML 序列化工具能够理解相对安全和不安全的的打印格式。必须知道的是,如果在混合内容中增加空格,则清单 3 和 4 中所示的精细打印形式可能造成扭曲。如果使用模式制导的序列化,则可以避免这类问题。但在实践中,使用混合内容的多数词汇表对空白规范化没有这么敏感,因此不用过于担心精细打印。应该充分了解该问题,并知道没有办法关闭精细打印(最好默认不用精细打印)。Henri 提出了清单 5 所示的精细打印实践,但是我不同意,因为我认为那些难看的标记不容易理解。

清单 5. Henri Sivonen 建议但本文作者不同意的精细打印方式

<foo
>bar</foo
>

修道院的建议

现在换换档,本文要探讨的第二篇资料是 Simon St. Laurent 撰写的&ldquo;Monastic XML&rdquo;(请参阅参考资料)。这是一组小短文,围绕着如何充分利用 XML 而就处理和思考 XML 提出了一些建议。Simon 使用修道院和禁欲主义作为比喻,提出为 XML 增加不适应其简单文本根 (textual root) 的过多负担是危险的。 在&ldquo;Marking-up at the foundation&rdquo;中,他讨论了字符数据和标记(元素和属性)的本质作用。在&ldquo;Naming things and reading names&rdquo;中,他解释了为何一般标识符(也称为元素类型名)是一个重要的概念,应该作为标记信息结构的惟一关键成分。理想情况下,如果使用 XML 名称空间,关键就是统一名称(名称空间 URI 加上本地名),这种复杂化就是 Simon 在&ldquo;Namespaces as opportunity&rdquo;中厉声疾呼的原因之一。&ldquo;Accepting the discipline of trees&rdquo;揭示了 XML 一个不幸的秘密:尽管看起来 XML 的层次结构很容易扩展成图形结构,但实践证明用 XML 建模图有点困难。但目前为止,&ldquo;Monastic XML&rdquo;网站上最重要的建议是&ldquo;优化标记的处理总是不成熟&rdquo;。XML 是一种声明性技术,对很多开发人员来说,关于它的强大和不足有很多不实之词。那些尽量把 XML 设计和处理细节拉近的开发人员,从长期来看,通常使得处理更加困难。XML 成功的关键是关注需要抽象表示的信息的特点,将它与需要处理这些信息的系统的技术设计分离开来。


结束语

讨论 XML 最佳实践时总是有一些不同的观点,特别是在初期阶段,但听到不同的声音是一件好事。关于这个话题的参考资料很少,我将继续在本专栏中讨论它。如果对最佳实践有什么资料或者建议或者希望分享您的观点,请参加 Thinking XML 论坛上的讨论。

0
投稿

猜你喜欢

  • 下面发一个简单的在线调试服务端js代码的asp源码。并可以提示代码具体错误信息。<%@language="javascrip
  • 在 Google 搜索结果页面中,将其 Logo 图标右键另存为后可以发现,它并非单纯的 
  • 要实现的SQL查询很原始:要求从第一个表进行查询得到第二个表格式的数据,上网查询之后竟然能写出下面的SQL:代码如下:select * fr
  • 本文总结了ASP初学者常犯的几个错误,希望对asp学习者有所帮助!1.记录集关闭之前再次打开:-----------------------
  • 一.链接打开方式1、新窗口打开优点:用户点链接的时候,当前浏览的内容不会被替换,不需要通过前进、后退去看自己看过的内容;缺点:访问一会,就会
  • 相信互联网的从业者都有同一个顾虑,那就是怎样将自己网站的用户牢牢抓住。如果以用户的角度来讲,任何网站其实都是一样的,都是我获取东西、获取服务
  • 建立资料表:Step1首先开启phpmyadmin,进入wordpress资料库中,并新增一个wp_gbook的资料表与栏位数目8。Step
  • 一、简化代码采用更为简短的写法,不仅可以减少输入的字符数,还可以减少文件大小。大部分采用简单写法的代码,执行效率都有轻微提高。1.1&nbs
  • Frontpage中的回车键有三种:enter、shift+enter、ctrl+enter。enter键对应于HTML中的<p>
  • 中文字体设计发展到现在,风格越来越多样化,特别是在广告(美术)字体方面,因为字数少 局限小,优秀的作品层出不穷,比较突出的应用在标志设计唱片
  • 问题:1. 访问 ASP 页面时,出现以下错误:Active Server Pages 错误 'ASP 0201'错误无效的
  • Photoshop Express,也就是传说中的web版photoshop,来了。和想象中的web photoshop相比,这个Photo
  • javascript上下滑动广告效果 参数说明:客服果果(           
  • 一、垃圾还是经典网页技术更新很快,一个网站的界面设计寿命仅仅2-3年而已。不管是垃圾还是精品,都没有所谓的经典。经典只存在于是哪个首次成功创
  • 原文:http://blog.rexsong.com/?p=746#comments加速的关键,不是降低重量,而是减少个数。如果重量在200
  • 很多时候,设计师们都会通过各种渠道去了解用户的需求,然而从这些渠道反馈回来的信息大部分只是用户的期望并不是真正的用户需求,但是很多时候这些期
  • 众所周知当前(甚至接下来的几年)最酷的东西是iPhone。不仅仅是因为iPhone看起来不错,它们在网站方面也很不错。而且,更重要的是,很多
  • 三遍记忆,让你记住海量素材的准确位置和用途,提高其可用性.这仅仅是一个示意图.在以往的日子里,我做到了只要脑袋里冒出一个想法,立刻就能知道我
  • 首先,把这个“功能”包含到页首:<!--#include virtual="/readini/inifile.in
  • 你一定很熟悉Youtube了,知道它是一个视频分享网站。是的,youtube目前十分流行,你也许会常常访问。这里有一些关于youtube u
手机版 网络编程 asp之家 www.aspxhome.com