为了使得我们定义的XML文档有意义,我们通常必须为它定义一组语法,如:这个文档应该包含那种类型的数据,这种数据的层次结构又是怎样的,等等。这样我们的XML文档就可以通过专门的工具来验证其合法性。
有两种方式:I- DTD (document type definition); II- XSD (XML Schema definition),我们分别来看一下。
DTD比较简单和直截了当,它可以很容易的定义元素和元素之间的隶属关系,如:
<!ELEMENT customer-repository (customer+)><!ELEMENT customer (name, register-date, visits)><!ATTLIST customer index ID #REQUIRED><!ELEMENT name (#PCDATA)><!ATTLIST name first-name CDATA #REQUIRED last-name CDATA #REQUIRED><!ELEMENT register-date (#CDATA)><!ELEMENT visits (#CDATA)><!ELEMENT>用于定义元素,同时可以定义该元素是否包含其他元素,<!ATTLIST>用于定义元素的属性,具体的语法可以参考http://www.w3c.org/xml/ 上的文档。为了把我们的XML文档和上面定义的语法联系到一起,我们需要在XML中加入这样一行代码:
<!DOCTYPE customer-repository SYSTEM "customer-repository.dtd">与DTD类似,XSD也是通过一些规则来定义一类XML的语法,它比DTD更加灵活,也更加强大,是目前W3C主推的XML验证标准。它通过一些命名空间已经定义好的元素类型来定义我们的XML语法,如:
<xsd:element name="visits" type="xsd:decimal" />这里的xsd就是我们要用到的名字空间。由于目前大部分的XML还都是使用DTD的方式,对XSD的了解就到这里吧。有兴趣的可以去W3C的网站了解具体语法。