DTD的文档结构如下:

第一行是DTD声明部分,该声明与XML文档的声明语法格式相同

0到多个注释部分,DTD注释与XML文档的注释格式完全相同

0到多个<!ELEMENT…>定义的每一个就是一个XML元素

0到多个<!ATTLIST…>顶一个每一个就是一个XML元素的属性

0到多个<!ENTITY…>顶一个每一个就是一个实体

0到多个<!NOTATION…>顶一个每一个就是一个符号

它们彼此之间完全独立,无需相互嵌套。

1.  定义元素

  元素类型的定义的全称是:Element Type Definition,简称ETD,它不但会定义每个文件中可能存在的元素,给出的元素名称,而且会定义元素的具体类型。

元素类型描述主要有五种:

  a)  任意类型

    可以是以下四种中任意的内容

    例如:<!ELEMENT book ANY>

  b)  字串值

    例如:”aaa”

  c)  空元素

    <br/>

  d)  包含子元素

    元素嵌套

  e)  混合元素

    案例:

    

2.  定义子元素

  a)   定义有序的子元素

    使用英文逗号,用于分隔有序的子元素

    <!ELEMENT book(name,price,state)>

  b)   互斥的子元素

    互斥的子元素表明一些列的子元素中只能出现其中之一。

    使用”|”进行分隔

  c)   子元素出现的频率

    +(一次次或多次)

    ?(0次或一次)

    *(0次或多次)

    注意:混合类型中的频率只能按如下方式添加频率

    <!ELEMENT book(#PCDATA|子元素1|子元素2)*>

    只能在最后加

  d)   组合子元素

    <!ELEMENT book(name|price|state)>

    这种元素类型呗成为组合子元素

    组合元素也可以嵌套写:

    <!ELEMENT book((name,price)|state)>

  e)   无序的子元素

    DTD并没有定义无序子元素的语法,我们只能借助元素组进行定义

    例如:

    <!ELEMENT book(name|price|state)*>

    这时在XML文档中书写标签时,在book标签下三个子元素的顺序是无序的。

转载于:https://www.cnblogs.com/H_Razor/archive/2011/06/17/xml_06.html

【XML系列】----DTD中的元素定义相关推荐

  1. Element 对象表示 XML 文档中的元素。

    Element 对象 Element 对象表示 XML 文档中的元素.元素可包含属性.其他元素或文本.如果元素含有文本,则在文本节点中表示该文本. 重要事项:文本永远存储在文本节点中.在 DOM 处理 ...

  2. java xml 合并_Java中合并XML文档的设计与实现

    为了读写XML文件,需要导入如下JAVA包,"//"后为注释说明,笔者的环境是JDK1.3.1,在JDK 1.4.0中测试也通过. Import java.io. *; //Jav ...

  3. JS slice()方法返回数组中指定元素

    JS slice()方法返回数组中指定元素 定义和用法 slice() 方法可从已有的数组中返回选定的元素. slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分. 注意: sli ...

  4. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

    xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...

  5. Maven pom.xml中的元素modules、parent、properties以及import

    前言 项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单:maven的核心是pom.xml,那么我就它 ...

  6. 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)

    LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...

  7. pythonxml解析拿到控件坐标_Python解析xml中dom元素的方法

    本文实例讲述了Python解析xml中dom元素的方法.共享给大家供大家参考.详细实现方法如下: 复制代码 代码如下: from xml.dom import minidom try: xmlfile ...

  8. 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...

    作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...

  9. 编写类A2, 定义方法find, 实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1

    编写类A2, 定义方法find, 实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1 思路: 方法的返回值类型: int 方法名 : find 方法的形参 (String , Stri ...

最新文章

  1. 虽然现在没有闲也没有钱,还是建立了自己的BLOG,因为心里很痒
  2. php war,PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
  3. 绘制方法太单一!?这三个宝藏在线学习资源推荐给你~~
  4. GNS结合SecureCRT连接问题
  5. 地址池命令 思科理由_论CCNA基础之常用命令
  6. 美化UI合约区块链学习版系统+交易大厅
  7. Linux 命令(26)—— rename 命令
  8. pyhton中常用的基础模块
  9. 【Grub Grub2】万能优盘启动盘 (WinPE、LinuxPE)-- 方法1 U盘三分区法(不推荐,供参考)
  10. 【毫米波雷达】LFMCW测距/测速原理
  11. 强烈推荐:程序员接私活那点事
  12. css 写一个左中右布局占满屏幕,左右两块固定宽度200,中间自适应宽,先加载中间块
  13. 使用pyqt弹出消息提示框
  14. 安全的远程访问是保护知识产权的关键
  15. FairMOT训练测试自定义数据集
  16. Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】
  17. swust2020春季《形势与政策》mooc考试答案参考
  18. JSP JSTL标签
  19. ERP与电子商务整合乃大势所趋
  20. PHP SDK for sinaweibo

热门文章

  1. Travel 最短路
  2. 苹果app文件连接服务器有什么用,苹果曾经最鸡肋的功能,终于更新了!
  3. MySQL-日期处理
  4. WebRequest 类
  5. 如何使自定义模块加入DNN搜索引擎(转)
  6. 三星 N9006 note3 成功root
  7. 推荐系统的评价指标笔记(NDCG、MAP、AUC、HR、MRR)
  8. HDU 4069 Squiggly Sudoku Dancing-Links(DLX)+Floodfill
  9. Python读写yaml文件(使用PyYAML库)
  10. VDD、VBAT、VDDA、VREF+区别