XML DTD

Posted 冬_雪_飘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML DTD相关的知识,希望对你有一定的参考价值。

DTD

Document Type Definition,文档类型定义,

格式良好:满足XML最低规范的

有效:通过DTD验证的文档称为有效

技术分享

文档类型定义

<!DOCTYPE  根 SYSTEM "验证文档.dtd">

外部DTD

技术分享

内部DTD

技术分享

空标记

技术分享

ANY

技术分享

混合元素

技术分享

自定义一般实体

1、DTD如下:

技术分享

2、XML实体定义如下:

高版本浏览器中实体定义方式xml内部

技术分享

属性

格式:

<!ATTLIST  元素名称  属性的名称  数据类型  附加条件>

 

TIP:声明元素的时候,元素的数据类型是PCDATA

       属性的时候,属性的数据类型是CDATA

技术分享

属性的声明

技术分享

/*****************************************************************/

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+)>
<!ELEMENT book (#PCDATA)>
<!ATTLIST book id ID #REQUIRED>
<!ATTLIST book medium CDATA #FIXED ‘纸质‘>
<!ATTLIST book type CDATA ‘计算机‘>
<!ATTLIST book pub (北京大学出版社|工业出版社|邮电出版社) "北京大学出版社">
<!ATTLIST book pagesize CDATA #IMPLIED>

 

<books>
<book id="B001" medium="纸质" pub="工业出版社" type="计算机" pagesize="300"/>
<book id="B002" medium="纸质" pub="工业出版社" type="计算机" pagesize="300"/>
</books>

id必须是字母开头不能以数字开头

/*****************************************************************/

DTD 属性定义: %p 参数实体 就是一般实体前面加 % 

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % p "test">
<!ELEMENT roster ((%p;)+)>
<!ELEMENT %p; (name,sex,birthday,score?,skill+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ELEMENT score (#PCDATA)>
<!ELEMENT skill (#PCDATA)>
<!ATTLIST %p; id ID #REQUIRED>

 xml 

<!DOCTYPE roster SYSTEM "demo11.dtd"[
<!ENTITY % p "teacher">
]>
<roster>
<teacher id="t001">
<name></name>
<sex></sex>
<birthday></birthday>
<skill></skill>
<skill></skill>
</teacher>
</roster>

xml 2

<!DOCTYPE roster SYSTEM "demo11.dtd"[
<!ENTITY % p "student">
]>
<roster>
<student id="s001">
<name></name>
<sex></sex>
<birthday></birthday>
<skill></skill>
</student>
</roster>

以上是关于XML DTD的主要内容,如果未能解决你的问题,请参考以下文章

XML——XML文件约束之DTD详解

XML DTD

XML_03_XML文档类型定义DTD

XML学习总结二——DTD

XML之外部DTD和内部DTD

XML DTD 简介