Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4

[XML学习笔记][2.1]XML验证

Posted on 2005-02-19 20:28 laogao 阅读(327) 评论(0)  编辑  收藏 所属分类: On Java

 

为了使得我们定义的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的网站了解具体语法。

 


只有注册用户登录后才能发表评论。


网站导航: