文档类型定义(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>
注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。