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>
阅读全文
0 0
- XML-DTD
- XML DTD
- XML DTD
- 【XML】DTD
- 【XML】DTD
- XML--DTD
- XML DTD
- XML--DTD
- XML - DTD
- XML DTD
- XML--DTD
- XML-DTD
- XML - DTD
- XML---DTD
- XML DTD
- [xml]DTD & XML 例
- XML DTD入门
- 解码 XML 和 DTD
- BZOJ 2223 [Coci 2009]PATULJCI 主席树
- 课时23 YUM软件管理
- [东师培训D3T2] Number
- C Looooops POJ
- Unused import statement
- XML DTD
- 【Stanford CNN课程笔记】5. 神经网络解读1 几种常见的激活函数
- Django创建应用、模型、配置后台自动管理
- 628. Maximum Product of Three Numbers
- HDOJ1072 Nightmare(BFS,剪枝)
- javapoet-让你不再书写无聊的代码(一)
- Windows下用命令打开数据库
- 认真学习php面向对象-6
- 路漫漫其修远兮