典型格式要解决的的中心问题是在XML文档中依据句法而出现的差异。比如,以下两句是等效的。
<MyTag/>
<MyTag></MyTag>
你可以看到,它们看起来不一样,但是表达了同样的信息。即MyTag标记没有属性,没有内容,也没有子元素。在所有XML语法中,这种例子还很多,语法上允许,但是很难明白他们逻辑上是在表达相同的东西。
为了表达清晰,为XML文档建立一个物理表示标准很重要。方法就是创建典型XML文档。典型格式明确了标准和限制条件。当然,所有的典型格式的XML文档仍然是XML文档,但是所有的XML文档就不一定是典型格式的XML文档。
定义标准普通的XML文档和典型格式的XML文档,在规则上是有差异的。这些规则于2001年3月由W3C组织在典型格式的XML建议书中提出。以下部分将介绍这些规则。
Unicode Transformation Format (UTF)编码用来定义解释XML文档的方法字符集。一般来说,XML文档可以使用各种字符集。但是典型格式XML指定使用UTF。抛开细节讲,UTF是允许多位八进制字符的编码。UTF同时支持非标准ASCII码和标准ASCII码。
在典型格式XML中,空元素被转换成正确的有开始和结束标记的tag。另外,在开始和结束标记内,多余的空格会被去掉。元素属性会按照字典顺序排列。请参看下例:
<MyElement value="test1" type="status" decimal="2.0"/>
上面的片段转换后:
<MyElement decimal="2.0" type="status" value="test1">
</MyElement>