您的位置:首页 > 编程语言 > Java开发

中软Java8月16日学习笔记之xml

2016-08-21 14:28 453 查看
XML是EXtensible Markup Language的缩写

     可扩展的标记性语言

  <Schools>

      <school  name="昌平一中">

            <class  name="java-1班" stunum="56">

                <student>  </student>

                <device>  </device>

            </class>

            <class  name="java-2班" stunum="50">

                <student>  </student>

                <device>  </device>

            </class>     

      </school>

      <school name="北京四中">

      </school>

      <school>   </school>

 </Schools>

HTML : Hyperlink make language  

XML与HTML之间的关系:

      A、 XML包含HTML                    -------???

      B、 XML是对HTML的一个补充          -------???

      HTML是在网络通信中,传递的含有展示样式的数据。这些数据由浏览器解释执行;

      XML可以应用于各行各业,甚至是任何地方

      XML的功能远远大于HTML

      XML的解析使用DOM、SAX两个接口

      HTML是有容错性的,所以它不是标准的XML,也不能使用DOM和SAX解析HTML

      XML是大小写敏感的,HTML不敏感

      小结:HTML是基于XML规范下的,在Internet上传输并展现数据的一种具体应用;

      

      

XML的重要特性:

    1. 可扩展  (每个节点或元素都可以自由的扩展)

    2. 标记性语言   

         C++ VB  JAVA等都是编译性语言

         HTML 和 XML 是不需要编译的

      

       如何执行标记性语言?

           C++等编译性语言,执行靠CPU

           JAVA等半编译语言,执行靠虚拟机的解释

           HTML等标记性语言,执行靠浏览器等进行解释

           XML也是标记性语言: 1、先约定好XML标签的含义

                               2、写解释器去解释执行相应的XML文件

    3. XML最重要的体现是数据的载体

       其它数据载体: 如数据库、文件、磁盘、光盘

       XML可以完全替代数据库,作为数据载体

     4.XML不仅是数据的载体,而且可以描述数据的格式

       XML使用DTD或者Schema后就是自描述的语言--------------------像数据库的表结构

       举例:学生表会有表机构      (姓名、年龄、性别、身高、入学成绩)

             会有多名学生的具体数据 (张三、21、男、176、620)

    5. DTD或者Schema是XML的结构描述,而且他们本身也符合XML规范

    6. XML必须要求格式良好,需要进行格式校验   (有根、成对匹配等)

    7. XML便于数据承载和数据交换。尤其是在跨平台环境下的数据交换,优势明显     ----- 主要用途

       大企业中有非常多的业务子系统,在同一个企业中,数据和业务一定会有交叉,这时就需要数据交换

       系统之间的数据交换模式:

                     1. Web Service    (数据格式是XML的,WSDL)

                     2. XML文件

XML文档中的基本信息:

    1、 声明

         <?xml version=“1.0” encoding=“GB2312”?>

    2、根元素

           

    3、子元素

    4、tag  标签项

 

    5、 节点  Node     (XML文档是树形)

    6、 attribute  元素的属性信息(按照对象的角度看)

    7、 <!-- 这是一个注释 -->

    8、 <![CDATA[ ...Anything can go here... ]]>

 

XML使用 Document Type Definition (DTD) 或者 XML Schema 描述数据

   

XML文件的解析方式:

    DOM(Document object model )  , SAX

DOM的特点: 把整个XML文档,一次性的读入内存,生成org.w3c.dom 接口 Document对象

            document对象的数据组织形式是树形

            可以使用DOM中的方法反复读取document中的内容(正序、反序)

            可以使用DOM中的方法编辑document中的元素

             缺陷:当读取大文件时,会出现很大的性能障碍

SAX:      DefaultHandler

          读取XML文件,采用事件机制  (observe模式,观察者,发布/订阅)

          void startDocument()        接收文档开始的通知

          void endDocument()           接收文档结束的通知

          void startElement(String uri, String localName, String qName, Attributes attributes)           接收元素开始的通知

          void endElement(String uri, String localName, String qName)           接收元素结束的通知。

          void characters(char[] ch, int start, int length)           接收元素中字符数据的通知

DOM解析:

    Document-->> NodeList getElementsByTagName(String tagname)

                  按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList

     Node-->>  NodeList getChildNodes()     包含此节点的所有子节点的 NodeList。

                       if(nd.getNodeType() == Node.ELEMENT_NODE)

                        {

                    

                }

          

    org.w3c.dom 接口 Element:

            String getAttribute(String name)           通过名称获得属性值

             String getTextContent()                 此属性返回此节点及其后代的文本内容  

练习:

      用XML文件配置数据库的连接信息:dbUrl, dbDriver,username,password

      用DOM模式读取这个文件,并设置成单例模式



XML之entity:

entity翻译为"实体"。你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。

<!DOCTYPE copyright [

<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"

]

>

<?xml version="1.0" encoding="GB2312"?>

<!DOCTYPE copyright [

<!ENTITY copyright "Copyright 2001, Ajie. All rights reserved">

]>

<myfile>

<title>XML</title>

<author>ajie</author>

<email>ajie@aolhoo.com</email>

<date>20010115</date>

©right;

</myfile>

//Enity外部引用示例

myenity.dtd

<?xml version="1.0" ?>

  <!ENTITY writer "pccw.">内部entity

  <!ENTITY copyright "china">

  <!ENTITY frame SYSTEM "myentity01.xml"> 外部的entity引用myentity01.xml

外部的一个myentity01.xml

<?xml version="1.0" ?>

<stu>

<name>outman</name>

<age>15</age>

</stu>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: