XML(1)——XML概述

版权声明:转载请注明出处 https://blog.csdn.net/le_17_4_6/article/details/86693792

XML概述

SGML

20世纪60年代,为促进数据交换和互操作,IBM提出了一种描述文本及其格式的通用标记语言GML(Generalized Markup Language)。
GML的重要概念:
—文件中能够明确的将标记与内容分开
—所有文件的标记使用方法均一致
1983年,在GML的基础上演化出了标准通用标记语言SGML(Standard Generalized Markup Language)。
1986年,SGML被ISO接纳为国际标准。

XML

为了解决HTML的不足,1996年,W3C(World Wide Web Consortium)开始探索应用SGML于web上的方法。
1998年2月,W3C发布了可扩展标记语言XML(eXtensible Markup Language)1.0规范。


HTML文档

HTML文档是用一系列“<”和“>”符号,把具有特定含义的英文字符串包括起来,构造成称为标记的元素来描述文档内容的。

<HTML>
    <head>
       <title>你好</title>
    </head>
    <body bgcolor=yellow text=blue>
       <p>这是我的第一个网页</p>
    </body>
</HTML>

  • HTML标记—超链接
    HTML文件中最重要的应用之一就是超链接。超级链接除了可链接文本外,也可链接各种媒体。
	1.同一个文档内的链接 
	   <a href=“#name1”>链接</a>
	   <a name=“name1”>目标位置</a>
	2.不同文档之间的链接
	    <a href=“http://www.fzu.edu.cn”>链接</a>
	3.发送电子邮件
	     <a href=“mailto:[email protected]”>链接</a>
	4.链接FTP
	     <a href=“ftp://210.34.48.50”>链接</a>

  • HTML标记—文本
    文本在网页在一个很重要的位置,HTML定义了一系列标记来修饰文本。
	1.换行标记<br>
	2.段落标记<p>
	3.预定义文本标记<pre> 
	4.居中对齐标记<center> 
	5.引用标记<blockquote> 
	6.标尺标记<hr>
	7.地址标记<address>
	8.注释标记 <!- -注释内容-->
	9.标题文字标记<hn>
	10.文字格式控制标记<FONT>

  • HTML标记—表格标记
    表格在网站应用中非常广泛,很多动态大型网站也都是借助表格进行页面排版。
	表格的基本标记:   
	  <table>
	  <th>
	  <tr>
	  <td>
  • HTML标记—多媒体标记
    通过多媒体标记,可以在网页中插入图片、声音、视频、Flash动画等。
多媒体标记:   
  <img>
  <embed>
  • HTML标记—表单标记
    表单在Web网页中用来给访问者填写信息,从而能采集客户端信息,使网页具有交互的功能。
1.表单的基本标记<form><input>
2.菜单下拉列表框<select> 
       <option> </select>
3.多行的文本框<textarea></textarea>
XML

XML (eXtensible Markup Language,可扩展标记语言)是一种描述数据和数据结构的语言,可以保存在任何存储文本的文档中,具有人机可读、内容和显示相分离、可扩展、平台无关的特点。

张三
2007年3月2日
脸盆
20

李四     
2007年3月8日 
牙刷     
10

====>>

<?xml version="1.0" encoding="GB2312" ?>
<销售清单>
   <顾客>
      <姓名>张三</姓名>
      <日期>2007年3月2日</日期>
      <商品>脸盆</商品>
      <售价 售价单位="人民币">20</售价>       
   </顾客> 
   <顾客>
     <姓名>李四</姓名>
     <日期>2007年3月8日</日期>
     <商品>牙刷</商品>
     <售价 售价单位="人民币">10</售价>
   </顾客> 
</销售清单>

优点:

  • 内容与显示相分离
  • 内容被划分为多个部分,具有结构
  • 赋予文档一定的语义
  • 较容易被机器所处理
HTML和XML

HTML用来“如何显示数据”,它的作用只是用来修饰文档上面的数据,XML可以用来表示“数据是什么”。二者同为标记语言,有着相似的语法。

  • HTML文档主要包含显示标记,主要为了浏览。
  • HTML包含预定义的标记集。
  • XML可定义自己的标记集,可扩展性强。
  • XML标记表示了数据的逻辑结构,同时进行严格的语法和语义检查。
  • XML文档将数据与显示格式分离。
XML相关技术
  • XML数据类型定义与文档有效性验证技术(DTD、XML Schema)
  • XML文档数据显示和转换技术(CSS、Data Island、XSLT)
  • XML文档访问接口技术(DOM、SAX)
  • XML的查询检索和链接技术(XPath、XLink、XPointer)
XML技术的应用
  • XML数据库:
    —NXD(Native XML Database)
    —XEDB(XML Enable Database)
  • 地理标记语言:Geography Markup Language (GML)
  • 网络内容聚合: Real Simple Syndication (RSS)
  • Web服务:Web Service Description Language(WSDL)
  • 工作流(业务流程执行语言):Business Process Execution Language(BPEL)
  • 基于web的语音应用:VoiceXML
  • 室内定位与导航:IndoorGML
  • 虚拟三维城市:CityGML
  • ……

XML基本语法

XML的语法基础

XML声明
<? xml version=“1.0”?>

XML声明必须是文档的第一部分
声明以“<?”开始,以“?>”结束
属性有三个,一个为version,一个为standalone,另一个为encoding。
version:指明版本号
standalone:指明该文档是否是独立的
encoding:表示文件采用的字符集,默认为UTF-8。

XML标记

XML是基于文本的标记语言,标记(tag)就是XML文档最基本的组成部分。
XML的标记由用户自行规定。
XML标记负责提供和描述一个XML文件或数据包(XML实体)的内容结构。

  • 命名规则
    首字符是英文字母、汉字或_,后跟数字和其他字符。
    严格区分英文字母的大小写。
    不能独立使用数字作为名称。
    不能使用“<”,”>”,”?”,”/”,”&”,”+”,”*”等符号作为标记名。

  • 标记嵌套
    XML只能有一个称为“根”的元素,其他标记必须写在该根标记内部。
    标记可以包含值,也可以为空,也可以包含下一级标记。
    某标记的所有子标记,必须写在该标记的起始和结束标记之间。

  • 空标记
    XML标记分为非空标记和空标记两种类型。
    1.非空标记

<?xml version="1.0" ?>
<员工>
  <姓名>李亮</姓名>
  <性别>male</性别>
  <出生日期>1978.2.5</出生日期>
</员工>

2.空标记

<book name=“XML实践教程”  />    
或者 <book name=“XML实践教程”>  </book>
  • 属性
    属性对标记做进一步说明。如HTML中:
    <img src=“” width=“” height=“”/>
    例:
<cloth>
   <shirt>
       <name>金利来</name>
       <size>170/92A</size>
       <price currency=“RMB” unit=“yuan”>420.00</price>
   </shirt>
</cloth>
  • 属性的使用规则

    • 属性必须定义在起始标记内。
    • 属性名的命名规则和元素的命名规则相同,可以由字母、数字、中文及下划线组成,但必须以字母、中文或下划线开头。
    • 属性名区分大小写。
    • 属性值必须使用单引号或双引号。
    • 如果属性值中要使用左尖括号"<"、右尖括号">"、连接符号"&"、单引号"‘“或双引号”""时,必须使用实体引用。
  • 实体Entity

    • XML文档可以包含若干个存储单元,这些存储单元叫做实体,由实体名称来标识。
    • 在XML文档中,所有文本都会被解析器解析。但如果在实际运用中,需要在XML文档内引用左尖括号“<”、右尖括号“>”、连接符号“&”、单引号“‘”或双引号“””等特殊符号,可以用XML预定义实体来解决。
  • XML预定义实体

	&:  &amp;
	‘ :  &apos;
	>:  &gt;
	<:  &lt;
	“:    &quot;

XML预定义实体的例子

<customer>
    <name>Michael Calder </name>
    <age> &lt;30</age>
    <address>
         <street>44 McMahon &apos;s Rd</street>
         <suburb> Frankston</suburb>
     </address>
</customer>
  • 一般实体
声明方式
     <!ENTITY 实体名 实体定义>
如:
    <!ENTITY qhPress “清华大学出版社”>
引用方法:
   &实体名;
如:
    <press>&qhPress;</press>
  • 参数实体
声明方式
     <!ENTITY %实体名 实体定义>
如:
    <!ENTITY %dataType “(#PCDATA)”>
引用方法:
   %实体名;
如:
    <!ELEMENT name %dataType;>
  • 内部实体
内部实体:在文档内部进行实体的定义。
如:
    <?xml version=“1.0” ?>
    <!DOCTYPE books[
       <!ENTITY qhPress “清华大学出版社”>
     ]>
    <books>
        …..
    </books>
  • 外部实体
外部实体:在文档外部进行实体的定义。
定义格式:
   <!ENTITY 实体名 SYSTEM/PUBLIC URI NDATA 类型名>
例:
 <!ENTITY  fact  SYSTEM  “http://www.a.com/fact.xml”>
 <!ENTITY  src  SYSTEM  “pic.gif”  NDATA  GIF>
  • 实体使用规则

引用实体前,必须先定义实体。
内部实体位于xml文档内部,外部实体独立于XML文档,是一个结构良好的XML格式文件。
实体引用不能出现递归引用。

  • 处理指令PII
    处理指令(Process Instrument),用于给XML解析器提供信息。
    PI的命令格式以”<?”开始,并以”?>”结束
    <?xml stylesheet type=“text/xsl” href=“d:\mystyle.xsl”?>
    当XML元素被解析的时候,XML元素内部的文本也会被解析。只有在CDATA段之内的文本会被解析器忽略。CDATA段就是用来包含文本的方法,它通常用于建立代码的脚本。
    一个CDATA段以“<![CDATA[”标记开始,以“]]>”标记结束。
<?xml version="1.0" encoding="gb2312"?>
<tests>
  <test1>这是测试CDATA节的例子</test1>
  <![CDATA[以下是一段JSP程序!
<% page contentType="text/html;charset=GB2312"%>
<% page language="java" %>...
]]>
  <test2>测试示例结束</test2>
</tests>
  • 注释

    • 格式:
      <!--注释的文字-->
    • 规则:
      –不能出现的XML文档的第一行。
      –注释不能出现在标记”<“、”>”内。
      –不能嵌套注释。
  • XML的文档结构

    • 一个格式规范的XML文档会遵守W3C的XML1.0推荐标准的语法要求,它主要由序言(声明)和主体组成。
    • 序言部分由XML声明、DTD声明、名称空间声明、调用转换文本语句行等构成。
    • 主体部分至少包含一个根元素。
  • 结构良好的XML文档

    • 文档包含一个或多个元素
    • 它只有一个包含所有其它元素的元素
    • 元素相互间的嵌套要正确
    • 用在开始和结束标识符中的元素名要精确匹配
    • 属性名不能在同一元素开始标识符中出现多次
    • 属性值必须括在单引号和双引号中
    • 元素内容、属性值中引用的特殊字符,用实体引用替换。
  • 名称空间的概念

    • 名称空间是XML名称的集合。可以用于把元素及其属性限定在特定的名称空间中,以消除元素名称的不确定性。
    • XML命名空间是XML元素解决多义性和名字冲突问题的方案。W3C组织的推荐书对“XML命名空间”(1999年1月14日)的解释:
      XML命名空间是命名的汇集,它由URI(Uniform Resource Identifier,统一资源标识符)确定,在XML文件中作为元素类型和属性名使用。
      URL(Uniform Resource Locator):统一资源定位符,一般用于指明互联网资源的位置。
      URN(Uniform Resource Name):统一资源名称,一般用于指明互联网资源的名称。如 urn:ISBN:0-395-36341-1
  • 名称空间的声明

声明的语法形式:
   xmlns:prefix=“uri”
例:
 <goods xmlns:s=“…”
              xmlns:t=“…”
 >
   <s:shirt> <!-- shirt称为本地名(local name) -->
			<!-- s:shirt称为完全限定名(Qname, Qualified Name) -->
      <s:name>金利来</s:name>
   </s:shirt>
   <t:trousers>
      <t:name>李宁</t:name>
   </t:trousers>
</goods>

默认名称空间

不声明名称空间前缀

<a xmlns=“…”>
     <b>…..   //则a与b都在同一个名称空间下
</a>
   
仅应用在元素上
<a xmlns=“…” c=“5”>
     <b>…..   //则a与b都在同一个名称空间下
</a>

使用多个名称空间

<?xml version="1.0"?>
<cn:package xmlns:un="http://usa" xmlns:cn="http://china">
    <cn:width cn:unit="cm">20</cn:width>
    <cn:height un:unit="in">15</cn:height>
</cn:package>

语言标识

可以用xml:lang属性,指明某XML元素及其属性所用的自然语言。
如:
   <book xml:lang=“en”>
      <name>XML Guide</name>
   </book>

猜你喜欢

转载自blog.csdn.net/le_17_4_6/article/details/86693792
今日推荐