DTD及XML介绍

目录

一.什么是xml

二.为什么要学习xml

三.xml的作用

数据存储和传输

文档标记和表示

数据验证和规范化

四.标准的xml格式

1.XML文件的第一行应该包含XML声明,用于指明XML版本和编码方式

2.有且只有一个根元素

3.xml标签大小写正确区分

4.正确使用结束标签

5.使用了合法的标签名

6.定义有效的属性

7.正确嵌套标签

五.元素的定义

1.在xml加入dtd声明

2.元素的分类

3.元素的限制

六.属性定义

1.语法

2.属性类型

3.属性描述

1.#REQUIRED

2.#IMPLIED

3.#FIXED

4.枚举值

5.数据类型

以下是我的一篇范例,仅供参考


一.什么是xml

XML是一种可扩展标记语言(eXtensible Markup Language),用于存储和传输数据。XML文档由标签和文本组成,标签用于描述数据的结构和意义。XML的语法类似于HTML,但是XML更加严格和具体,可以根据应用的需要定义自己的标签和属性。XML被广泛用于Web服务、应用程序配置文件、数据交换和存储等领域。

二.为什么要学习xml

XML作为一种数据交换和存储格式,被广泛应用于计算机领域的各个方面,例如Web服务、应用程序配置文件、数据交换等。因此,学习XML能让人更好地理解如何在不同的应用程序之间传递和共享数据,理解Web服务的基本原理和工作方式。此外,XML还是许多其他技术和工具的基础,例如XML Schema、XSLT、XPath、SOAP等,了解XML的基础知识能帮助人更好地学习这些相关技术。因此,学习XML对于软件开发人员、Web开发人员、数据管理人员、IT专业人员等都非常有用。

三.xml的作用

  1. 数据存储和传输

XML可以作为一种通用的数据存储和传输格式,利用标签和属性描述数据的结构和意义,方便不同的应用程序之间进行数据交换和共享。

文档标记和表示

XML文档可以像HTML文档一样被浏览器解析和显示,但它比HTML更加灵活和可扩展,可以根据具体的应用需要定义自定义标签和属性。

数据验证和规范化

XML Schema是一种用于定义XML文档结构和约束条件的语言,它可以确保XML文档符合特定的数据格式和规范,有助于提高数据的质量和可靠性。

四.标准的xml格式

1.XML文件的第一行应该包含XML声明,用于指明XML版本和编码方式

2.有且只有一个根元素

3.xml标签大小写正确区分

4.正确使用结束标签

5.使用了合法的标签名

6.定义有效的属性

7.正确嵌套标签

五.元素的定义

1.在xml加入dtd声明

<!DOCTYPE []>

2.元素的分类

a.<ELEMENT element-name EMPTY>//空元素
b.<ELEMENT element-name(#PCDATA)>//文本元素
c.<ELEMENT element-name(e1,e2)>//混合元素

3.元素的限制

a.和(,)        或者(|)          例如:和(a,b)  或者(a|b)
b.次数:
       0或1:?
       0~N:*
       1~N:+

六.属性定义

1.语法

<!ATTLIST element-name att_name type desc>

2.属性类型

     

  1. CDATA:表示字符数据,可以包含任意字符,包括XML保留字符。

  2. ID:表示唯一的元素标识符,属性值必须是在文档中唯一的,不能出现相同的ID值。

  3. IDREF:表示元素标识符引用,该属性值必须是在文档中唯一的ID值。

  4. IDREFS:表示元素标识符引用列表,属性值由一个或多个IDREF值组成,使用空格分隔。

  5. ENTITY:表示一个已定义的内部或外部实体,该实体的名称为属性的值。

  6. ENTITIES:表示一个已定义的内部或外部实体列表,属性值由一个或多个ENTITY值组成,使用空格分隔。

  7. NMTOKEN:表示一个不包含空格和保留字符的名称,可由字母、数字、下划线、连字符和句点组成。

  8. NMTOKENS:表示一个不包含空格和保留字符的名称列表,属性值由一个或多个NMTOKEN值组成,使用空格分隔。

  9. NOTATION:表示一个已定义的标记标识符。

  10. ENUM:表示一个枚举值列表,属性值由某个特定集合中的一个值组成。它可以看作是一种特殊的NMTOKENS类型。

3.属性描述

1.#REQUIRED

表示该属性是必须的,即在该元素中必须定义该属性,并且不能省略。

<!ATTLIST book
    id     ID      #REQUIRED
    title  CDATA   #REQUIRED
    author CDATA   #REQUIRED
    pages  CDATA   #REQUIRED>

2.#IMPLIED

表示该属性是可选的,即在该元素中可以定义该属性,也可以不定义。如果没有定义该属性,则使用DTD中规定的默认值。

<!ATTLIST book
    id     ID      #REQUIRED
    title  CDATA   #IMPLIED
    author CDATA   #REQUIRED>

3.#FIXED

表示该属性的值是固定的,就算在元素中也不能改变。

<!ATTLIST book
    id     ID      #REQUIRED
    title  CDATA   #IMPLIED
    author CDATA   "John Doe"
    pages  CDATA   #FIXED "100">

4.枚举值

对于枚举类型的属性,可以指定属性的值必须在固定的枚举列表中。

<!ATTLIST book
    id     ID      #REQUIRED
    type   (hardcover, paperback)   #IMPLIED
    author CDATA   #REQUIRED>

5.数据类型

可以指定属性的数据类型,包括预定义的数据类型和用户自定义的数据类型。

注:大家在使用类型时要注意约束与类型的使用

以下是我的一篇范例,仅供参考

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons [
<!ELEMENT persons (person*)>
<!ELEMENT person (name,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT br EMPTY>
<!ATTLIST person
	pid ID #REQUIRED
	sex (男|女) "女"
	qq CDATA #IMPLIED
	parent IDREF #IMPLIED
	>
]>
<persons>
	<person pid="p1" sex="男" qq="aaa" parent="p2">
		<name>张小明</name>
		<age>10</age>
		<contact>
			<phone>1234567</phone>
		</contact>
		<br/>
	</person>
	<person pid="p2">
		<name>张大明</name>
		<age>35</age>
		<contact>
			<email>123@qq.com</email>
		</contact>
	</person>
</persons>

码农不易,多多支持

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值