文档类型定义(DTD)是事实上的XML文档定义和验证管理机制。不幸的是,DTD没有提供足够健壮的特性来满足许多XML应用的需求。为了弥补这个空缺,环球网协会(W3C)开发了XML Schema规范。我们将研究一下XML Schema是什么和使用Altova的XML Spy工具如何轻松的创建它。
XML Schema
XML Schema在数据验证比DTD所允许的要严格一些的情形下通常是优选。DTD根据结构来描述有效的XML文档,在内容方面,它的扩展很有限。
另一个DTD的缺点在于它使用了专门的语法来描述文档类型。然而DTD语法不是火箭科学,XMLSchema通过提供XML的语法来描述XML的文档类型改进了这个过程。
XML Schema允许详细说明DTD所不能够办到的许多事情。例如,在DTD里,仅仅只有少数几种方式指示一个元素预期将会出现的次数。
DTD允许指定某个条目在文档中仅出现一次或者出现零次或多次。DTD不能某个元素在文档中恰好应该出现四次。使用XML Schema,你可以要求一个元素在文档中出现的次数不少于三次,但是不能多于八次。例如,你也许希望包含对地址参数的支持,它至少有一个AddressLine元素,但是不能多于三个(因为你的传统数据库不支持这个)。XML Schema可以处理这种类型的验证。
XML Spy
XML Spy是创建和修改XML文档,DTD,XML Schema甚至SOAP事务的一个功能强大的工具。在XML Spy的一些特性中,它从XML文档生成DTD和Schema的能力,以及从DTD转换为Schema和反向转换的能力最受欢迎。因为XML Spy处理了所有的工作,从已有的XML文档生成新的Schema是很容易的一件事情。
XML文档
你需要一个XML文档作为开始。我们的例子使用了一个简单的文档,它包含了一个客户名字,帐号和地址:
<Customer><AccountNumber>123456</AccountNumber>
<Address>
<AddressLine>900 N. MichiganAve.</AddressLine>
<AddressLine>Suite2599</AddressLine>
<City>Chicago</City>
<State>IL</State>
<Zip>60612</Zip>
</Address>
</Customer>
我们首先在XML Spy中打开它。你可以使用XML Spy增强的栅格视窗很容易的操作XML数据。