xml学习4-dtd

1、DTD元素的定义

<?xml version="1.0" encoding="gb2312"?>
<!--*表示0或者多个  +表示至少要有一个  ?表示0个或者一个 内容模型  |表示只能包含分隔开中的一个
 ,表示序列  下面是DTD元素的声明     #PCDATA 表示字符数据   EMPTY表示 空元素     ANY 表示该元素可以包含
任意类型的字符数据和子元素,只要符合xml规则就行。在实际使用时候应该避免使用ANY  明确的DTD 有助于我们理解文档
<!ELEMENT  employee (#PCDATA | name*)> 表示混合元素 就是employee中既可以包含子元素 也可以包含文本 但是必须是0个或者多个*
下面是DTD 元素定义
-->
<!DOCTYPE company[
<!ELEMENT company (employee)>                                       //表示compant元素下包含 employee元素
<!ELEMENT employee (name,age,sex,salary,interest*)>   //employee元素包含  name  age sex  salary  interest元素   interest元素可以使 0个或者多个
<!ELEMENT salary (cash | credit_card)>                         //salary 方式有  cash  或者 credit_card中的一种
<!ELEMENT cash (#PCDATA)>                                          //cash 包含的数据是字符一下雷同
<!ELEMENT credit_card (#PCDATA)>  
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)> 
<!ELEMENT interest (#PCDATA)> 
 ]>
 <company>
 <employee>
    <name>zhangsan</name>  
    <age>15</age>
    <sex>男</sex>
    <salary>
    <credit_card>2000</credit_card>
    </salary>
    <interest>basketball</interest>
    <interest>football</interest>
    <interest>volleyball</interest>
 </employee> 
 </company>

 

2、DTD元素的定义  DTD属性用来限制xml属性

DTD元素采用

<!ATTLIST  元素名

属性名1  CDATA   #REUIRED        //属性必须设置

属性名2  CDATA   #IMPLIED   //表示属性可以设置也可以不设置   #FIXED表示值固定 不能设置

>

如下 :

<!ATTLIST  employee

name   CDATA   #REQUIRED    //name值必须被设置 

sex     CDATA  "女"                     //使用默认值 可以设置或者不设置

age   CDATA  #FIXED  "15"      //值是固定的不可以设置

interest   CDATA   #IMPLIED   //爱好可有可无 

>

元素的类型 :我们知道CDATA表示 字符型那么  ENUMRATED 枚举类型用什么表示呢?

(a |  b | c | d)  这就表示枚举类型 。

<!ATTLIST  emploree

name  (a | b | c | d)  "a"

下面是一个应用

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE  employee[ 
<!ELEMENT employee (name,salary)>
<!ATTLIST salary way (check|cash) #REQUIRED>
<!ELEMENT salary (#PCDATA)>
<!ELEMENT name (#PCDATA)>
]>
<employee>
<name>xiaowang</name>
<salary way="cash"></salary>
</employee>

 

ID 这个类型用于 唯一的标识xml中的某个元素,这样的属性 每个元素的属性 都不恩能够相同  。

 

 

3、DTD的实体引用 就是像html中的转义字符一样使用 ,只不过这个实体引用时我们自己定义的 ,

实体是用于定义引用普通文本或特殊字符的快捷方式的变量。

实体引用是对实体的引用。

实体可在内部或外部进行声明。

一个内部实体声明

语法:

<!ENTITY 实体名称 "实体的值">

例子:

DTD 例子:

<!ENTITY writer "Bill Gates">
<!ENTITY copyright "Copyright W3School.com.cn">

XML 例子:

<author>&writer;&copyright;</author>

注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。

一个外部实体声明

语法:

<!ENTITY 实体名称 SYSTEM "URI/URL">

例子:

DTD 例子:

<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">

XML 例子:

<author>&writer;&copyright;</author>

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mosatsu/archive/2012/04/08/2466784.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针和指针的指针_网络上的iPad指针

指针和指针的指针a week ago I saw a new IPad Pointer presentation and was very excited about what they did. It was very interesting to see how they design different pointer modes and attention to details. Here is the presentation:一周前&#xff0c;我看到了一…

Vue 是如何用 Rollup 打包的?

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列Rollu…

leetcode 207课程表

class Solution { public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {//验证是否为DAG&#xff0c;每次验证指向的是否已经存在于当前图中//建图vector<int> indegree(numCourses,0);//入度vector<vector<int>> …

2012-04-12

一.JS 中的return Return false&#xff1a;相当于一个终止符,用来阻止提交表单或继续执行下面的代码&#xff0c;只在当前函数有效&#xff0c;不会影响其他外部函数的执行 Eg: function a(){if(true) return false;} Function test{a();b();c();} //a方法中的return false 不…

sketch怎么传到ps_2020年从Sketch移植到Figma的详细指南

sketch怎么传到psAs we’re locked up in our homes due to COVID-19 pandemic, many of us are working remotely and Figma is a go-to tool for designers for the same.由于COVID-19流行病使我们被关在家里&#xff0c;我们中的许多人都在远程工作&#xff0c;而Figma是设计…

还没搭建过Vue3.x项目?几行代码搞定~

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列相信现…

mysql 常用命令 汇总

参考阅读 摘要 权限 允许公网访问列操作 修改列名mysql 修改列属性其他 登录设置自动补全与utf-8编码其他一次添加多条记录修改表名字允许公网访问 1,修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看"select host,user from user ;" mysql -u root -pvmwa…

一步步创建 边栏 Gadget(二)

相信使用上篇中创建的边栏Gadget之后&#xff0c;大家会很郁闷。难道视频窗口就那么小吗&#xff1f;看起来真费劲。我能通过该Gadget看着一部电视剧。而不能够定制自己需要的或者想要看的电视剧。 在上一篇一步步创建 边栏 Gadget&#xff08;一&#xff09;中&#xff0c;我们…

tableau 自定义图表_一种新的十六进制美国地图布局的案例-Tableau中的自定义图表

tableau 自定义图表For whatever reason, 无论出于什么原因 maps are cool. Even though the earth has mostly been the same since those 地图很酷 。 即使自Pangaea days, we humans make and remake maps constantly. It might be that old maps remind us of how things …

2022,前端工具链十年盘点

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列2021 …

var result = ![] == []; console.log(result); // 结果是?为什么?

相等操作符会对操作值进行隐式转换后进行比较&#xff0c;如果一个操作值为布尔值&#xff0c;则在比较之前先将其转换为数值&#xff0c;这里 ![] 一定是布尔值了。 http://www.csser.com/board/4f3f516e38a5ebc9780004d3转载于:https://www.cnblogs.com/anjey/archive/2012/0…

讲讲volatile的作用

讲讲volatile的作用 讲讲volatile的作用254推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变&#xff0c;这样&#xff0c;编译器就不会去假设这个变量的值了。精确地说就是&#xff0c;优化器在用到这个变量时必须每次都小心地重新读取这个变量的值&#xff0c;…

书籍排版学习心得_为什么排版是您可以学习的最佳技能

书籍排版学习心得重点 (Top highlight)I was introduced to design in a serpentine fashion. I don’t have any formal training. Instead, I’ve learned everything through the Web, books, and by interacting with designers daily.我被介绍为蛇形设计。 我没有任何正规…

javascript专题:如何构建自己的js库

首先看看这个&#xff1a; (function(){ //运行的代码 })(); 红色括号里面是一个匿名函数&#xff0c;红色括号是分割&#xff0c;表示里面的函数是一个部分&#xff0c;绿色的括号表示一个运算符&#xff0c;表示红色括号里面的函数要运行。 相当于定义完一个匿名函数后让它直…

若川的 2021 年度总结,弹指之间

1前言从2014年开始&#xff0c;每一年都会写年度总结&#xff0c;已经坚持了7个年头。7年的光阴就是弹指之间&#xff0c;转瞬即逝。正如孔子所说&#xff1a;逝者如斯夫&#xff0c;不舍昼夜。回顾2014&#xff0c;约定2015&#xff08;QQ空间日志&#xff09;2015年总结&…

线框图用什么软件_为什么要在线框中着色?

线框图用什么软件I was recently involved in a debate around why some wireframes (which were definitely not UI screens) were not 100% greyscale. This got me thinking — when is it ok to use colour in wireframes, and when is it going to cause you problems fur…

Linux 内核

Linux 内核是一个庞大而复杂的操作系统的核心&#xff0c;不过尽管庞大&#xff0c;但是却采用子系统和分层的概念很好地进行了组织。通过本专题&#xff0c;我们可以学习 Linux 的分层架构、内核配置和编译、内核性能调试和 Linux 2.6 中的许多提升功能。Linux 内核组成 Linux…

给asterisk写app供CLI调用

环境&#xff1a;CentOS6.2 Asterisk 1.8.7.1 一、添加源文件 复制app_verbose.c为app_testApp.c 复制app_verbose.exports为app_testApp.exports 主要是修改一些标识&#xff0c;编译不会出错就行&#xff0c;这里列出我进行的主要修改。 1、添加头文件 #include "aster…

前端,校招,面淘宝,指南

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列虽然是…

qq空间网页设计_网页设计中负空间的有效利用

qq空间网页设计Written by Alan Smith由艾伦史密斯 ( Alan Smith)撰写 Negative space is a key design element that you may come across in the fields of art, architecture, interior design, landscaping and web design. Rather than serving as awkward, empty areas …