XML基础学习

XML是可扩展标记语言,用于结构化数据,与HTML不同,它更关注数据而非显示。XML简单易读,适合跨平台数据交换。本文详细介绍了XML的结构,包括元素、属性,以及XML文档的验证规则,强调了XML在数据存储和传输中的重要性。
摘要由CSDN通过智能技术生成

XML介绍

XML:eXtensible Markable Language,可扩展的标记语言。用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows,Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

XML与数据库的区别

XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是存储数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

XML与HTML的区别

设计上:XML的核心是数据,其重点是数据的内容。而HTML 被设计用来显示数据,其重点是数据的显示。

语法上:HTML的标记不是所有的都需要成对出现,XML则要求所有的标记必须成对出现;HTML标记不区分大小写,XML则 大小敏感,即区分大小写。


XML学习

XML的结构
XML具有自我描述性。XML文档必须包含根元素,根元素是所有子元素的父元素,同一级别的子元素互为兄弟元素,子元素还可以有下一级子元素。整个XML文档形成一棵文档树,顶点是根元素,下面是各级子元素。每个元素都可以有属性和文本内容。

如某个XML文件:

<bookstore>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
 <price>29.99</price> 
</book>
</bookstore>
这个XML文件形成的文档树如下:

XML语法

(1) 所有XML元素都必须有关闭标签(注意:XML声明不属于XML本身的组成部分,所以不需要有关闭标签
(2) XML元素对大小写敏感
(3) XML 必须正确地嵌套
(4) XML 文档必须有根元素(注意:根元素有且只有一个
(5) XML 的属性值须加引号
(6) 实体引用
(7) XML 中的注释(注释:<!-- 这是XML注释 -->)
(8) XML 以 LF 存储换行
(9) 在 XML 中,空格会被保留
实体:
实体的作用:避免重复输入。
XML预定义的实体

实体符号
&gt;>
&lt;<
&amp;&
&quot;"
&apos;'
自定义实体语法:

<!DOCTYPE 根元素 [
<!ENTITY 实体名 "实体内容">
]>
使用自定义的实体:&实体名;

XML元素

XML元素指的是从开始标签直到结束标签的部分,包括开始标签和结束标签。元素可包含其他元素、文本或者两者的混合物。
XML元素的命名规则:
(1) 可以含字母、数字以及其他的字符
(2) 不能以数字或者标点符号开始
(3) 不能以字符 “xml”(或者 XML、Xml)开始
(4) 不能包含空格
最佳命名习惯:
名称具有描述性。使用下划线的名称也很不错。
(1) 名称应当比较简短
(2) 避免 "-" 字符
(3) 避免 "." 字符
(4) 避免 ":" 字符
XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。

XML元素是可扩展的
XML属性

XML属性必须使用引号包围,单引号或双引号均可,属性还可以引用实体。

<person sex="female">
<person sex='female'>
<gangster name='George "Shotgun" Ziegler'>
<gangster name="George &quot;Shotgun&quot; Ziegler">
因使用属性而引起的一些问题:
(1) 属性无法包含多重的值(元素可以)
(2) 属性无法描述树结构(元素可以)
(3) 属性不易扩展(为未来的变化)
(4) 属性难以阅读和维护
如:
<note day="08" month="08" year="2008"
to="George" from="John" heading="Reminder" 
body="Don't forget the meeting!">
</note>
请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
XML验证

有正确语法的XML叫做“格式正规”的XML。
格式正规("well formed")的规则:
(1) 必须有根元素
(2) 必须有关闭标签
(3) 标签对大小写敏感
(4) 必须被正确的嵌套
(5) 属性必须加引号
(6) 必须有声明语句 <?xml version="1.0" standalone="true" encoding="utf-8" ?>
可以通过DTD或者Schema来对XML进行验证。
如XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note> 
验证XML的DTD文件:
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]> 

XML的样式
可以建立一个样式文件名为style.css,然后在XML文件中引用这个样式文件,通过<?xml-stylesheet type="text/css" href="style.css" ?>应用样式文件。

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="style.css"?>
<root>
...
</root>
对于XML的样式,XSTL是首选,而不是CSS。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值