XML - 简明语法
XML
SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD.SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:
1、某些起始标签不允许出现结束标签,例如HTML中标签.包含了结束标签就会出现错误.
2、某些起始标签可以选择性出现结束标签或者隐含了结束标签,例如HTML中标签,当出现另一个标签或者某些其他标签时,便假设在这之前有一个结束标签.
3、某些起始标签要求必须出现结束标签,例如HTML中标签.
4、标签可以以任何顺序嵌套.即使结束标签不按照起始标签的逆序出现也是允许的,例如,Thisisasamplestring是正确的.
5、某些特性要求必须包含值,例如中的src特性.
6、某些特性不要求一定有值,例如[td]中的nowrap特性.
7、定义特性的两边有没有加上双引号都是可以的,所以和都是允许的.
这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务.判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前.以这些问题作为出发点,XML逐渐步入视野.
XML去掉了之前令许多开发人员头疼的SGML的随意语法.在XML中,采用了如下的语法:
8、任何的起始标签都必须有一个结束标签.
9、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签.这种语法是在大于符号之前紧跟一个斜线(/),例如.XML解析器会将其翻译成.
10、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如thisisasamplestring.这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的.
11、所有的特性都必须有值.
12、所有的特性都必须在值的周围加上双引号.
这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作.仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML.XML已经是世界上发展最快的技术之一.它的主要目的是使用文本以结构化的方式来表示数据.在某些方面,XML文件也类似于数据库,提供数据的结构化视图.