zoukankan      html  css  js  c++  java
  • XML

    XML简介:
    XML是用来描述数据的,XML的标记不是在XML中预定义的,你必须定义自己的标记,XML使用文档 
    类型定义(DTD)或者模式(Schema)来描述数据,XML使用DTD或者Schema后就是自描述的语言,XML 
    (eXtensibleMarkupLanguage)是可扩展标记语言,它与HTML一样,都是处于SGML,标准通用语 
    言。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具 
    。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可 
    以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于 
    掌握和使用。

    作用:
    1、丰富文件(Rich Documents)-自定文件描述并使其更丰富; 
    2、属于文件为主的XML技术应用;
    3、标记是用来定义一块数据应该如何呈现;
    4、解释数据(Metadata)-描述其它文件或在线信息;
    5、属于数据为主的XML技术应用;
    6、标记是用来说明一块资料的意义;
    7、组态档案(Configuration Files)-描述软件的组态参数。

    语法:
    SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就 
    在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题这些问题,使建立一 
    个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定 
    义一直停滞不前。以这些问题作为出发点,XML逐渐步入视野。
    XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法: 
    1、某些起始标签不允许出现结束标签,例如HTML中标签。包含了结束标签就会出现错误。
    2、某些起始标签可以选择性出现结束标签或者隐含了结束标签,例如HTML中标签,当出现另一个 
    标签或者某些其他标签时,便假设在这之前有一个结束标签。
    3、某些起始标签要求必须出现结束标签,例如HTML中标签。
    4、标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如, 
    Thisisasamplestring是正确的。
    5、某些特性要求必须包含值,例如中的src特性。
    6、某些特性不要求一定有值,例如[td]中的nowrap特性。
    7、定义特性的两边有没有加上双引号都是可以的,所以和都是允许的。
    8、任何的起始标签都必须有一个结束标签。
    9、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符 
    号之前紧跟一个斜线(/),例如。XML解析器会将其翻译成。
    10、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如 
    thisisasamplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的 
    内部括号之前,是不能关闭外面的括号的。
    11、所有的特性都必须有值。
    12、所有的特性都必须在值的周围加上双引号。
    这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那 
    些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、 
    SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML。XML已经是世界上发展最快 
    的技术之一。它的主要目的是使用文本以结构化的方式来表示数据。在某些方面,XML文件也类似 
    于数据库,提供数据的结构化视图。

    文档结构:
    每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言。这一行代码会告诉解析器 
    和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,则是文档元素 
    (documentelement),它是文件中最外面的标签是起始标签和结束标签之间的内容)。所有其他 
    的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文 
    档元素;如果有注释或者其他内容,文档元素可以迟些出现。 页面再往下的一些地方,可以发现 
    标签里有一些特殊的语法。代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的 
    特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在之间才能合适地避免被解析 
    。这样的文本称为Character Data Section,简称CDataSection。

    XML工作过程:
    XML解析技术:
    1.文档对象模型(DOM),一种基于树结构的API。
    2.XML简单API(SAX),一种事件驱动的API.

    DOM解析:
    1.基于树状结构的API
    2.整个XML文档必须在内存中解析和存储
    3.客户端应用程序就可以随机访问这些对象
    4.大型文档则会造成内存紧张

    SAX解析:
    1.SAX提高一种用于解析XML文档的事件驱动模型,使用回调机制将事件通知应用程序

    2.特点:
    不必将整个文件加载到内存中,占有的内存少;
    不能对文档进行随机访问;
    SAX是只读的;
    文档只能遍历一次。

    DOM和SAX解析技术的实现:
    1.JAXP(Java API for XML):JAXP是对应用程序隐藏了特定解析器的接口,它提供了访问DOM和 
    SAX实现的抽象层机制。
    2.JDOM:基于树型结构,利用纯JAVA的技术对XML文档操作把SAX和DOM的功能有效地结合起来用 
    Java语言读、写、操作XML的优化API
    3.DOM4J:采用了java结合框架并完全支持DOM,SAX和JAXP性能优异、功能强大和易用使用大量使 
    用接口,灵活性高。

  • 相关阅读:
    公钥基础设施PKI 简介
    密码库LibTomcrypt的内容介绍及分析
    trace
    winform(C#)拖拽实现获得文件路径
    无线网络技术
    设备控制选项的部分列表
    dll #pragma data_seg注意事项
    RFC
    奥运火炬传递路线
    WMIC命令大全
  • 原文地址:https://www.cnblogs.com/lenlai/p/8647544.html
Copyright © 2011-2022 走看看