DTD简单使用

Posted Joshua

tags:

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

DTD:Document Type Definition

  DTD是一种简单的XML约束模式语言

  DTD文档必须以utf-8或unicode编码

  注释方式与html、XML文档相同

 

DTD文档的引用:紧跟XML声明语句之后,有两种方式(外部引入及内部嵌入)

<?xml ... standalone="no"?>
<!
DOCTYPE ...>

外部引入DTD方式:

有如下两种引用方式:第一种方式为引用本地DTD文件,第二种为公共DTD文件方式(doctype-name一般使用根元素命名)

1 <!DOCTYPE doctype-name SYSTEM "dtd-url">
2 <!DOCTYPE doctype-name  PUBLIC "dtd-name" "dtd-url">

内部嵌入DTD方式:

1 <!DOCTYPE doctype-name [
2    ... ... 
3 ]>

 

 

一个简单的DTD文档如下:

1 <!ELEMENT bookshelf(book+)>
2     <!ELEMENT book(name,author,price)>
3         <!ELEMENT name(#PCDATA)>
4         <!ELEMENT author(#PCDATA)>
5         <!ELEMENT price(#PCDATA)>

 

DTD元素定义:<!ELEMENT 元素名称 使用规则>

使用规则如下:

EMPTY: 定义空元素

ANY: 任何形式

(#PCDATA): 普通文本

(<ELE1> <ELE2> <ELE3> ...): 无序元素组

(<ELE1>,<ELE2>,<ELE3> ...): 有序元素组(要求子元素必须以<ELE1>、<ELE2>、<ELE3>...的顺序出现)

(<ELE1>|<ELE2>|<ELE3> ...): 仅一个元素

其中后三种中元素后可以添加通配符(+:出现一次或多次;?:出现0次或一次;*:0或多次;什么都没有表示有且仅有一次)

 

如:<!ELEMENT MYFILE ((TITLE*, AUTHOR?,EMAIL)*|COMMENT)>

 

DTD属性定义:

<!ATTLIST 元素名称

Att1 属性类型 设置说明

...

>

属性类型如下:

CDATA:字符串

ENUMERATED

ID

...

设置说明如下:

#REQUIRED: 必须设置

#IMPLIED: 可有可无

#FIXED "fixed": 固定值

"default":设置默认值

 

如:<!ATTLIST Meat kind(chicken|beaf|fish|...) "fish">

 

DTD实体定义:<!ENTITY 实体名 "内容">

 

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

创建自己的代码片段(CodeSnippet)

为啥这段代码会泄露? (简单的代码片段)

简单的jquery代码实现表单验证

如何使用Android片段管理器传递变量[重复]

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

代码片段 - Golang 实现简单的 Web 服务器