为了使得我们定义的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的网站了解具体语法。
为使XML文档有意义,需定义语法并通过专门工具验证其合法性。介绍了两种验证方式,即DTD和XSD。DTD简单直接,可定义元素及隶属关系;XSD更灵活强大,是W3C主推标准,目前多数XML仍用DTD方式。
2575

被折叠的 条评论
为什么被折叠?



