XML-DTD
DTD即Document Type Definition文档类型定义,规定了XML文档的逻辑结构,可在XML文档中声明,也可作为一个外部引用。通过DTD,我们可以知道XML文档的格式,也可以用来验证所传输数据的格式是否正确。 1、在XML文档内部声明DTD——DTD可以直接在XML文档内部声明,语法格式如下: <!DOCTYPE root-element [element-declaration]>
DOCTYPE:关键字 <?xml version="1.0"?>
<!DOCTYPE family [ <!ELEMENT family (name,address)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> ]>
<family>
<name>Smith</name>
<address>China</address>
</family>
第二行!DOCTYPE family定义此文档为family类型。 2、在XML文档外部声明DTD——DTD还可以在XML文档外部声明,语法格式如下: <!DOCTYPE root-element SYSTEM "dtd_name">
SYSTEM:关键字 <?xml version="1.0"?>
<!DOCTYPE family SYSTEM "family.dtd">
<family>
<name>Smith</name>
<address>China</address>
</family>
外部的family.dtd文档如下: <!ELEMENT family (name,address)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
3、DTD元素声明——DTD元素声明要使用到ELEMENT关键字,从上面的例子中也可以看到,但是有多种不同的形式,下面逐个说明。 <!ELEMENT element_name EMPTY>
使用(#PCDATA)声明元素内容为PCDATA的元素: <!ELEMENT element_name (#PCDATA)>
使用类别关键字ANY声明可包含任何内容的元素: <!ELEMENT element_name ANY>
声明带有子元素的元素(注意保持子元素的声明顺序,子元素也可以有它的子元素): <!ELEMENT father (child1,child2,child3)>
当声明带有子元素的元素时,还可以对子元素进行正则匹配,例如,子元素只出现一次: <!ELEMENT father (child)>
子元素出现零次或一次(使用”?”): <!ELEMENT father (child?)>
子元素出现一次或多次(使用”+”): <!ELEMENT father (child+)>
子元素出现零次或多次(使用”*”): <!ELEMENT father (child*)>
子元素是多个待选子元素中的任意一个(使用”|”): <!ELEMENT father (child1|child2|child3)>
对子元素进行分组(使用”()”): <!ELEMENT father ((child1|child2),(child3|child4)>
上面提到的三个正则匹配符号“?”、“+”和“*”都是针对单个子元素的,还可以对子元素组使用: <!ELEMENT father (child1|child2|child3)*>
4、DTD属性声明——DTD属性声明要使用到ATTLIST关键字,基本格式如下: <!ATTLIST element_name attribute_name attribute_type value>
attribute_type属性类型有以下几个类型: value属性值有以下几种情况: 5、DTD实体声明——DTD实体定义了用来引用普通文本或特殊符号的变量,使用ENTITY关键字,类似于DOCTYPE,可在内部或外部声明。 <!ENTITY name "Smith">
在XML中使用: <family>&name;</family>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |