dtd约束规则(上)
dtd的快速入门
-
创建一个文件 后缀名 .dtd
步骤:
(1)看xml中有多少个元素 ,有几个元素,在dtd文件中写几个 <!ELEMENT>
(2)判断元素是简单元素还是复杂元素
- 复杂元素:有子元素的元素
<!ELEMENT 元素名称 (子元素)>
- 简单元素:没有子元素
<!ELEMENT 元素名称 (#PCDATA)>
(3)需要在xml文件中引入dtd文件
** 打开xml文件使用浏览器打开的,浏览器只负责校验xml的语法,不负责校验约束
** 如果想要校验xml的约束,需要使用工具(myeclipse工具)
** 打开myeclipse开发工具
*** 创建一个项目 day05
*** 在day05的src目录下面创建一个xml文件和一个dtd文件
*** 当xml中引入dtd文件之后,比如只能出现name age,多写了一个a,会提示出错。
dtd的三种引入方式
(1)引入外部的dtd文件
<!DOCTYPE 根元素名称 SYSTEM "dtd路径">
(2)使用内部的dtd文件
- <!DOCTYPE 根元素名称 [
<!ELEMENT person (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
]>
(3)使用外部的dtd文件(网络上的dtd文件)
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
- 后面学到框架 struts2 使用配置文件 使用 外部的dtd文件
- <!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 元素名称 (子元素)>
-
表示子元素出现的次数
- : 表示一次或者多次
? :表示零次或者一次
- :表示零次或者多次
- : 表示一次或者多次
-
子元素直接使用逗号进行隔开 ,
** 表示元素出现的顺序 -
子元素直接使用|隔开
** 表示元素只能出现其中的任意一个
- 简单元素:没有子元素的元素 <!ELEMENT name (#PCDATA)> *** (#PCDATA): 约束name是字符串类型