【XML】 DTD 详解

文档类型定义(DTD)

  • 可定义合法的XML文档构建模块 ,它使用一系列合法的元素来定义文档的结构。
  • DTD可被声明于XML文档中,也可做为一个外部引用。

1.在内部声明 :

       如果在内部声明的DTD包含在XML源文件中,它需要通过DOCTYPE语法包装起来进行声明:

格式如下: 

   

<!DOCTYPE 根元素 [元素声明]>

具体例子:

<? xml version="1.0"?>
<! DOCTYPE note 
[
    <!ELEMENT note(to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

2.外部文档声明:

假如DTD位于XML源文件的外部,那么它应该通过下面的语法被封装在一个DOCTYPE定义中: 

格式如下:

<!DOCTYPE 根元素 SYSTEM "文件名">

假如DTD位于XML 源文件的外部,那么需要在最上面引用: 

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

3.为什么要使用DTD:

     1.为了正确交换数据

      2.定义XML文件需要确定的结构

      3.为xml文件提供语法与规则

4.DTD-属性:

   在DTD中,属性通过ATTLIST来进行声明 

   语法: 

           <!ATTLIST 元素名称 属性名称 属性类型 默认值>

    例子:

           

DTD文件中:
   <!ATTLIST payment type CDATA "cash">

XML文件中:
   <payment type="cash"/>

5.DTD-实体

      实体是用于定义引用普通文本或特殊字符的快捷方式的变量

      内部实体声明的语法: 

      

<!ENTITY 实体名称“实体的值”>

例子:

DTD文件中:

<!ENTITY wirte "Bill Gates">

XML文件中:
<author>&writer;</author>

注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。

发布了130 篇原创文章 · 获赞 33 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_30631063/article/details/102779838