xml之dtd约束
xml约束的技术:主要有dtd约束和schema约束(面试题)
本次为dtd约束.
dtd快速入门
- dtd文件后缀为 dtd
- 看xml有多少个元素(标签),有几个元素(标签),就写几个<!ELEMENT>(大写)
- 看是复杂元素还是简单元素,
复杂元素:拥有子元素
* 格式:<!ELEMENT 元素名称 (子元素)>
* 注意:中间必须要用空格
简单元素:
* <!ELEMENT 元素名称 (#PCDATA)>
* 注意:中间必须要用空格
代码:
dtd 的三种引入方式
-
引入外部文件:
-格式:
< !DOCTYPE 根元素名称 SYSTEM “dtd路径”>
上面写的代码为第一种, -
引入内部文件:
说明:
-<!DOCTYDP 根元素名称 [ <!ELEMENT 复杂元素名称 (子元素名称)>
<!ELEMENT 简单元素 (#PCDATA)>
]>
-代码:
-
使用外部的dtd文件
-<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件URL">
dtd定义元素
语法: <!ELEMENT 元素名称 约束>
- 简单元素
-(#PCDATA):约束的是字符串
-EMPTY :约束元素为空
-ANY : 任意,
-
复杂元素
--复杂元素主要约束子元素出现的个数 + : 表示一次或多次 ? : 表示出现零次或一次 * : 表示零次或多次
使用dtd约束属性
-
语法 : <!ATTLTST 元素名称 属性名称 属性类型 属性约束>
-
属性类型 :
- CDATA : 字符串
- 枚举 : 格式:(值|值|…|值),表示只能在一定的范围内出现的值,但是,每次只能出现一次,例如:性别;红,绿灯效果,
- ID : 值只能是字母或者下划线, -
属性的约束
- #PEQUIRED : 属性必须存在,不然就会报错,
- #IMPLIED : 属性可有可无
- #FIXED : 属性只能是一个固定的值 -
代码:
其他约束,自己写写
实体定义:
-
语法:
<!ENTITY 实体名称 "值"> -
使用说明: &实体名称; ** (有;**)
-
代码:
-
运行结果
注意:
这一行代码必须写在第一行第一列 -
说明:
- version:表示xml的版本,1.0(常用),1.1(不可以向下兼容,使用比较少)
- encoding: xml编码方式: gdk,utf-8,iso8859-1(不包含中文),
- 注意乱码问题,保存时候的编码和打开的编码保持一致,解决乱码问题