日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

详解xml

發布時間:2023/12/13 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 详解xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

xml

xml簡介

XML是一種可擴展標記語言 (Extensible Markup Language, XML)。是一種可擴展的標記語言,XML重在數據交換,用于不同平臺或者應用程序之間交換數據,存儲數據。

版本:XML1.0版本(使用) XML1.1版本(不向下兼容)

1:XML是純文本標記

XML文件是純文本的形式,正是由于這種簡單的格式,才讓所有能處理純文本的程序都能處理XML文件。這樣對于數據交換和傳輸時至關重要的,也提高了它的兼容性和與平臺無關性。

2:XML可以隨意的定義自己的標簽

你可以以任意文字定義標簽,只要有開始符號和結束符號,只要符合XML的樹形結構就可以,甚至可以使用中文。

3:與HTML的區別

XML重在存儲數據,html重在顯示數據。它們都是標記語言,但是html的標記是死的。xml的標記是活的。 如:新浪天氣預報接口

4:XML是沒有行為的

這句話的意思就是XML只能放在文件里面等著別人去讀取,寫入。自己本身沒有執行的能力。

5.作為框架的配置文件(Struts2 Spring Hibernate)

xml語法

文檔聲明(重點)

* 文檔聲明:聲明當前的這個文件就是一個XML文件。必須要出現的。
    * 寫法:   <?xml version="1.0" ?>
    * 需要出現在xml文檔中的第一行第一列的位置。
    * 屬性:
        * version="1.0"         XML文件的版本
        * encoding="UTF-8"      代表XML打開文件時所采用編碼
        * standalone="yes/no"(可寫也可以不寫)          XML文件是否獨立的,如果不是獨立的,就可以引入外部文件。
* 產生亂碼(重點)
    * 產生亂碼:在保存文件時,和打開文件時所采用的編碼不一致。
    * 解決辦法:只需要保存文件時和打開文件所采用編碼一致就ok
    * 注意:MyEclipse不會有亂碼的問題。

定義元素

* 必須有開始標簽結束標簽。每個節點開始結束必須都對應,缺一不可。xml是一個樹結構,只能包含一個根節點。
    * 包含標簽主體內容  <abc>內容</abc>
    * 不包含標簽主體       <abc/>
* 標簽必須要合理的嵌套
與HTML的注釋是相同 <!-- 也是XML的注釋 -->
注釋也不可以嵌套。

* XML的屬性命名規范與元素命名規范。 * 元素定義規范 * 區分大小寫 <P><p> 代表不同的標簽 * 不能以數字和中劃線開頭 * 不能以XML(Xml XML)開頭 * 不能包含空格和冒號

定義屬性

* 自定義的屬性    <abc xyz="" >
* 元素上不能有相同名稱的屬性 錯誤的:<abc xyz="" xyz="" >
* XML的屬性值必須使用引號引起來(單引號或者雙引號)

轉義字符

* <     &lt;
* >     &gt;
* &     &amp;
* "     &quot;
* '     &apos;

CDATA區

* 作用:使用CDATA區中間的內容解析成文本內容(字符串)。
* 語法:   <![CDATA[ 內容 ]]>

總結XML的語法

* XML必須有開始和結束標簽。
* XML區分大小寫
* XML必須正確的嵌套
* XML只能有一個根節點,必須要有的。
* XML的屬性的值需要使用引號(雙引號或者單引號)
* 轉義字符需要進行轉義,或者使用CDATA區括起來。


XML的約束

* 格式良好的XML:遵循XML的語法結構。
* 有效的XML:符合XML的約束的XML文檔。

兩種方式

DTD約束 schema約束

一.DTD約束

DTD約束開發的步驟

* 1:先編寫一個XML的文檔(被約束)。
* 2:編寫DTD的約束文檔(約束)。
* 3:創建一個DTD文檔。
    * 3.1 定義元素  語法:<!ELEMENT 元素名稱 元素類型 >    XML文檔中可以出現的元素
    * 3.2 判斷哪些是復雜的元素,哪些是簡單元素
    * 3.3 如果是簡單元素(只包含文本內容)  元素類型寫法:(#PCDATA)
    * 3.4 如果是復雜元素(下邊包含子節點)  元素類型寫法:(子節點1,子節點2...)

DTD與XML結合一起

在XML的文件中引入DTD的約束文件。

* 直接寫在XML文件的上面
    * <!DOCTYPE 根節點 [ DTD文件的內容 ] >
* 定義外部的DTD文件,引入外部的本地的DTD文件
    * <!DOCTYPE 根節點 SYSTEM "DTD文件的地址">
* 引入外部的DTD文件,引入的網絡上的DTD文件
    * <!DOCTYPE 根節點 PUBLIC "DTD文件的名稱" "DTD文件的地址">

DTD的語法

元素定義

* 寫法:<!ELEMENT 元素名稱 元素類型>
* 元素類型:
    * (#PCDATA)                 可解析的字符數據(字符串)
    * EMPTY                     空(沒有標簽主體)
    * ANY                       任意類型
    * (子節點1,子節點2...)        當前的元素是復雜的元素,下面包含子節點
             * 子節點之間關系
                  * 子節點與子節點出現順序的關系
                       * ,     :代表子節點按著順序出現
                       * |     :子節點出現只能出現一個
                       * 子節點出現的數量的關系
                       * +     :子節點可以出現1次或多次
                       * *     :子節點可以出現0次或多次(任意次)
                       * ?     :子節點可以出現0次或1次

屬性定義

* 寫法:
    <!ATTLIST 元素名稱 
        屬性名稱 屬性類型 屬性約束 
        屬性名稱 屬性類型 屬性約束
    >
       * 屬性類型
         * CDATA     字符數據(字符串)
         * 枚舉:沒有關鍵字,寫法(值1|值2|值3),只能從枚舉中選擇其中一個值
         * ID:代表是屬性是唯一的,值就不能相同了。值也不能是數字

       * 屬性約束
        * #REQUIRED     屬性是必須要出現的
        * #IMPLIED      屬性的出現是可選的
        * #FIXED        固定值 -- #FIXED "固定值"
        * 默認值           提供默認值   ""

實體定義(了解)

* 寫法:   <!ENTITY 別名 "值">        定義了一個實體
* 作用:需要在XML的文件中需要引入實體,就會在XML文檔中顯示別名所對應的值
    * 引入的語法:&別名;

二.schema約束

* schema約束為了DTD的局限性。
* schema約束和DTD的區別(面試題)
    * XML schema約束符號XML的語法規則
    * DOM或者SAX解析的方式很容易解析schema文檔
    * schema約束對名稱空間支持的非常好的
    * schema約束文檔比DTD支持更多的數據類型,支持自定義數據類型。

schema約束文檔快速入門

1:先創建schema的約束文檔
 * 先引入W3C的名稱空間,在<schema>根節點上,使用xmlns="W3C的名稱空間"
    * xmlns  xml namespace
    * xmlns="http://www.w3.org/2001/XMLSchema"
2 定義元素,想約束XML的元素
    * <element name="元素名稱" >
3 判斷是否是復雜還是簡單
    * 如果是簡單元素   使用type的屬性設置元素的數據類型
    * 如果是復雜元素
        * 聲明我是復雜元素 <complexType>
        * 聲明子節點出現的關系    <sequence>
4 給自己定義的schema約束起名字(名稱空間的空間)
    * targetNamespace="名字需要唯一的" 一般情況下使用域名。
5 elementFormDefault:決定xml文件里面的書寫格式
    * unqualified   :質量不好的
    * qualified     :質量好的(記住)

二:在XML的文檔中引入schema的約束文檔
* 目的:引入自己定義的schema約束文檔
* 需要先引入W3C的名稱空間:執行當前的XML文檔是一個實例文檔。
    * xmlns="http://www.w3.org/2001/XMLSchema-instance" 一個實例文檔
    * xmlns="http://www.w3.org/2001/XMLSchema"          一個約束文檔
* 引入自己定義的schema約束
    * xmlns="http://www.itcast.cn/hm14"
* 遇到了問題:一個元素標簽上,有相同名稱的屬性了。
    * 解決問題:起別名(前綴名)。    
    * 元素的標簽出現的概率小的名稱空間上起別名就ok了。
* 引入自己定義的schema文件的地址
    * xsi:schemaLocation="schema約束文檔的名稱 文檔的地址"

名稱空間的概念

* 名稱空間:自己定義schema文檔,需要使用名稱空間起名字。    
* 在XML文檔中引入了名稱空間,因為XML文檔可以引入多個名稱空間,只有一個默認的名稱空間。
* 理解相當java中包的結構。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 數據文件 引用多個Schema -->
<company xmlns = "http://www.example.org/company"
    xmlns:dept="http://www.example.org/department"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.example.org/company company.xsd http://www.example.org/department department.xsd" 
    >
    <employee age="30">
        <!-- 部門名稱 --> 
        <dept:name>人力資源部</dept:name>
        <!-- 員工名稱 -->
        <name salary="3000.00">王曉曉</name>   
    </employee>
</company>

總結

以上是生活随笔為你收集整理的详解xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。