xml学习4-dtd

简介: 1、DTD元素的定义    //employee元素包含  name  age sex  salary  interest元素   interest元素可以使 0个或者多个                          //salary 方式有  cash  或者 cr...

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>

 

 

 

 

 

 

 

 

 

 

目录
相关文章
|
7月前
|
XML SQL 数据处理
学习 XQuery:XML数据查询的关键
XQuery是用于查询XML数据的语言,类似SQL对数据库的操作。它基于XPath构建,用于从XML文档中提取和排序元素。FLWOR表达式(For, Let, Where, Order by, Return)是其核心,用于处理和过滤数据。例如,示例代码展示了如何选取&quot;books.xml&quot;中价格大于30的书籍并按标题排序。XQuery还可用于Web服务、生成报告、XML到XHTML转换及搜索文档等场景。了解XPath能帮助更好地掌握XQuery,两者有相似的数据模型和函数。
120 0
|
7月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
102 0
|
7月前
|
XML Java Maven
第1次Spring源码学习之@Bean、@Configuration、xml、分析
第1次Spring源码学习之@Bean、@Configuration、xml、分析
73 0
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
51 1
|
1月前
|
XML 前端开发 Java
XML基本概念入门学习指南
XML(eXtensible Markup Language)是一种可扩展的标记语言,和HTML语言语法类似,同属于标记语言。
78 14
|
6月前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
51 1
|
2月前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
110 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
4月前
|
XML 数据格式
DTD和XML Schema之间的区别?
【8月更文挑战第22天】
82 0
|
7月前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
130 0
|
7月前
|
XML 存储 JavaScript
深入学习 XML 解析器及 DOM 操作技术
所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象
133 0