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. js自定义的简易滚动条

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 转 shell awk 使用详解

    awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows ...

  3. 设计模式4 外观模式 FACADE

    一个外观是一个类,其提供的功能介于工具箱的功能和完整系统的功能之间,并为一个包或者一个子系统中的类提供了简化的使用方式.

  4. redis持久化探究

    redis支持两种持久化方式,一种是RDB方式,另一种是AOF方式.redis3.0windows版本默认关闭AOF(appendonly no),而开启RDB,当达到一定条件时,redis就会将内存 ...

  5. viewPager的切换动画

    今天在看苏州通的代码,里面有个引导的代码,涉及到viewPager的切换动画: DepthPageTransformer : package com.soyoungboy.guide; import ...

  6. pig、hive以及hbase的作用

    Pig Pig是一种数据流语言,用来快速轻松的处理巨大的数据.Pig包含两个部分:Pig Interface,Pig Latin.Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,P ...

  7. nefu 899这也是裸的找

    #include <iostream> #include <algorithm> #include <cstdio> using namespace std; in ...

  8. PHP图形处理函数试题

    一.问答题 1.取得当前安装的 GD 库的信息的函数是? 2.取得图像大小的函数是? 3.为一幅图像分配颜色 + alpha的函数是? 4.新建一个基于调色板的图像的函数是? 5.新建一个黑色图像的函 ...

  9. fszipx.exe

    来源:http://www.funduc.com/fszipx.htm 是个免费软件,用于把.zip转化为.exe自解压文件. COPY /B "C:\Tools\FsZipX\FsZipX ...

  10. 对象之function

    开头啰嗦几句:程序之中,万事万物皆对象,这就是面向对象编程的核心思想,比如我们的js中的function,其实也是一个对象,是对象就可以有属性,在jq的源码中经常看到类似这样的方法: jQuery.E ...