ANY

如果需要定义某个元素的值可以是任意类型,可采用如下语法

<!ELEMENT 元素名 ANY>

DTD必须定义XML文档中允许出现的所有元素,所以下面这样是不行的,因为<hellotag>没有在dtd中定义过

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE messages[
<!ELEMENT messages ANY>
]> <messages>
<message>
<hellotag>hello</hellotag>
</message>
</messages>

#PCDATA

定义元素内容为字符串,不能包含子元素

实例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE messages[
<!ELEMENT messages (message)>
<!ELEMENT message (content)>
<!ELEMENT content (#PCDATA)>
]> <messages>
<message>
<content>hello</content>
</message>
</messages>

混合元素,即既可以包含字符串也可以包含子元素

格式:

(注意 1:#PCDATA只能出现在子元素的最前面

2:*表示这些子元素可出现0次或多次,如果没有*,则各个子元素互斥,只能出现一个

3:使用 | 分隔子元素,则子元素的出现是无序的,如果使用逗号","则子元素的出现顺序是严格按照书写顺序 )

<!ELEMENT 父元素名 (#PCDATA | 子元素1 | 子元素2 |子元素n)*>

实例:略

定义元素属性

格式:

<!ATTLIST 属性所属的元素 属性名 属性类型 [元素对属性的约束] [默认值]>

其中,元素对属性的约束 和 默认值 是可选的,但如果没有指定前者,则必须指定后者,

当元素对属性的约束 是 "#REQUIRED"时,不能指定默认值,

当元素对属性的约束 是 "#IMPLIED"时,不能指定默认值,

当元素对属性的约束 是 "#FIXED",时,必须指定默认值

#REQUIRED:即必需的属性,意味着必须为该元素提供属性

#IMPLIED:意即该属性是可有可无的

#FIXED:即该属性是固定的,定义时必须指定固定值。使用该元素时无须为其分配该属性,XML处理器会自动为该属性增加固定值

实例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE messages[
<!ELEMENT messages (message | shortcut)*>
<!ELEMENT message (content)>
<!ELEMENT shortcut (#PCDATA)>
<!ELEMENT content (#PCDATA)>
<!ATTLIST messages hashcode CDATA #REQUIRED>
]> <messages hashcode="dfsfdsfsdf">
<message>
<content>hello</content>
</message>
<shortcut>
hello,world
</shortcut>
<shortcut>
hello,world
</shortcut>
</messages>

DTD支持的属性列表:

--

xml dtd 定义元素的更多相关文章

  1. 超全面的JavaWeb笔记day05<xml&dtd&jaxp>

    0.表单提交方式(*****) button提交 超链接提交 事件 1.xml简介和应用(了解) 2.xml文档声明和乱码解决(*****) 文档声明 必须放在第一行第一列 设置xml编码和保存编码一 ...

  2. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  3. XML,DTD,XSD,XSL的区别

    XML=可扩展标记语言(eXtensible Markup Language). 可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可用 方便的方式建立,虽然XML ...

  4. 转!!XML,DTD,XSD,XSL的区别

    XML=可扩展标记语言(eXtensible Markup Language).可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可用 方便的方式建立,虽然XML占 ...

  5. XML DTD验证

    XML DTD验证 一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行 ...

  6. JavaScripts学习日记——XML DTD Schema

    今日关键词: XML DTD Schema 1.XML 1 XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和 ...

  7. XML Dtd Schema

    在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 整体比较: XML Schema符合XML语法结构. DOM.SAX等XML API很容易解析出XML Schem ...

  8. XML DTD详解(转)

    前情提要与本文内容介绍 前面的两篇XML相关博文: 第一篇是介绍格式正规的XML: 格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节 第二篇介绍DTD,引入有效的XML的概念(符合语 ...

  9. XML——DTD

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

随机推荐

  1. 线段树 poj 1436

    题目大意:给出n条垂直于x轴的线段的数据y1,y2,x,求出有几个三条线段一组的三元组并且他们兩兩能相见的.思路:对y轴建树,将x排序,然后按顺序边询问边擦入,用mark[i][j]表示j往左可以看到 ...

  2. delphi 取cpu号

    从网上找的取cpu号 在d7中测试通过了 push,move,pop ...有点难 现在的水平我也就只能拿来主义了 /// <summary>/// 取cpu号/// </summa ...

  3. deepin 15.3添加PPA源 安装php5.6

    想要在deepin 15.3上安装PHP5.6,我们需要手动添加源. 在https://launchpad.net/+search?field.text=php上可以通过搜索找到你想要的软件源, PP ...

  4. gulp-rev同时将js和css文件写在一个rev-manifest.json文件里面的方式探讨

    参考: https://segmentfault.com/q/1010000002876613 https://github.com/sindresorhus/gulp-rev 测试发现,在官网上最主 ...

  5. [bigdata] 使用Flume hdfs sink, hdfs文件未关闭的问题

    现象: 执行mapreduce任务时失败 通过hadoop fsck -openforwrite命令查看发现有文件没有关闭. [root@com ~]# hadoop fsck -openforwri ...

  6. 运维请注意:”非常危险“的Linux命令大全

    Linux命令是一种很有趣且有用的东西,但在你不知道会带来什么后果的时候,它又会显得非常危险.所以,在输入某些命令前,请多多检查再敲回车. rm –rf rm –rf是删除文件夹和里面附带内容的一种最 ...

  7. poj 1390 Blocks

    poj 1390 Blocks 题意 一排带有颜色的砖块,每一个可以消除相同颜色的砖块,,每一次可以到块数k的平方分数.问怎么消能使分数最大.. 题解 此题在徐源盛<对一类动态规划问题的研究&g ...

  8. PS快捷键

  9. tyvj1008 传球游戏

    背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一 ...

  10. spark安装(实战)

    sparksql+hive :http://lxw1234.com/archives/2015/06/294.htm 1,安装scala http://scala-lang.org/download/ ...