XML约束文件---DTD文件

xml实现约束规则校验的两种方法:

1:直接用myeclipse/eclipse进行校验

实现方法:将xml文件和dtd文件同时放在一个文件夹中,eclipse会直接提示出错项

2:浏览器校验

实现方法:由于浏览器默认对dtd校验是关闭的,编写html文件载入相应的JavaScript代码对xml和dtd约束条件进行加载,编写js代码在页面上进行校验信息的显示。

Js代码示例如下:
这里写图片描述

dtd的引入方法:

1.外部引入:

举例:在xml文件中引入dtd文件:
这里写图片描述

dtd文件:
这里写图片描述

注意:文件后缀必须为“ .dtd ” ,并且文件必须用 utf-8 编码格式保存

两种引用格式:

本地引用格式<!DOCTYPE 根元素名称 SYSTEM 文件的位置>
dtd在当前文件的系统中,后面指定的文件位置是当前硬盘中的位置

网络引用格式<!DOCTYPE 文档根节点 PUBLIC “DTD名称” “DTD文件的URL”>
引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址

2.内部引入:

直接将dtd规则写在xml文件中

<!DOCTYPE 根元素名称[
    dtd约束。。。
] >

形式如下图所示:
这里写图片描述

2.dtd语法—要求能看的懂就行

(1)元素

<!ELEMENT 元素名称 元素约束>

元素约束:

  • 存放类型:ANY/EMPTY
  • 元素约束:子元素的列表,将可以包含的子元素用小括号括起来

    子元素之间使用逗号“,”进行分割:子元素必须按照顺序出现

    使用竖线“|”进行分割,子元素只能出现其中的一个

    #PCDATA表明包含标签体

出现次数表示:

  • +: 表示出现1次或者多次
  • *: 0次或者多次
  • ?: 0次或1次
    也可以使用小括号()进行组的操作

(2)属性

<!ATTLIST 元素名
    属性名 属性类型 属性约束
    属性名2 属性类型 属性约束
    ……
>

属性类型:

  • CDATA:表示属性的值是一个普通字符串
  • ENUMERTATED:属性的值是一个枚举列表中的值
  • ID:表明属性的值必须在整个文档中都是唯一的,如果有重复的id则校验不通过(ID属性的值只能由字母、下划线开始,不能使用数字,不能出现空白字符)

属性约束:

  • #REQUIRED —表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时会报错
  • #IMPLIED —表明当前属性是一个可选的属性可以有也可以没有
  • #FIXED ‘固定值’ —表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值。如果这样的属性指定了一个不是固定值的值则校验报错
  • 默认值

举例如下:
这里写图片描述

(3)ENTITY(实体)

<!ENTITY>就是对一大段内容的引用,可以简化代码的复用

引用实体:在xml中引用的实体叫做引用实体

<!ENTITY 实体名称 “实体内容”>
 引用方法:&实体名称

参数实体:在dtd中引用的实体叫做参数实体

<!ENTITY % 实体名称 “实体内容”>
引用方法:%实体名称
原文地址:https://www.cnblogs.com/shiguangmanbu2016/p/5932918.html