XML入门基础

前端之家收集整理的这篇文章主要介绍了XML入门基础前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

学习XML的时候,我们自然而然的就想起了HTML,HTML在前面的博客已经做了介绍,下面主要是介绍XML的相关基础。

一、XML?

HTML(HyperTextMarkupLanguage)超文本标记语言,是用来描述网页文档的一种语言。

XML(EXtensibleMarkupLanguage)是一种类似HTML的可扩展标记语言,但是它不是用来显示数据的,而是用来包含和传输数据。一般用来配置文件,携带方面。


1.世界上任何事物都是变化发展的——XML发展历史:



2.XML与HTML的差异:

  • XML不是用来替换HTML的技术
  • XML和HTML为不同的目的而设计
  • XML设计的核心是包含与传输数据
  • HTML设计的核心是显示数据


3.XML的树状结构

XML文档形成了一种树结构,从“根部”开始,扩展到“枝叶”。例如:


从上面的实例我们可以看出,XML的组成包括:声明、标签(尖括号)、元素(根元素、父元素、子元素)等等。XML文档中的元素形成一颗文档树。这棵树从根部开始,并扩展到树的最低端。好处是:结构清晰、易于读取、处理、添加修改子节点。


4.XML构建模块——元素、属性、实体、PCDATA、CDATA


(1)元素

元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。 元素也可拥有属性

命名空间:解决名称冲突问题

(2)属性

属性提供关于元素的额外(附加)信息。

XML属性值必须被引号包围,不过单引号和双引号均可使用。

(3)实体

实体是用于定义引用普通文本或特殊字符的快捷方式的变。

实体引用是对实体的引用,为了避免把字符数据和标签中需要用到的一些特殊符号相混淆。


在XML中有5个被预定义的实体引用:

注释:在XML中仅有字符:“<"和”&“是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是一个好习惯。通常来说,所有XML文档中的文本均会被解析器解析。只有CDATA区段(CDATA section)中的文本会被解析器忽略。


(4)CDATA

CDATA指的是不应由XML解析器解析的文本数据(UCDATAUnparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束。

于 CDATA 部分的注释:

CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。

标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。

(5)PCDATA

PCDATA 指的是被解析的字符数据(Parsed Character Data)。

XML 解析器通常会解析 XML 文档中所有的文本。

当某个 XML 元素被解析时,其标签之间的文本也会被解析,所以非法的XML 字符必须被替换为实体引用(entity reference)。

5、XML语法规则:

  • XML 文档必须有根元素XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素
  • XML文件必须有关闭标签
  • XML标记对大小写敏感
  • XML元素必须被正确的嵌套
  • XML属性必须加引号

上面介绍了XML相关的语法结构以及语法规则。但是这些都是由谁来定义和提供的呢?XML文档是一种结构化的标记文档,其文档的规范性由:DTD (Document Type Definition)和Schema两种方式进行制定 。


二、DTD

1.定义、用途?
文档类型定义(DTD)定义XML文件的结构,为XML文件提供语法与规则;内容既可以定义在XML文件中,也可以定义在XML文件外,使用XML进行数据交换的行业或组织可定义自己的DTD,DTD对于XML是可选内容
为什么要使用DTD呢?
为了正确交换数据,XML需要确定的结构,所以通过DTD,每一个XML文件可携带一个又关其自身格式的描述;独立的团体可一致的使用某个标准的DTD来交互数据;使用DTD来验证外部接受到的数据或是验证自身的数据。

2.DTD结构
(1)元素
在一个DTD中元素声明使用下面的语法:
  <!ELEMENT 元素名称 类别>或者<!ELEMENT 元素名称(元素内容)>
例如:<!ELEMENT 书名(#PCDATA)><!ELEMENT计算机书籍 (书名,价格,简要介绍)>
a.空元素声明: 
<!ELEMENT 元素名称 EMPTY>
例如:<!ELEMENT br EMPTY>
b.带有任何元素的声明: 
<!ELEMENT 元素名称 ANY>
例如:<!ELEMENT note ANY> 
c.带有子元素的声明:
<!ELEMENT 元素名称 (子元素名称1,子元素名称2...)> 
例如:<!ELEMENT note (to,from,heading,body)>
注释:当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。
d.声明只出现一次的元素:
<!ELEMENT 元素名称 (子元素名称)>
例如:<!ELEMENTnote (message)>

e.声明最少出现一次的元素

<!ELEMENT 元素名称 (子元素名称+)>
例如:<!ELEMENT note (message+)>

f.声明出现零次或多次的元素
<!ELEMENT 元素名称 (子元素名称*)>
例如:<!ELEMENT note (message*)>
g.声明出现零次或一次的元素
<!ELEMENT 元素名称 (子元素名称?)>
例子:<!ELEMENT note (message?)>
h.声明“非.../既...”类型的内容
<!ELEMENT 元素名称(子元素名称|子元素名称2)>
例子:<!ELEMENT note (to,header,(message|body))>
i.声明混合型的内容
<!ELEMENT元素名称(#PCDATA|子元素名称)*>
例如:<!ELEMENTnote (#PCDATA|to|from|header|message)*>
(2)属性
在DTD中,属性通过ATTLIST来进行声明
语法: <! ATTLIST 元素名称 属性名称 属性类型 默认值>
例如:<!ATTLISTpayment type CDATA "cash">

属性类型:

默认值:
(3)实体

是用于定义引用普通文本或特殊字符的快捷方式的变量

实体引用是对实体的引用

实体可在内部或外部进行声明


a.内部实体声明的语法: 

<!ENITY 实体名称 “实体的值”>

例子:<!ENITY writer "Bill Gates">

<!ENTITY copyright "Copyright W3School.com.cn">

b.外部实体声明的语法
<!ENITY 实体名称 SYSTEM "URI/URL">
例如: <!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">

三、Schema技术

1.定义、作用?
Schema是用来描述XML文档的结构,是基于XML的DTD替代者,XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。使用Schema可保护数据通信。

2.Schema是DTD的继任者
  • 可针对未来的需求进行扩展
  • 更完善,功能更强大
  • 基于XML编写
  • 支持数据类型
  • 支持命名空间
总结:XML是一种可扩展的标记语言,DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看XML文档是否符合规范,元素和标签是否正确。一个DTD文档包含:元素、元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。Shcema模式,是DTD的继任者,比DTD的功能更为强大。
原文链接:https://www.f2er.com/xml/299266.html

猜你在找的XML相关文章