【XML】我所知道的XML
XML是什么
XML(EXtensible Markup Language 可扩展标记语言)
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
(以上释义来自百度百科)
- XML 是一种标记语言,很类似 HTML.
- XML 的设计宗旨是传输数据,而非显示数据.
- XML 标签没有被预定义。您需要自行定义标签.
- XML 被设计为具有自我描述性.
- XML 是独立于软件和硬件的信息传输工具.
- XML 是 W3C 的推荐标准.
XML与HTML的区别
XML | HTML |
---|---|
传输和存储数据,其焦点是数据的内容 | 显示数据,其焦点是数据的外观 |
传输信息 | 显示信息 |
不是HTML的替代,而是补充 | – |
对大小写敏感,且必须有关闭标签 | 可以没有关闭标签 |
例如????
XML: <p>This is a paragraph</p>
HTML: <p>This is a paragraph
XML树结构
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
XML 文档必须包含根元素。该元素是所有其他元素的父元素。
XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
所有元素均可拥有子元素:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
所有元素均可拥有文本内容和属性(类似 HTML 中)。举个栗子????
这张图片表示下面的 XML 中的一本书:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
栗子中的根元素是 <bookstore>
。文档中的所有 <book>
元素都被包含在 <bookstore>
中。
<book>
元素有 4 个子元素:<title>、< author>、<year>、<price>
XML实体引用
在 XML 中,一些字符拥有特殊的意义。
如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
在 XML 中,有 5 个预定义的实体引用:
XML 命名规则
XML 元素必须遵循以下命名规则:
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
- 可使用任何名称,没有保留的字词
XML约束—DTD
(1)为什么要有约束?
- XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)
- XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束。
- 两个概念:格式良好的XML:遵循XML语法的XML。有效的XML:遵循约束文档的XML
总之:约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。
(2)XML约束概述
XML约束概念:在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
常用的约束技术:XML DTD 和XML Schema
(3)DTD(Document Type Definition),全称为文档类型定义
复杂标签:<!ELEMENT 标签名 (子节点)>
简单标签:<!ELEMENT 标签名 (#PCDATA)>
引入DTD:<!DOCTYPE 根节点 SYSTEM "dtd的地址">
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
XML约束—Schema
W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
第一次学习这个知识,还是有点陌生,慢慢来。????????????