XML学习笔记(二)-- DTD格式规范
标签(空格分隔): 学习笔记
XML的一个主要目的是允许应用程序之间自由交换结构化的数据,因此要求XML文档具有一致的结构、业务逻辑和规则。可以定义一种模式来定义XML文档的结构,并借此验证XML文档的有效性。
定义XML文档结构有两种解决方案:一种是采用文档类型定义DTD;另一种是采用XML Schema。
DTD的基本结构
DTD是用来规范XML文件的格式,必须出现在头文件中,一遍XML校验器在一开始便可以得到XML文件的格式定义。DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的关系。
DTD的基本结构
DTD语法格式如下:
<!DOCTYPE 根元素名称[
<!ELEMENT 子元素名称(#PCDATA)>
]>
参数说明:
<!DOCTYPE:文档类型声明的起始定界符;根元素名称[:一个XML文档只有一个根元素,如果XML文档使用DTD,那么根元素的名称就在这里指定;<!ELEMENT子元素名称(#PCDATA)>:用来定义出现在文档中的元素;]>:文档类型声明的结束界定符。
DTD中的定义元素
包括元素名称、构成元素基本类型和元素内容类型。
声明元素类型
语法如下:
<!ELEMENT 元素名 元素内容>
- ELEMENT:是关键字,表示对元素类型进行声明;
- 元素名:为当前元素指定元素名称;
- 元素内容:元素后面的内容用来指定元素的内容类型,分为
EMPTY,子元素类型,混合型,ANY,PCDATA5中类型。
DTD中的元素限定符
元素限定符用于在DTD中规定子元素出现的顺序和次数。
常用的元素限定符有:
()- 用来给元素分组;|- 在列出的元素中选择一个;+- 可出的元素至少出现1次(1或多次);*- 列出的元素允许出现0次到任意多次(0或多次);?- 列出的元素出现0次或1次,;,- 列出的元素必须按照指定的顺序出现。
DTD中的定义属性
元素属性包括属性名称、变量类型、预定义属性等。
属性的声明
<!ATTLIST Element_name
Attribute_name TYPE [added_declare]
Attribute_name TYPE [added_declare]
....
>
属性的类型
在DTD中声明属性的语法格式时属性类型是属性声明中所必须的,常用的属性类型有:
CDATA: 字符数据;ID: 该属性值在XML文档中是唯一的;IDREF: 该属性值参考了XML文档中的另一个属性;ENTITY: 表示该属性的设定值是一个外部实体,如一个图片文件;NMTOKEN: 属性值只能由数字、字母、下划线、连字符等符号构成;NOTATION: 属性值是在DTD中声明过的注解名称;Enumerat: 列出能够赋予该属性的各种值的列表,只能从中选择属性值。
在DTD中声明XML的元素必须是字符串类型时,应该使用
#PCDATA(在ELEMENT标签中使用);声明属性的属性值必须是字符串时,应该使用CDATA(在ATTLIST标签中使用)。
DTD中的试题
XML中预定义的常规实体引用"<" ">" "&" "'" "quot;" 分别对应着 "<" ">" "&" "'" """.
普通内部实体
<!ELEMENT Entity_Name Entity_Value>
普通外部实体
<!ELEMENT Entity_Name SYSTEM Entity_URL>
XML学习笔记(二)-- DTD格式规范的更多相关文章
- XML学习总结二——DTD
主要用处是约束XML. 1.DTD分为内部DTD与外部DTD两类: 内部DTD:将DTD定义在XML文档的内部 <!DOCTYPE 根元素名 [ 元素描述]> 外部DTD < ...
- XML学习笔记2——DTD
在上一篇笔记中,将文档类型分类时,曾经根据文档是否使用并遵守了DTD或Schema来区分为格式良好的XML和有效的XML,那么什么是DTD和Schema呢?DTD和Schema都是用来规范XML文档的 ...
- xml学习笔记二(规则)
XML 的语法规则很简单,且很有逻辑.这些规则很容易学习,也很容易使用. 所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a para ...
- amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules
amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules 一.总结 1.am:以 am 为命名空间 2.模块状态: {命名空间}-{模块名}-{状态描述} 3.子模块: {命名空间}- ...
- delphi操作xml学习笔记 之一 入门必读
Delphi 对XML的支持---TXMLDocument类 Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocum ...
- XML学习笔记(三) -- Schema
标签(空格分隔): 学习笔记 Schema的格式 XML Schema文档是由元素.属性.命名空间和XML文档中的其他节点构成的. XML Schema有两种重要的Schema模型:Microsoft ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- XML学习总结(二)——XML入门
XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...
随机推荐
- access链接最原始代码,两种
using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web ...
- 【sublime】解决汉字输入的办法——InputHelper;在sublime中输入汉字==》InputHelper方法
手工安装办法: cd ~/.config/sublime-text-2/Packages #如果是sublime3就改一下 git clone https://github.com/xgenvn/I ...
- memcached +php环境配置和分析
一.memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东.这里简单介绍一下,memcached 是高 ...
- 向已写好的多行插入sql语句中添加字段和值
#region 添加支款方式--向已写好的多行插入sql语句中添加字段和值 public int A_ZhifuFS(int diqu) { ; string strData = @"SEL ...
- Unable to resolve target 'android-19'
修改两个地方,解决上面的问题
- 原生js获取execl里面的值 主要使用ActiveXObject
今天一个程序员给了一个excel表,里面有一百多条数据,叫我一个一个数据的复制到系相应的函数里面比如 put("gaga1","gaga2"),这样一句话,要我 ...
- [置顶] 1D1D动规优化初步
例题一: 货物运输,大意: 给出N个点的坐标与需要你送过去的钱数(第一个点不需要钱),身上带钱的数目有最大值,由初始在的1点,按顺序经历每个点(中途可以回1点,回去钱就满了),问最小走的路程是多少(最 ...
- 搭建无限制权限的简单git服务器使用git-daemon脚本
如果想要用ubantu架设无限制权限(即不适用gitosis)的简单git服务器,实现git库下载clone,push等简单的基本功能, 可以直接使用git-daemon脚本(非常不安全,建议项目代码 ...
- TI CC254x BLE教程 3
通用属性配置(Generic Attribute Profiles) 1. 数据在services里面以特征字(characteristics)的形式展示出来 如你所见, 特征字包含属性(Proper ...
- 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
jquery.ui.all.css 1.所有主题必须的文件都包含在这个文件中.它由ui.base.css和ui.them.css两个文件中拉入的@import执行构成. jquery.ui.base. ...