一.什么是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>
码农不易,多多支持