XML入门

    XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

 

 XML实例  

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

  <book catalog="Programming">

  <title lang="en">C++ Programming Language</title>

  <author>Bjarne Stroustrup</author>

  <year>1998</year>

  <price>98.0</price>

  </book>

  <book catalog="Networking">

  <title lang="en">TCP/IP Illustrated</title>

  <author>Richard Stevens</author>

  <year>1996</year>

  <price>56.0</price>

  </book>

  </bookstore>

特性

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

  XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。

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

  为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。

  因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言

  XML英文解释 The Extensible Markup Language (XML) is a general-purpose specification for creating custom markup languages.It is classified as an extensible language, because it allows the user to define the mark-up elements. XML's purpose is to aid information systems in sharing structured data, especially via the Internet, to encode documents, and to serialize data; in the last context, it compares with text-based serialization languages such as JSON and YAML.XML began as a simplified subset of the Standard Generalized Markup Language (SGML), meant to be readable by people via semantic constraints; application languages can be implemented in XML. These include XHTML,RSS, MathML, GraphML, Scalable Vector Graphics, MusicXML, and others. Moreover, XML is sometimes used as the specification language for such application languages.XML is recommended by the World Wide Web Consortium (W3C). It is a fee-free open standard. The recommendation specifies lexical grammar and parsing requirements.

 

XML历史

  XML是从1996年开始有其雏形,并向 W3C(全球信息网联盟)提案,而在1998二月发布为W3C的标准(XML1.0)。 XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的 GML(Generalized Markup Language)标准化后的名称。

  GML的重要概念:

  文件中能够明确的将标示与内容区隔;所有文件的标签使用方法均一致.

  1978年,ANSI将GML加以整理规范,发布成为SGML,1986年起为 ISO 所采用(ISO 8879),并且被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂(标准手册就有500多页),难以理解和学习,进而影响其推广与应用。

  于是,人们对SGML进行了简化衍生出 HTML。HTML 简单,在初期没有任何定义文档外观的相关方法,仅用来在浏览器里显示网页文件。而后,随着因特网的发展,人们为了控制其文件样式,扩充了描述如何显现数据的卷标。在 Netscape 与 Microsoft 之间的浏览器大战后, HTML 标准权威性遭受重大的考验,所幸,到了HTML 4.0时,W3C 又恢复了其地位。

  同时W3C意识到HTML的原则:

  不能解决所有解释数据的问题 - 像是影音文件或化学公式、音乐符号等其它型态的内容。

  效能问题 - 需要下载整份文件,才能开始对文件做搜寻的动作。

  扩充性、弹性、易读性均不佳。

  为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。 XML是在一个这样的背景下诞生的——是不是能有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息?

  XML被广泛用来作为跨平台之间交互数据的形式,主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS等)可以完成最终的形式表达(生成对应的HTML,PDF或者其他的文件格式)。

  而XML目的即在于提供一个对信息能够做精准描述的机制,藉以弥补 HTML 太过于表现导向的特质。

作用

  丰富文件(Rich Documents)- 自定文件描述并使其更丰富

  属于文件为主的XML技术应用

  标记是用来定义一块数据应该如何呈现

  解释数据(Metadata)- 描述其它文件或在线信息

  属于数据为主的XML技术应用

  标记是用来说明一块资料的意义

  组态档案(Configuration Files)- 描述软件的组态参数

简明语法

  SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:

  1 某些起始标签不允许出现结束标签,例如HTML中<img>标签。包含了结束标签就会出现错误。

  2 某些起始标签可以选择性出现结束标签或者隐含了结束标签

  3 某些起始标签要求必须出现结束标签,例如HTML中<script>标签。

  4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is a sample string是正确的。

  5 某些特性要求必须包含值,例如<img src="picture.jpg">中的src特性。

  6 某些特性不要求一定有值,例如中的nowrap特性。

  7 定义特性的两边有没有加上双引号都是可以的,所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。

  这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入我们的视野。

  XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法:

  1 任何的起始标签都必须有一个结束标签。

  2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag />。XML解析器会将其翻译成<tag></tag>。

  3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。

  4 所有的特性都必须有值。

  5 所有的特性都必须在值的周围加上双引号。

  这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVGRDFRSSSOAPXSLTXSL-FO,而同时也将HTML改进为XHTML

  如果需要关于SGML和XML具体技术上的对比,请查看W3C的注解,位于:http:///TR/NOTE-sgml-xml.html

  如今,XML已经是世界上发展最快的技术之一。它的主要目的是使用文本以结构化的方式来表示数据。在某些方面,XML文件也类似于数据库,提供数据的结构化视图。这里是一个XML文件的例子:

 

文档结构

  每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,<books>,则是文档元素(document element),它是文件中最外面的标签(我们认为元素(element)是起始标签和结束标签之间的内容)。所有其他的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。

  范例文件中的第三行代码是注释,你会发现它与HTML中使用的注释风格是一样的。这是XML从SGML中继承的语法元素之一。

  页面再往下的一些地方,可以发现<desc>标签里有一些特殊的语法。<![CDATA[ ]]>代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在<![CDATA[和]]>之间才能合适地避免被解析。这样的文本称为Character Data Section,简称CData Section。

 下面的一行就是在第二本书的定义之前的:

  <?page render multiple authors ?>

  虽然它看上去很像XML序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。

XML文档有效性

  结构良好的XML文档

  如果某个文档符合XML语法规范,那么我们就说这个文档是“结构良好”的文档。使用本书讲到的XMLSpy 2006工具就可以测试某文档是否为结构良好的XML文档。

  有效的XML文档

  所谓有效的XML文档是指通过了DTD的验证的,具有良好结构的XML文档,在此大家要明白XML文档可分为结构良好的XML文档和有效的XML文档,以及他们之间的关系。即具有结构良好的XML文档并不一定就是有效的XML文档,反之一个有效的XML文档必定是一个结构良好的XML文档。

  XML文档的解析方式

  当前有两种解析方式: dtd (文档类型定义)和schema ( XML 模式)

XML文档对网站的重要性

  《互联网论坛收录开放协议》是搜索引擎制定的网站内容收录标准,可在网站根目录制作成遵循此开放协议的XML格式的网页供搜索引擎索引,将网页信息主动、及时地告知各大搜索引擎。 采用了《互联网论坛收录开放协议》,就相当于网页被搜索引擎订阅,通过搜索引擎平台,网民将有可能在更大范围内更高频率地访问到您的网站,进而为您的网站带来潜在的流量。

  以百度搜索引擎为例,将制作好的XML文件命名为sitemap_baidu.xml上传到您网站根目录下,并保证文件所在的url地址能够被百度spider正常访问。例如,网站为post.baidu.com,则将xml文件上传至post.baidu.com/sitemap_baidu.xml

  当百度spider发现了xml文件后,会根据上面提供的参数自动对xml文件进行更新,并抓取高质量的内容。

XML和HTML的差异

  XML和HTML的不同可以归纳为3点:

  ① XML扩展性比HTML强

  XML(Extensible Markup Languages)是扩展标记语言的英语缩写,他可以创建个性化的标记语言,可以称之为元语言。XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式在终端显示出来。HTML的功能只有浏览器放入显示和打印,仅仅适合静态网页的要求。

  ② XML的语法比HTML严格

  由于XML的扩展性强,它需要稳定的基础规则来支持扩展。它的严格规则为:

  1、起始和结束的标签相匹配

  2、嵌套标签不能相互嵌套

  3、区分大小写

  相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。

  ③ XML与HTML互补

  XML可以获得应用之间的相应信息,提供终端的多项处理要求,也能被其他的解析器和工具所使用,在现阶段,XML可以转化成相应的HTML,来适应当前浏览器的需求。

  XML 工具

  XML如果有一个好的编辑器就能够减少很多麻烦

  1 、XML Notepad

  一种软件

  软件大小: 1872 KB

  软件语言: 英文

  软件类别: 国外软件 / 共享版 / 字体工具

  应用平台: Win9x/NT/2000/XP/2003

  微软发布的XML Notepad,这是一个简单+好用的XML阅读和编辑工具,支持多种语法显示和数型结构排列并提供了大量编写XML所需的工具.

  2、XML Spy

  3、Xeena

  4、Xmetsal

注释

  有些时候,希望在XML文档中加入一些用做解释的字符数据,并且希望XML处理器不对他们进行任何处理。这种类型的文本称作注释文本。在XML中,注释的方法与HTML完全相同,使用"<!--"和"-->"将注释文本括起来,注释还有以下规定:

  ·注释不能被嵌套;

  ·在注释文本中不能出现字符"-"或"—";

  ·不要把注释文本放在标记之中,同样不要把注释文本放在实体声明之前或实体声明中。

处理指令PI

  处理指令是用来给处理XML文档的应用程序提供信息的,XML解析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:

  <? 处理指令名 处理指令信息?>

  下面是一个例子,它是描述辞典信息的XML文档:

  <?xml version="1.0"encoding="UTF-8" standalone="no"?>

  <?xml-stylesheet type="text/xsl"href="mystyle.xsl"?>

  <辞典>

  <词条>

  <词目>XML</词目>

  <解释>XML是一种可扩标记语言,它可用以规定新的标记规则,并根据这个规则组织数据。</解释>

  <示例>

  <!--XML示例>

  <![CDATA[

  <商品>

  <类型>食品类</类型>

  <价格>80元</价格>

  </商品>

  ]]>

  </示例>

  </词条>

  </辞典>

  其中的内容,

  <!--XML示例>

  <![CDATA[

  <商品>

  <类型>食品类</类型>

  <价格>80元</价格>

  </商品>

  ]]>

  即为PI部分。

XML的优势

  XML 的优势有以下六个方面:

  ①XML可以从HTML中分离数据

  通过XML,你可以在HTML文件之外存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在

  HTML文件之内;使用了XML,数据就可以存放在分离的XML文档中。这种方法可以让你集中精力去到使用

  HTML做好数据的显示和布局上,并确保数据改动时不会导致HTML文件也需要改动。这样可以方便维护页面。

  XML数据同样可以以“数据岛”的形式存储在HTML页面中。你仍然可以集中精力到使用HTML格式化和显示数据上去。

  ②XML用于交换数据

  通过XML,我们可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有N^N种形式,对于开发者来说,最耗时间的就是在遍布网络的系统之间交换数据。把数据转换为XML格式存

  储将大大减少交换数据是的复杂性,并且还可以使得这些数据能被不同的程序读取。

  ③XML和B2B

  使用XML,可以在网络中交换金融信息。在不远的将来,我们可以期望看到很多关于XML和B2B(BusinessToBusiness)的应用。XML正在成为遍布网络的商业系统之间交换金融信息所使用的主要语言。

  许多与B2B有关的完全基于XML的应用程序正在开发中。

  ④XML可以用于共享数据

  通过XML,纯文本文件可以用来共享数据。既然XML数据是以纯文本格式存储的,那么XML提供了一种与软件和硬件无关的共享数据方法。这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。同样,我们升级操作系统、升级服务器、升级应用程序、更新浏览器就容易多了。

  XML可以用于存储数据

  利用XML,纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据,一般的程序可以显示数据。

  ⑤XML可以充分利用数据

  使用XML,你的数据可以被更多的用户使用。既然XML是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的设备所利用,而不仅仅是基于HTML标准的浏览器哦。别的客户端和应用程序可以把你的XML文档作为数据源来处理,就像他们对待数据库一样,你的数据可以被各种各样的“阅读器”处理,这时对某些人来说是很方便的,比如盲人或者残疾人。

  ⑥XML可以用于创建新的语言

  XML是WAP和WML语言的母亲。无线标记语言,用于标识运行于

  手持设备上的Internet程序。

XML的层叠样式

  XML要将内容和表现分离, Web建造者需要新的方法来控制设计, 显示和输出.。

  Style sheet 是问题的答案. 目前, 有三种可用于XML的 style sheet::

  Cascading Style Sheets (CSS)

  Extensible Style Language (XSL)

  Document Style Semantics and Specification Language (DSSSL).。

  如果5.0版的浏览器支持XML, XML对现有的CSS标准的支持将会处理大部分基本的风

  格和页面问题. 但是CSS对于专业出版商可能不够强大. 所以, 另一端存在着

  DSSSL, 一个在使用SGML的高端出版商中流行的ISO (国际标准组织)标准. 然而,

  DSSSL是复杂的, 它处理的打印文档管理在Web上很少有用.。

  现在剩下了 Extensible Style Language (XSL), 特别为XML而写的style-sheet.

  XSL目前上交给了W3C作为一个提议, 它给了Web开发者和用户较HTML更多的表现灵

  活性. 例如, HTML的 <H2> 标识符在所有浏览器上的表现是基本一样的, 但是XSL

  让开发者指定他们的页面元素如何表现 (尽管用户可以在个人设置中覆盖它).。

  XSL较CSS更强大, 因为它使Web建造者创建可以动态改变其表现的文档.。例如, 你

  可以包含这样的程序语句, "如果一个XML元素的属性为数值10, 显示为绿色, 否则

  为黑色." 或者你可以将"仅供内部使用"作为属性给一个段落标上, 这样它在某些

  情况下不会出现. XSL被设计用于脚本语言如JavaScript[1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络数据库安全设计与实现 【摘 要】随着互联网飞速发展,网络环境日益开放,因此,网络数据库的安全问题显得越来 越重要。本文论述了网络数据库的安全设计,从三个方面阐述了网络数据库安全的实现 ,为网络数据库安全建设提供参考。 【关键词】网络数据库;设计;实现;加密;权限 1.引言 近年来,随着计算机科学技术的发展与普及,Internet得到了飞速发展,使得网络不 再是单纯的信使,而是一个开放性很强交互的平台,因此网络数据库的安全越来越重要 。多用户、高可靠性、频繁的更新和大文件是数据库的特性,这必然使得数据库的建设 和维护显得非常困难和繁琐,同时这也使攻击者有机可乘,利用数据库的一些不易觉察 的漏洞,进行非法操作。为此,本文主要探讨了网络数据库的安全设计及实现,为网络 数据库使用客户提供技术保障。 2.相关技术 2.1 基于角色的访问控制RBAC RBAC的原理描述如下:用户对应的访问权限是经过授权而获得的,权限只能与角色相 对应,角色与权限之间的关系是相互映射的。这样的访问控制方法可以有效简化授权, 同时又使指定和执行个性化保护策略的过程更加灵活。用户可以根据实际情况定义角色 ,也可根据需要重新改变角色。 2.2 .NET Framework .NET Framework是一个综合性的环境,涉及到用户创建、配置、运行网络服务及其它应用程序 。它主要由通用语言运行库、Framework共享对象类别库以及ASP.NET三个部分所构成: .NET Framework类库的特色为:提供可继承的基类;包涵基于Web的应用模型;提供Web服务框 架的组件以及相关服务等。 3.网络数据库安全的设计 3.1 系统的架构设计 本文研究的网络数据库安全访问系统主要分成三大部分,分别是:表示层、数据访问 层以及数据层,架构设计如图1所示。 由上图可知,整个系统都是基于认证服务器器。系统架构中的几个层次分别承担不同 的功能,而面向角色的数据库访问控制在每个层次中都有实现,并结合对应的安全策略 及组件来满足数据库访问机制的控制需求。其中,表示层是用户与系统之间的交互接口 ;数据访问层则是用户与数据库之间的核心层,主要负责逻辑方面的功能控制,涉及到 :认证以及数据加密等;数据层则是指数据存储、封装以及调用的功能层次。 图1 网络数据库安全访问系统的架构设计示意图 3.2 系统的访问策略设计 首先,针对用户端,系统必须提供友好的交互界面。本文研究的网络数据库安全访问 系统是基于Windows环境的,借助于.NET实现用户端的认证,并提供规范化的用户输入验 证。系统的服务器端会实时接受用户端的请求,并做出响应。此外,系统还对用户输入 信息进行有效过滤,可以避免网络上的一些恶意代码进行SQL形式的注入。 其次,系统数据流不仅包括数据本身,还包含密码及连接字符串等信息,如果不进行 相关处理而直接在网络上进行传输的话,容易造成信息的泄露,可见,对系统数据流进 行加密还是非常有必要的。 另外,面向角色的安全访问机制也是系统安全策略的重要组成部分,可以借助于认证 服务器完成。该认证服务器涉及到业务逻辑以及数据库认证授权等。只有被认证服务器 认证通过,并授权的用户才可以进行数据库进行访问等操作。 4.网络数据库安全的实现 4.1 系统表示层 网络数据库安全访问系统的表示层是系统的第一屏障,负责用户信息的接收、过滤以 及提交等。表示层主要是借助于窗体进行呈现,以树状列表显示用户名及其对应的角色 ,涉及到:用户登陆ID、用户名、登录时间以及相关权限等。系统表示层中窗体认证的 设计如下描述: (1)用户发出一个数据库连接请求,Internet信息服务允许该数据库连接请求,并 由.NET对进行检查。当用户请求认证通过后,就可以被定向到登录界面,用户必须提供 用户名及对应密码才可以提交登录窗体。 (2)系统针对用户提供的用户名及密码,根据数据库中相关信息进行匹配验证,如 验证通过即分配对应角色。同时,创建Cookie并反馈给用户端。这个时候,可以先将角 色暂存在对应的数据字段中,可以防止该用户后续发出的数据库连接请求时,重复获取 该角色。 (3)当用户被重定向到最初界面的时候,事件处理程序就会创建对象Iprinicipal, 并将该对象保存在Http Context中。最终,用户就根据角色分配登录不同的界面进行数据库的相关操作。 另外,系统表示层中涉及到了SQL注入式攻击的防范设计。本系统在进行SQL语句以及 存储过程调用的时候,直接使用Parameters集合,这样可以有效实现不管用户输入何字 符,都可以视为文本进行处理,且能够对字符进行类型以及长度方面的检查,有不合格 字符值时还可以触发异常。但需要注意的是,当SQL代码有异常出现时,不是直接将SQL 错误呈现给用户表示层,而是

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值