【DTD语法约束细节】

* 元素定义

* 属性定义

* 实体定义

【1.元素定义】

在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示:

<!ELEMENT   元素名称  元素类型 >

元素类型可以是元素内容、或类型

1. 若是元素内容,需要使用 ( ) 括起来,如下:

  

  1.1.元素内容可以使用如下方式,描述内容的组成关系

   * 用逗号分隔,表示内容的出现顺序必须与声明时一致。表示<书></书>节点内只能有<书名><作者><售价>等节点

    

   * 用 | 分隔,表示任选其一,即多个只能出现一个。表示<书></书>节点内只能有一个<书名>、<作者>、<售价>节点

    

  1.2.在元素内容中也可以使用+、*、?等符号表示元素出现的次数。

     + :1次或 多次,如 ( 书+ ) 

      

    ? : 0次或 1次,如:( 书? )

      

    * : 0次或 多次,如: ( 书* )

      

  1.3.也可以使用圆括号批量设置,例如:

  

  表示<书></书>节点中出现((书名*,作者?,邮箱)*)或者出现<评论>0次或1一次。

    

2.若是元素类型,则直接书写,DTD规范定义了如下几种类型:

   * EMPTY : 用于定义空元素,例如<br/> <hr/>

   * ANY:表示元素内容为任意类型,如下表示<书架></书架>节点内可以放置任意节点

      

【属性定义】

XML文档中的标签属性需通过ATTLIST为其设置属性。

1.语法格式:

<!ATTLIST 元素名

  属性名1 属性值类型  设置说明

  属性名2 属性值类型  设置说明

  .....

>

属性声明举例:

对应的XML文件:

2. 设置说明

#REQUIRED必须设置该属性

#IMPLIED:可以设置也可以不设置

#FIXED:说明该属性的取值固定为一个值,在XML文件中不能为该属性设置其他值,但需要为该属性提供这个值。

#直接使用默认值:在XML中可以设置该值也可以不设置该值。没有任何设置就用默认值。

举例如下:

DTD文件为:

 3. 常用属性值类型

CDATA:普通文本字符串

ENUMERATED:枚举

ID:即id类型

ENTITY:实体

*例子1

*例子2:ID属性

ID类型的属性值表示 属性的设置值为一个唯一值。

ID属性的的值只能由字母、下划线开始,不能为空字符。

*例子三 实体

实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别的别名应用这段内容例了。

在DTD定义中,一条<!ENTITY ..>语句就用于定义一个实体。

实体分为两种类型:引用实体和参数实体。

 1.引用实体:

  引用实体主要在XML文档中被应用

  语法格式:<!ENTITY 实体名称 "实体内容" > :直接转变成实体内容

  引用方式: &实体名称

  举例如下:

  在DTD文件中实体如下:

  

  对应的XML文件中引用如下:

  

 2.参数实体

  参数实体被DTD文件自身引用

  语法格式:<!ENTITY % 实体名称 "实体内容">

   引用方式:%实体名称

  举例1:

  在user1.dtd中:

  

  在user2.dtd中:

  

  举例2

  在user1.dtd中

  在user2.dtd中

  

  

  

04_XML_04_XMLDTD语法的更多相关文章

  1. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  2. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  3. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  4. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  5. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  6. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  7. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Flex 布局教程:语法篇

    作者: 阮一峰 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便 ...

随机推荐

  1. shell脚本应用(2)--变量,数值和字符串

    变量 定义,赋值: var=value 引用 $var,${var} 特殊变量 $?上条命令状态 $*/$@所有参数列表 $#参数个数 $0执行的命令名称 $1/${10}第1/10个参数 数值运算 ...

  2. hibernate4.0+版本和3.0+版本的区别总结

    自己总结下hibernate4.1版本中的新特性和hibernate3.3做区别 1.数据库方言设置 <property name=”dialect”>org.hibernate.dial ...

  3. linux统计文件夹某一些文件的大小总和

    du -m smallgame_2006* | awk '{sum += $1}; END{print sum}' -m代表单位是MB, awk命令需要'',且命令需换行

  4. 【原创】MapReduce计数器

    MapReduce框架内置了一些计数器的支持,当然,我们也可以设置自己的计数器用来满足一些特殊的要求. 其实计数器可以用来完成很多事,关键要看你如何用,例如你想知道map输入数据的指定记录特定的信息有 ...

  5. POJ2104&&HDU2665(静态区间第K小)

    题目大意 给定一个有N个数字的序列,然后又m个查询,形式如下: l r k 要求你返回区间[l,r]第k小的数是哪个 题解 终于弄懂主席树是个啥东西了,O(∩_∩)O~~,这题正是主席树的裸题,主席树 ...

  6. CF_402B 想法题

    题目链接:http://codeforces.com/problemset/problem/402/B /**算法分析: 题意太大意,positive没注意这个问题 考察等差数列,由An=A1+(n- ...

  7. eclipse安装插件checkstyle

    最近听说了一个eclipse神器:checkstyle,可以帮助java开发人员规范代码,对我这种有代码洁癖的人来说,这有着不小的魔力啊,必然要安装试一试啊. 我最喜欢的安装方式是 输入一个安装网址, ...

  8. 1513:二进制中1的个数 @jobdu

    题目1513:二进制中1的个数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1341 解决:455 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: ...

  9. linux命令行模式下实现代理上网

    有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...

  10. CAS认证(3):验证用户信息

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...