您的位置:首页 > 其它

DTD详解2 及DTD和XML之间的关系

2013-03-19 21:33 429 查看
Enumerated 枚举

<!ATTLIST person

婚姻状态(single|married|divorced|widowed)#IMPLED>

<!ATTLIST person 性别(男|女)#REQUIRED>

属性特点 #REQUIRED

元素的所有实例都必须有该属性的值(NOT NULL)

<!ATTLIST> 元素名 属性名 属性类型 #REQUIRED>

DTD示例

<!ATTLIST person number CDATA #REQUIRED>

XML示例

<person number = "5677"/>

#IMPLIED 可以忽略属性

#FIXED value 元素实例中该属性的值必须为指定的固定值。

Default value为属性提供一个属性值。

实体类型:普通实体,外部实体,参数实体,外部参数实体。

普通实体定义在XML中,参数实体定义在DTD中。

<!ENTITY a "http://www.baidu.com/xml.xml">

&a;

<!ENTITY a SYSTEM "http://www.baidu.com/xml.xml">

&a;

关于普通实体与参数实体。

普通实体在DTD中定义,XML中使用,使用时候的格式为:&address。

参数实体在DTD中定义,DTD中使用,定义时使用%,使用的时候也需要使用%,使用时也需要%,%address。

普通外部实体的定义方式是:

<!ENTITY address SYSTEM "http://baidu.com/xml.xml">

表示使用http://baidu.com/xml.xml网址的内容来替换address,而不是使用http://baidu.com/xml.xml字符串本身来替换掉address。

外部参数实体:

<!ENTITY % address SYSTEM "http://baidu.com/xml.xml">

表示使用http://baidu.com/xml.xml网址的内容来替换%address,而不是使用http://baidu.com/xml.xml字符串本身来替换掉%address.

DTD文档:dtd_3.dtd

<!ELEMENT NEWSPAPER(APTICLE+)>

<!ELEMENT ARTICLE (HEADLINE,BYLINE,BODY,NOTES)>

<!ELEMENT HEADLINE(#PCDATA)>

<!ELEMENT BYLINE(#PCDATA>

<!ELEMENT LEAD(#PCDATA>

<!ELEMENT BODY(#PCDATA)>

<!ELEMENT NOTES(#PCDATA)>

<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>

<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>

<!ATTLIST ARTICLE DATE CDATA #IMPLIED>

<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>

对应的XML 实例:dtd_4.xml

<?xml version="1.0" enconding="UTF_8"?>

<!DOCTYPE NEWSPAPER SYSTEM "dtd_3.dtd">

<NEWSPAPER>

<ARTICLE AUTHOR="mingming" DATE="2013-3-19" EDITOR="helloworld" >

<HEADLINE>hello</HEADLINE>

<BYLINE/>

<LEAD/>

<BODY/>

<NOTES/>

</ARTICLE>

</NEWSPAPER>

分析XML:dtd_5.xml

<?xml version="1.0" encoding = "UTF-8"?>

<!DOCTYPE 学生名册 SYSTEM "dtd_4.dtd">

<学生名册>

<学生 学号="t1">

<姓名>张三</姓名>

<性别>男</性别>

<年龄>20</年龄>

</学生>

<学生 学号="t2">

<姓名>李四</姓名>

<性别>女</性别>

<年龄>19</年龄>

</学生>

<学生 学号="t3">

<姓名>王二</姓名>

<性别>男</性别>

<年龄>21</年龄>

</学生>

</学生名册>

DTD文档:dtd_4.dtd

<!ELEMENT 学生名册(学生+)>

<!ELEMENT 学生(姓名,性别,年龄)>

<!ELEMENT 姓名 (#PCDATA)>

<!ELEMENT 性别 (#PCDATA)>

<!ELEMENT 年龄 (#PCDATA)>

<!ATTLIST 学生 学号 ID #REQUIRED>

命名空间(Namespace)

XML元素的名字是不固定的当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,就会发生命名冲突。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: