XML DTD

来源:互联网 发布:淘宝自刷平台 编辑:程序博客网 时间:2024/05/16 10:45

1.我们经常在项目中看到一些xml配置文件,它们都有着固定的标签写法,那么这些规范是怎么定义的呢,一种方式就是使用dtd来定义。文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

这里写图片描述

图上为mybatis配置文件xml中引入的规范,文件中用到的标签以及各式都会遵循事先在dtd中写好的模板。

2.dtd申明在xml内部,下图在eclipse工程中进行演示
这里写图片描述

这里写图片描述

<?xml version="1.0"?><!DOCTYPE note [  <!ELEMENT student (name,age,sex,phone)>  <!ELEMENT name      (#PCDATA)>  <!ELEMENT age    (#PCDATA)>  <!ELEMENT sex (#PCDATA)>  <!ELEMENT phone    (#PCDATA)>]><student>    <name>abc</name>    <age>10</age>    <sex></sex>    <phone>123</phone></student>

类型
PCDATA 的意思是被解析的字符数据(parsed character data)。
被申明为此类型的标签内部包含的标签也会被解析识别

CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

元素申明

<!ELEMENT 元素名称 类别><!ELEMENT 元素名称 (元素内容)><!ELEMENT 元素名称 EMPTY>   //空元素<!ELEMENT 元素名称 ANY>  //带有任何内容的元素<!ELEMENT 元素名称 (#PCDATA)>  //只有 PCDATA 的元素//带有子元素(序列)的元素<!ELEMENT 元素名称 (子元素名称 1)><!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)> 

使用正则表达式

//声明只出现一次的元素<!ELEMENT 元素名称 (子元素名称)>//声明最少出现一次的元素<!ELEMENT 元素名称 (子元素名称+)>//声明出现零次或多次的元素<!ELEMENT 元素名称 (子元素名称*)>//声明出现零次或一次的元素<!ELEMENT 元素名称 (子元素名称?)>//声明“非.../既...”类型的内容<!ELEMENT note (to,from,header,(message|body))>

声明属性

<!ELEMENT square EMPTY><!ATTLIST square width CDATA "0">合法的 XML:<square width="100" />

这里写图片描述

这里写图片描述

3.引入外部dtd
这里写图片描述

classroom.dtd

<?xml version="1.0" encoding="UTF-8"?><!ELEMENT classroom (grade,students)><!ATTLIST classroom id ID #REQUIRED><!ELEMENT grade (#PCDATA)><!ELEMENT students (student)><!ELEMENT student (id,name,age)><!ELEMENT id (#PCDATA)><!ELEMENT age (#PCDATA)>

classroom.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE classroom SYSTEM "classroom.dtd"><classroom id="c1"> <grade>2011</grade> <students>    <student>      <id></id>      <name></name>      <age></age>    </student> </students></classroom>
原创粉丝点击