xml|语法
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
以及“张三”前的文字缩排符号)。所以解析器在去掉标记后将信息传给应用程序将有不同的处理结果。
如果我们想明确地告诉XML程序,标记中的空白有明确的含义,不要随便去掉(如在一些诗中,空格有它具体的意
义),则可在标记中加入一个XML内置的属性——xml:space 。如(注意属性名称和值的大小写):
〈诗歌 xml:space="preserver"〉
祖国啊! 祖国!
我的祖国!
〈/诗歌〉
另外,在XML文件中,如果要用到表1的特殊字符,必须用相应符号代替。
表1 特殊字符 替代符号
&& &
< ⁢
> >
" "
' '
在此做个小结:符合上述规定的XML文件就是Well-Formed的XML文件。这是编写XML文件的最基本要求。可以看到XML文
件的语法规定比HTML要严格多了。由于有这样的严格规定,软件工程师编写XML的解析器就容易多了,不像编写HTML语言的
解析器,必须费尽心思去适应不同的网页写法,提高自己浏览器的适应能力。实际上,这对于我们初学者来说,也是一件
好事。该怎样就怎样,不必像原来那样去疑惑各种HTML的写法。
我们看到,在XML文件中,用的大多都是自定义的标记。但是大家考虑一下,如果两个同行业的公司A和B要用XML文件
相互交换数据,A公司用〈价格〉标记来表示他们产品的价格信息,而B公司可能用〈售价〉来表示价格信息。如果一个XML
应用程序来读取他们各自的XML文件中的信息时,如果它只知道〈价格〉标记里表示的是价格信息,那么B公司的价格信息
就读不出来,必将产生错误。显然,对于想利用XML文件来交换信息的实体来说,他们之间必须有一个约定——即编写XML
文件可以用哪些标记,母元素中能够包括哪些子元素,各个元素出现的顺序,元素中的属性怎样定义等。这样他们在用XML
交换数据时才能够畅通无阻。这种约定称为DTD(Document Type Definition,文档格式定义)。可以把DTD看作编写XML文
件的模板。对于同行业之间的XML数据交换,有一个固定的DTD将会方便很多。比如说,如果网上的各大电子商场的XML网页
都遵循同一个DTD时,那么我们就可以轻松地依据这个DTD 编写一个应用程序,去网上将我们感兴趣的东西自动抓回来。事
实上已经有了好几个定义好的DTD,如前面所说的MathML、SMIL等。
如果一个XML文件是Well-Formed的,并且它是正确的依据某个DTD建立的,那么,这个XML文件就被称为:Validating
XML文件。相应的解析器就称为:Validating Parser。