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,两者有相似的数据模型和函数。
30 0
|
3月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
31 0
|
5月前
|
XML 开发框架 JSON
J2EE基础XML(dtd)
J2EE基础XML(dtd)
42 0
|
6月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
63 0
|
6月前
|
XML 存储 Java
XML之dtd
XML之dtd
70 0
|
6月前
|
XML 存储 开发框架
J2EE之XML(dtd篇超详细)
J2EE之XML(dtd篇超详细)
34 0
|
4月前
|
XML Java Maven
第1次Spring源码学习之@Bean、@Configuration、xml、分析
第1次Spring源码学习之@Bean、@Configuration、xml、分析
44 0
|
7月前
|
XML 数据安全/隐私保护 数据格式
一种自主学习 Office Open XML 文件格式的方法介绍
一种自主学习 Office Open XML 文件格式的方法介绍
53 0
|
7月前
|
XML 存储 数据可视化
XML DTD原理及使用
是一种可扩展的标记语言,用于存储和交换数据,它被设计成具有简单、易于理解的格式,并能够方便地在不同的系统和应用程序之间共享数据。XML的语法规则类似于HTML,但XML的目的不仅仅是用于显示数据,更是用于描述数据的结构和关系。与HTML相比,XML更加严格和规范,它需要通过或RELAX NG等方式定义文档的结构,同时还可以使用命名空间和XSLT等技术来处理和转换XML文档。独立于任何特定的操作系统、平台或开发环境。可以与许多不同的编程语言和应用程序进行交互。
|
7月前
|
XML JSON 数据格式
XML之DTD
XML之DTD
38 0