1、dta的快速入门
*创建一个文件后缀名.dtd
步骤:
(1)看xm1中有多少个元素,有几个元素,在dtd文件中写几个< !ELEMENT>
(2)判断元素是简单元素还是复杂元素
-复杂元素:有子元素的元素
<!ELEMENT元素名称(子元素)>
-简单元素:没有子元素
<! ELEMENT元素名称(#PCDATA) >
(3)需要在xml文件中引入dtd文件
<!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径">
**打开xml文件使用浏览器打开的,浏览器只负责校验xml的语法,不负责校验约束。
2、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">
3、使用dtd定义元素
*语法: <!ELEMENT 元素名 約束>
*筒単元素:没有子元素的元素
<!ELEMENT name l(#PCDATA)>
约束类型: (#PCDATA):约束name是字符串类型
*** EMPTY :元素为空(没有内容) 如:<sex></sex>
*** ANY:任意
*复杂元素:* <!ELEMENT 元素名称(子元素)> 如:< ! ELEMENT person (name, age, sex, school) >
子元素直接使用逗号进行隔开,表示元素出现的顺序 子元素只能出现一次 *
表示子元素出现的次数
+:表示一次或者多次 如:< ! ELEMENT person (name+, age?, sex*, school) >
?:表示零次或者一次
* :表示零次或者多次
子元素直接使用I隔开
**表示元素只能出现其中的任意一个
4、使用dtdt定义属性。
*语法:。<!ATTLIST 元素名称
属性名称 属性类型 属性的约束
>
*属性类型
1、 CDATA: 字符串
< !ATTLIST birthday
ID1 CDATA #REQUIRED >
2、枚举:表示只能在一定的范围内出现值,但是只能每次出现其中的一个 。(红绿灯效果)
** (aa |bb|cc)
- < ! Attlist age
ID2 (AA|BB ICC) #REQUIRED
>
3、ID:值只能是字母或者下划线开头
- < ! ATTLiST name
ID3 ID
#REQUIRED
>
*属性的约束
#REQUIRED: 属性必须存在。
#IMPLIED: 属性可有可无
#FIXEd: 表示一一个固定值 #FIXED "AAA"
-属性的值必须是设置的这个固定值
- <!ATTLIST sex
ID4 CDATA #FIXED "ABC"
>
直接值:不写属性,使用直接值
写了属性,使用设置那个值
- < ! ATTLIST school,
Id5 CDATA "WWW" (如果在xml里写了"AAA"则使用"AAA",否则就使用直接值"WWW"。)
>