dtd约束规则(上)
dtd的快速入门
-
创建一个文件 后缀名 .dtd
步骤:
(1)看xml中有多少个元素 ,有几个元素,在dtd文件中写几个 <!ELEMENT>
(2)判断元素是简单元素还是复杂元素
- 复杂元素:有子元素的元素
<!ELEMENT 元素名称 (子元素)>
- 简单元素:没有子元素
<!ELEMENT 元素名称 (#PCDATA)>
(3)需要在xml文件中引入dtd文件
dtd的三种引入方式
(1)引入外部的dtd文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person SYSTEM "test.dtd">
<person>
<name>刘备</name>
<age>22</age>
<sex>男</sex>
</person>
<!ELEMENT person (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
`
(2)使用内部的dtd文件
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE person SYSTEM "test.dtd"> -->
<!DOCTYPE person [
<!ELEMENT person (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
]>
<person>
<name>刘备</name>
<age>22</age>
<sex>男</sex>
</person>
(3)使用外部的dtd文件(网络上的dtd文件)
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
使用dtd定义元素
-
语法: <!ELEMENT 元素名 约束>
-
简单元素:没有子元素的元素
<!ELEMENT name (#PCDATA)>*** (#PCDATA): 约束name是字符串类型
*** EMPTY : 元素为空(没有内容)
*** ANY:任意 -
复杂元素:
<!ELEMENT person (name,age,sex,school)>- <!ELEMENT 元素名称 (子元素)>
-
表示子元素出现的次数
+: 表示一次或者多次
?:表示零次或者一次
*:表示零次或者多次 -
子元素直接使用逗号进行隔开 ,
** 表示元素出现的顺序 -
子元素直接使用|隔开
** 表示元素只能出现其中的任意一个
-