02_DTD的引用与其结构

  XML 文档中引入 DTD

       DTD XML 文档的编写者和处理者 提供了共同遵守的规则,为XML文档制定统一的标准,下面让我们来看一个简单的DTD文档的形式

 

<!DOCTYPE user [

<!ELEMENT user (user_id,user_name,user_password,user_message) >

<!ELEMENT user_id (#PCDATA) >

<!ELEMENT user_name (#PCDATA) >

<!ELEMENT user_password (#PCDATA) >

<!ELEMENT user_message (#PCDATA) >

]>

 

很简单 user 是根上的元素,而它包含了 user_id ,user_name 俩个子元素 而这俩个子元素的内容必须是 #PCDATA 也就是 必须是字符。

 

       1 内部DTD

       内部DTD 就是将DTD内容包含在XML文档的内部

 

       2 外部DTD

       外部DTD 是通过外部来引用DTD 在文档类型声明时 SYSTEM PUBLIC 来指出外部DTD 文件的位置。例如

       <!DOCTYPE 根元素名字 SYSTEM “外部DTD文件的URI” >

       <!DOCTYPE user SYSTEM “user.dtd” >

这里要注意 user.dtd 必须和XML文档在同一目录下。

 如果位于不同位置的多个XML想使用同一个DTD 则需要使用绝对URI 来制定DTD 文件地址 假定user.dtd 位于 http://www.rocky.com/xml/dtd/user.dtd

<DOCTYPE user SYSTEM “http://www.rocky.com/xml/dtd/user.dtd” >

如果为了规范管理,个企业代表经过协商制定了DTD 我们则要PUBLIC 关键字来引用这个DTD

<!DOCTYPE 根元素的名字 PUBLIC “DTD的名称” “外部DTD的文件的URI” >

<!DOCTYPE HTML PUBLIC “-//rocky//DTD HR 1.0//ZH  http://www.rocky.com/xml/dtds/hr.dtd >

 

DTD的结构

<!ELEMENT 元素名称 元素内容说明>

 

元素类型声明

              a. #PCDATA:元素包含字符数据

 

              b.子元素 :元素包含子元素

                            例如:<!ELEMENT salary (cash | credit_card) >表明工资必须要有cash credit_card 中的其中一个子元素而 employee( interest* )表示 兴趣可以没有 也可以有多个

 

              c.混合内容:例如<!ELEMENT employee ( #PCDATA | name)* )

你可能感兴趣的:(xml,user,System,文档)