XML概述

1)什么是xml?

xml, eXtend Markup Language, 可扩展标记语言

2) html vs xml

都由w3c组织制定的.

html语法特征:语法比较松散

         1).不区分大小写 <p> <P> <br/> <BR/>

         2).标记的写法不严谨 <p>xxxx</p> <p>xxxx

xml语法,开始的初衷是为了弥补html的缺点

html作用:负责网页的结构

xml作用:

            1)描述带关系的数据结构(作为软件的配置文件)

    2)存储数据(作为小型的“数据库”)

           

            3)xml作用

             3.1描述带关系的数据结构(作为软件的配置文件)(大部分场景)

      .properties文件 键值对   无法描述关系

                           user=root

                           password=root

                           user=root(错误描述)

                           password=root(错误描述)

                   db.xml 文件:

                    <db-list>
                      <db name="mysql">
                              <user>root</user>
                                <password>root</password>
                        </db>
                       

             <db name="oracle">
                              <user>admin</user>
                                <password>1234</password>
                                     </db>
                   </db-list>

    应用:tomcat服务配置文件,三大框架(ssh struts2 spring hibernate)

            3.2存储数据(作为小型的“数据库”)

     应用:mysql的数据可以到处,然后用xml文件存储

三、XML语法

     xml后缀

     浏览器内置了xml解析器,所以可以用浏览器来解析xml文件

     1)xml文档声明

     语法:<?xml version="1.0" encoding ="utf-8"?>

    version:   xml文件版本,通常1.0即可

    encoding :xml文件被解析器使用什么编码解析

    总结:

            xml文件读取时中文时的编码问题

    1.1保存xml文件时的编码(另存为选择编码)

            1.2解析器解析时使用什么编码(xml文档声明的encoding属性)

             以上两处 的编码保持一致就不会出现中文乱码问题.

     standalone:是否是独立的xml文件(当前的xml是否依赖其他文件)

2)注释

  和html注释一样<!-- -->

3)标签、属性(重点)

标签语法:

  3.1不能以数字开头

  3.2严格区分大小写

  3.3标签名中间不要有空格和冒号,不要使用xml作为名称(w3c的保留字)

  3.4在一个xml文件中有且仅有一个根标签(根元素)

属性语法:

  3.1属性值必须使用单引号或双引号包含,不能没有或者单双引号混用

  3.2一个标签内可以存在多个属性,但不能重复

4)特殊字符

     和html一样

      特殊字符    转义字符

    <    &lt;

    >    &gt;

    空格    &nbsp;

    ...

5)CDATA块

  可以批量处理特殊字符,在CDATA块中的代码不会解析成标签

6)处理指令(了解)

  <?xml-stylesheet type="text/css" href="person.css"?>

告诉浏览器如何解析xml文件(使用什么样式)

可以让xml变为html文件(使用什么样式)

四、XML约束之DTD约束(看懂即可)  -- 查看w3cshool文档即可

  两个概念区分:

    1.良好的xml文件:符合w3c制定的语法规则

  2.有效的xml文件:符合开发者制定的约束规则

 xml约束分类:

     dtd约束: 语法比较简单,功能不够强大

      应用:struts2, hibernate

     schema约束:语法比较复杂,功能比较强大,约束比较细致.

         应用:spring tomcat配置

  dtd约束语法:

    要求:能够看懂dtd约束,写出一个有效的xml文件!!

    1)dtd使用方式

                   1.1 内部dtd

         特点:dtd内容直接写在xml文件中

                   1.2外部本地文件导入

                          <!DOCTYPE note SYSTEM "note.dtd">  dtd文件在本地文件系统

       1.3外部网络文件导入

        <!DOCTYPE 根元素 PUBLIC “名称”  “http://struts.apache.org/dtds/struts-2.0.dtd”>

           

              2)约束元素

                <!ELEMENT 元素名称 类别> 或<!ELEMENT 元素名称 (元素内容)>

               类别:

      EMPTY:  代表空元素

      PCDATA:    代表普通字符串(不包含子元素)

      ANY:代表元素任意内容(包含空元素,包含子元素)

      

     (元素内容)

      顺序问题:

        (元素1,元素2,元素3):一定依次出现元素1,再出现元素2,最后出现元素3

      数量问题:

        元素1:有且仅出现1次

        元素1*:出现0次或多次

        元素1+:出现1或多次

      3)约束属性

        <!ATTLIST 元素名称 属性名称 属性类型 默认值>

      默认值:约束属性是否必填

          #REQUIRED 必须的

          #IMPLIED   非必须的
               #FIXED value  固定值的
    
         属性类型:约束属性值是什么
              CDATA  普通字符串
              (en1|en2..)  枚举,多选一
              ID   唯一,在同一个xml文档中属性值必须唯一
        五、XML解析之dom解析
    1)什么是xml解析?
    使用java代码去控制(操作:读取、修改)xml文件

2)xml解析两种方式
    dom解析:面向对象的方法。
         和html的dom类似。
        对象:
        Node对象
            Document对象
            Element对象
            Attr对象  
            Text对象
            Comment对象
        dom树
    sax解析:基于事件驱动的方法。

3)xml的dom解析工具
        sun官方-jaxp工具 (java的标准)
        非官方- jdom工具
        非官方- dom4j    (虽然不是标准,好用!!)
            
    4)jaxp的dom解析工具

官方: 纳入jdk的规范中。 org.w3c.dom.*  api

4.1 读取xml文件的步骤:
            a)创建DocumentBuilderFactory对象
            b)获取一个DocumentBuilder对象
            c)调用parse方法去读取xml文件
        
    4.2 写出xml文件的步骤:
            a)创建TransformFacotory对象
            b)获取一个Transform对象
            c)调用transform方法写出内容到xml文件

总结:
    1)junit工具(必须掌握)    
    2)xml语法(重点)
    3)dtd约束(能写xml文件--  手动根据dtd文件写有效的xml文档)
    4)jaxp的dom解析api (必须回去练习)

Day05_JAVAEE系列:XML的更多相关文章

  1. 微软BI 之SSIS 系列 - XML Task 中XSLT 样式表转换错误记录

    开篇介绍 此文章专门记录 XSLT 样式表转换过程中的语法问题 错误一 值与属性的倒置 修改了几次样式表,但还是一如既往的报错,报错信息如下: [XML Task] Error: An error o ...

  2. SpringBoot填坑系列---XML方式配置数据库

    本次只是简单的运用SpringBoot搭建框架,对其原理并不做深入的探究 1.POM文件 <?xml version="1.0" encoding="UTF-8&q ...

  3. Day05_JAVAEE系列:Junit

    Junit 单元测试开发工具:myeclipse10 内部集成的junit的库 1)什么是junit?     junit是一个专业的编写测试代码的工具 2)建立junit测试类的步骤:     2. ...

  4. 【Java】Java XML 技术专题

    XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...

  5. C#读取XML方式

    前言 前一篇我们简单给大家做了XML的介绍,现在咱们继续这个系列 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的 ...

  6. BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)

    微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改 ...

  7. C# WinForm开发系列 - 文章索引

    该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm ...

  8. C#开源

    商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK E ...

  9. C# 开源项目一

    商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK E ...

随机推荐

  1. Redis简介二

    一.直接安装     1.Windows版本的Redis下载地址:https://github.com/dmajkic/redis/downloads  ,选择一个你想要下载的版本下载即可~     ...

  2. Code Blocks 多文件联合编译

        code::blocks是一款据说灰常强大的IDE,以前虽然也经常使用,但一没用过高度功能,二来没用它写过工程性的东西,简单点说就是一个以上的源文件并且加入其他非标准的头文件,今天想做一个多文 ...

  3. Chapter 1 First Sight——33

    At that moment, the bell rang loudly, making me jump, and Edward Cullen was out of his seat. 在这个时候,铃 ...

  4. python 文件夹操作

    常用的一些 import os for d, cd, fl in os.wald('.'): for f in fl: sufix = os.path.splitext(f)[1][1:] if su ...

  5. html5结合flash实现视频文件在所有主流浏览器兼容播放

    来源:http://blog.csdn.net/freshlover/article/details/7535785/ 由于html5的出现,让网页中的视频.音频有了更加便捷的实现方式.但是video ...

  6. 关于Spring Security 3获取用户信息的问题

    标签: spring security 3标签获取用户信息 2013-01-05 10:40 5342人阅读 评论(0) 收藏 举报  分类: Spring(25) java(70) 前端(7)    ...

  7. MySQL外键的作用和创建

    MySQL外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据.使两张表形成关联,外键只能引用外表中列的值! 我们来建两个表 CREATE TABLE `example1` ( ` ...

  8. Qt::ConnectionType(信号与槽的传递方式)

    Qt::AutoConnection 自动连接:(默认值)如果信号在接收者所依附的线程内发射,则等同于直接连接.如果发射信号的线程和接受者所依附的线程不同,则等同于队列连接. Qt::DirectCo ...

  9. find tar 压缩第一层目录,用于资料备份。

    find *.tar.gz -exec tar zxvf '{}' \;//查找当前目录下的.tar.gz 的文件的 并发送给后面的命令执行find . -maxdepth 1 //查找当前目录下的文 ...

  10. 编译 wl18xx驱动源码

    在做beagleboneblack移植的时候,wl18xx的驱动源码是自动编译的.但是移植到其他平台优越平台不一样,所以就不能自动编译 所以用其他方式编译.http://e2e.ti.com/supp ...