A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-9-7 19:25 编辑

『黑马程序员济南』Java就业笔记串讲--XML


XML的概述】
Ø  什么是XML:
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。
**** 允许用户自定义标签的!!!
Ø XML的作用:
* 传输 存取数据.
* 软件的配置文件.
Ø XML的使用:
* XML的语法.
XML的语法】
Ø  XML的基本语法:
* XML必须有关闭标签
* 区分大小写
* 属性需要有引号
* 标签必须正确嵌套.
Ø  XML的文档声明
* 文档声明:通常出现在XML的第一行第一列的位置!!!
* 写法:
    *<?xml 属性名=”属性值属性名=”属性值” ...?>
        *version :必须的. 使用”1.0”
        *encoding   :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码.
        *standalone :描述XML文档是否需要依赖其他的文件.
Ø  XML的注释
* <!-- XML的注释 -->
Ø  XML的元素
* 元素(标签)的命名规范:
1、元素的名字可以包含字母、数字、和其他字符
2、元素的名字不能以xmlXMLXmlxML等)开头
3、元素的名字不能以数字或者标点符号开头
4、元素的名字不能包含空格
5XML文档除了XML以外,没有其他所谓的保留字,任何的名字都可以使用,但是应该尽量使元素名字具有可读性,名字使用下划线是个不错的选择
6、尽量避免使用"-"".",因为可能引起混乱。
7、在XML元素命名中不要使用”:,因为XML命名空间需要用到这个十分特殊的字符。
***** 名称中不能包含冒号(:)
Ø  XML的属性
* 属性的名称规范与元素一致.
***** 属性需要使用引号!
Ø  XML的特殊字符和CDATA区
* XML的特殊字符:
* XMLCDATA:(CDATA:Character Data)
* <![CDATA[ 内容  ]]>
XML的解析】
Ø  XML的解析:从XML文档中获得想要的数据(通过代码完成的.)
Ø  XML的解析的方式(*****):
* DOM解析:DOM:DocumentObject Model.
* SAX解析:SimpleApi for XML.
* DOMSAX的区别:
Dom:一次性将文本文档加载到内存,形成树形结构进行解析
Sax:事件驱动方式,一行一行解析
Ø  针对这两种解析的方式,不同的公司提供了不同的API的实现.
* JAXP      :SUN公司提供的一套XML的解析的API.
* JDOM      :开源组织提供了一套XML的解析的API-jdom.
* DOM4J     :开源组织提供了一套XML的解析的API-dom4j.
* pull      :主要应用在Android手机端解析XML.

Ø  XPath:
* dom4j支持XPathjar.
    *jaxen-1.1-beta-6.jar
* dom4jXPath支持的API:
    * Listdocument.selectNodes(String xPath);
    * Nodedocument.selectSingleNode(String xPath);
Ø  XML的约束的额概述:
* 什么是XML的约束    :就是用来约束XML的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数.
* XML的约束         :用来规范XML的写法.
***** XML的约束的种类及区别?
     *DTD Schema :
         * 区别:
             1.DTD语法是自成一体的.Schema语法就是XML的语法.
             2.Schema的语法就是XML的语法所以更容易被解析器所解析.
             3.Schema支持名称空间.
             4.Schema有比DTD更加强大的语义和语法的约束.
Ø  DTD的语法   :(了解)
* DTD的引入方式:
     * 内部的DTD:
    <!DOCTYPEpersons [
   
    ]>
     * 外部的DTD:
         * 一种本地DTD:
         
[XML] 纯文本查看 复制代码
<!DOCTYPE persons SYSTEM "unknown.dtd">
         * 一种网络DTD:
        
[XML] 纯文本查看 复制代码
 <!DOCTYPE persons PUBLIC "//UNKNOWN/" "unknown.dtd">
* DTD的语法:
     * 元素:
         *<!ELEMENT 元素名 元素类型>
            * 元素类型:
                 * EMPTY
                * ANY
                * 子元素
                    * 是否有序: 使用 逗号(,)或者竖线(|)表示.
                    * 出现的次数:?:零次或一次 +:一次或多次 *:零次或多次
                * PCDATA
    * 属性:
        *<!ATTLIST 元素名称 属性名称属性的类型 属性的约束>
            * 属性的类型:
               * ID类型:表示属性值需要是唯一的.
               * CDATA类型:普通的字符串.
               * 枚举:
            *属性的约束:
Ø  Schema的语法:(了解)
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!--
    名称空间:一个XML只能引入一个DTD约束文档.使用了Schema约束XML文档,一个XML可以引入多个Schame的约束!!!
                      如果再多个Schema文档中定义了相同的属性名称 该怎么办?
      * 名称空间类似于java中的package.通过名称空间区分 标签或属性来自于哪个文档的!!!通常名称空间唯一的不重复的即可.一般情况下使用一个URL地址表示一个名称空间.
     
    xmlns               :xml name sapace .代表当前的文档应用的名称空间.
    targetNameSpace     :目标名称空间.
    elementFormDefault  :
 -->
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.itheima.com/ee25"
elementFormDefault="qualified">
    <!-- 复杂标签 -->
    <element name="persons">
        <!-- 复杂类型 -->
        <complexType>
            <sequence maxOccurs="unbounded" minOccurs="1">
                <element name="person">
                    <complexType>
                        <sequence>
                            <!-- 简单标签 -->
                            <element name="name" type="string"></element>
                            <element name="age" type="int"></element>
                            <element name="sex" type="string"></element>
                        </sequence>
                        <attribute name="id" type="string" use="required"/>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

点进这个帖子的同学肯定是要奋发图强,学技术拿高薪的有志青年,这里我看你骨骼惊奇,是个绝世的练武奇才,你我有缘,今天我就把这个武林秘籍如来神掌传授于你! 什么?不想学如来神掌?不要紧!这里有各个门派的武林绝学,链接拿好!!哈哈哈哈

评分

参与人数 1黑马币 +1 收起 理由
jingxian90 + 1 很给力!

查看全部评分

2 个回复

正序浏览
通俗易懂,简明扼要,条理清晰
回复 使用道具 举报
复制粘贴过了的笔记……
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马