目录
1.XML文件的第一行应该包含XML声明,用于指明XML版本和编码方式
一.什么是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的作用
-
数据存储和传输
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.属性类型
CDATA:表示字符数据,可以包含任意字符,包括XML保留字符。
ID:表示唯一的元素标识符,属性值必须是在文档中唯一的,不能出现相同的ID值。
IDREF:表示元素标识符引用,该属性值必须是在文档中唯一的ID值。
IDREFS:表示元素标识符引用列表,属性值由一个或多个IDREF值组成,使用空格分隔。
ENTITY:表示一个已定义的内部或外部实体,该实体的名称为属性的值。
ENTITIES:表示一个已定义的内部或外部实体列表,属性值由一个或多个ENTITY值组成,使用空格分隔。
NMTOKEN:表示一个不包含空格和保留字符的名称,可由字母、数字、下划线、连字符和句点组成。
NMTOKENS:表示一个不包含空格和保留字符的名称列表,属性值由一个或多个NMTOKEN值组成,使用空格分隔。
NOTATION:表示一个已定义的标记标识符。
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>