XML约束
程序员文章站
2022-06-26 08:39:44
1 XML约束 1.1 DTD语法自称一派,可读性较差 1.2DTD引入的方式 stus_copy.dtd 1.2Schema其实就是一个xml,使用xml的语法规则,xml解析器 解析起来比较方便,Schema约束文本内容比DTD内容还要多,没有真正意义替代DTD 1.2.1命名空间的作用 一个x ......
1、概念
一个用来约束XML文档的书写规范的文件
2、常用的约束
- XML DTD
- XML Schema
3、DTD约束
① 概念
DTD(Document Type Definition),文档类型定义
② 语法
(1)元素定义
使用 ELEMENT
来声明一个XML元素
<!ELEMENT 父标签 (子标签 | 子标签 | 子标签)>
用 | 分割表示子标签只能是其中一个
<!ELEMENT 父标签 (子标签, 子标签, 子标签)>
用 逗号 分割表示子标签的顺序必须和声明时的一致
<!ELEMENT 父标签 (子标签 | 子标签 | 子标签)*>
子标签的顺序可以是无序的
使用通配符来控制子标签出现的次数
<!ELEMENT 父标签 (子标签?)>
子标签出现零次或一次
<!ELEMENT 父标签 (子标签*)>
子标签出现零次或多次
<!ELEMENT 父标签 (子标签+)>
子标签出现一次或多次
如果标签没有子标签(自结束标签),则可以声明为 EMPTY
<!ELEMENT 标签名 EMPTY>
如果不限制标签的内容,则可以使用 ANY
<!ELEMENT 标签名 ANY>
如果子标签的内容需要解析器来解析,则可以使用 #PCDATA
【被解析的字符数据(Parsed Character Data)】
<!ELEMENT 标签名 (#PCDATA)>
(2)属性定义
使用 ATTLIST
来声明元素的属性
<!ATTLIST 元素名
属性名称 属性类型 属性类型 默认值
属性名称 属性类型 属性类型 默认值
>
属性类型:
CDATA 值为字符数据 (character data)【不会被解析器解析的文本】
(en1|en2|..) 此值是枚举列表中的一个值
属性值说明有3类:
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED "value" 属性值是固定的
默认值:
注意:需要用引号引起来;如果属性类型是#REQUIRED,则不允许有默认值
③ 引入方式
-
内部引入:
直接在XML文件内编写约束(一般不用)
示例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE animal [ <!ELEMENT animal (#PCDATA)> <!ATTLIST animal name CDATA #REQUIRED > ]> <animal name="Tom">Cat</animal>
-
外部引入:
DTD约束是一个独立的文件,并在XML中引入
<!DOCTYPE 文档根节点 SYSTEM "DTD文件路径">
DTD文件在本地
<!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL路径"> 例如: <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
DTD文件在网络上
④ 示例一
XML-DTD文件
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT person (name?, age?, gender?, live?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age EMPTY>
<!ATTLIST age
value CDATA #REQUIRED
>
<!ELEMENT gender EMPTY>
<!ATTLIST gender
value (man | woman) #REQUIRED
>
<!ELEMENT live EMPTY>
<!ATTLIST live
value CDATA #FIXED "yes"
>
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person SYSTEM "person.dtd">
<person>
<name>Tom</name>
<age value="14" />
<gender value="man" />
<live value="yes" />
</person>
本文地址:https://blog.csdn.net/adsl624153/article/details/111145746
下一篇: visual studio code配置