XML【介紹、用途、瞭解XML技術架構、語法】

什麼是XML?

XML:extensiable markup language 被稱做可擴展標記語言css

XML簡單的歷史介紹:html

  • gml->sgml->html->xml
  • gml(通用標記語言)–在不一樣的機器進行通訊的數據規範
  • sgml(標準通用標記語言)
  • html(超文本標記語言)

爲何咱們須要使用XML呢?

  • ①咱們沒有XML這種語言以前,咱們使用的是String做爲兩個程序之間的通信!如今問題就來了,若是咱們傳輸的是帶有關係型結構的數據,String怎麼表達呢?String對關係型數據不擅長,要是描述起來也不免會有歧義的時候!關係型數據如圖下所示:

  • HTML語言自己就有缺陷
    • 標記都是固定的,不能自定義。HTML語言中有什麼標記就只能用什麼標記
    • HTML標籤自己就缺乏含義(tr標籤裏面什麼內容都能放進去,不規範!)
    • HTML沒有實現真正的國際化

XML文件就解決了以上的問題了,若是使用XML描述上述圖片的關係,是很是簡單的!web

<?xml version="1.0" encoding="UTF-8" ?>
    <中國>
        <北京>
            <海淀></海淀>
            <豐臺></豐臺>
        </北京>
        <湖南>
            <長沙></長沙>
            <岳陽></岳陽>
        </湖南>
        <湖北>
            <武漢></武漢>
            <荊州></荊州>
        </湖北>
    </中國>

XML文件還能使用瀏覽器打開:數據庫

咱們能夠發現XML是能夠描述很複雜的數據關係的瀏覽器


XML的用途

①:配置文件(例子:Tomcat的web.xml,server.xml……),XML可以很是清晰描述出程序之間的關係markdown

②:程序間數據的傳輸,XML的格式是通用的,可以減小交換數據時的複雜性!架構

③:充當小型數據庫,若是咱們的數據有時候須要人工配置的,那麼XML充當小型的數據庫是個不錯的選擇,程序直接讀取XML文件顯然要比讀取數據庫要快呢!編碼


XML的技術架構

XML被設計爲「什麼都不作」,XML數據或XML文檔只用於組織、存儲數據,除此以外的數據生成、讀取、傳送、存取等等操做都與XML自己無關!spa

因而乎,想要操做XML,就須要用到XML以外的技術了設計

  • 爲XML定規則:如今通常使用DTD或Schema技術,固然了Schema技術更爲先進!
  • 解析XML的數據:通常使用DOM或者SAX技術,各有各的優勢
  • 提供樣式:XML通常用來存儲數據的,但設計者野心很大,也想用來顯示數據(但沒人用XML來顯示數據),就有了XSLT(eXtensiable Stylesheet Language Transformation)可擴展樣式轉換語言

XML語法:

文檔聲明:

  • XML聲明放在XML的第一行
  • version—-版本
  • encoding–編碼
  • standalone–獨立使用–默認是no。standalone表示該xml是否是獨立的,若是是yes,則表示這個XML文檔時獨立的,不能引用外部的DTD規範文件;若是是no,則該XML文檔不是獨立的,表示能夠引用外部的DTD規範文檔。

  • 正確的文檔聲明格式,屬性的位置不能改變!

<?xml version="1.0" encoding="utf-8" standalone="no"?>

元素

首先在這裏說明一個概念:在XML中元素和標籤指的是同一個東西!不要被不一樣的名稱所迷惑了!

元素中須要值得注意的地方

  • XML元素中的出現的空格和換行都會被當作元素內容進行處理
  • 每一個XML文檔必須有且只有一個根元素
  • 元素必須閉合
  • 大小寫敏感
  • 不能交叉嵌套
  • 不能以數字開頭

看起來好像有不少須要值得注意的地方,其實只須要記住:XML的語法是規範的!不要隨意亂寫!


屬性

屬性是做爲XML元素中的一部分的,命名規範也是和XML元素同樣的!

<!--屬性名是name,屬性值是china-->
    <中國 name="china">

    </中國>

註釋

註釋和HTML的註釋是同樣的

<!---->

CDATA

在編寫XML文件時,有些內容可能不想讓解析引擎解析執行,而是看成原始內容處理。遇到此種狀況,能夠把這些內容放在CDATA區裏,對於CDATA區域內的內容,XML解析程序不會處理,而是直接原封不動的輸出

語法:

<![CDATA[ ...內容 ]]>

轉義字符

對於一些單個字符,若想顯示其原始樣式,也可使用轉義的形式予以處理。

處理指令

處理指令,簡稱PI (processing instruction)。處理指令用來指揮解析引擎如何解析XML文檔內容。

例如:

在XML文檔中可使用xml-stylesheet指令,通知XML解析引擎,應用css文件顯示xml文檔內容。

<?xml-stylesheet type="text/css" href="1.css"?>
  • XML代碼:
 <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/css" href="1.css"?> <china> <guangzhou> 廣州 </guangzhou> <shenzhen> 深圳 </shenzhen> </china> 
  • CSS代碼:
 guangzhou{ font-size: 40px; } 
  • 效果:


JDK中的XML API

①:JAXP(The Java API For XML Processing):主要負責解析XML

②:JAXB(Java Architecture for XML Binding):主要負責將XML映射爲Java對象

相關文章
相關標籤/搜索