成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Xml簡介_動力節點Java學院整理

瀏覽:578日期:2022-06-04 10:47:55

XML(簡介)

       XML(可擴展標記語言)在 20 世紀 90 年代后期登上舞臺后,就一直是眾多活動和狂熱思索的焦點。XML 只是基于普通文本,但卻提供了幾乎可以在任何兩個應用程序間共享數據的方式。

       雖然 XML 在概念上很簡單,但對 XML 的處理卻通常很煩瑣(需要編寫大量重復性的代碼)和復雜(很多容易被忽視的細節導致錯誤)。     

什么時候使用 XML?

       什么時候在Web 應用程序中使用 XML?

  • 你需要處理已經保存在 XML 中的數據時。
  • 你希望用 XML 保存數據并為將來可能的整合做準備時。(XML 在應用程序整合的場景中最有意義)
  • 你希望使用依賴于 XML 的技術時。(Web 服務使用各種建立在 XML 上的標準)
  • 注解:
  •        必須理解的一個重要概念是,存儲數據時必須決定兩件事情:
  • 確定數據結構化的方式(邏輯格式)
  • 確定數據保存的方式(物理存儲)

       XML 是格式的選擇而不是存儲的選擇。也就是說,即使你決定用 XML 保存數據,你還要決定是保存到數據庫字段里,還是要插入到一個文件里,或者只是以字符串或其他對象的形式保存在內存中。

XML 簡介

       XML 規范是由 W3C(World Wide Web Consortium)定義的一組指南,用于以純文本的形式描述結構化數據,一種基于尖括號間標簽的標記語言。

       XML 沒有一組固定的標簽。相反,XML 是一種可用于創建其他標記語言的元語言。

       下面的文檔顯示一個保存產品類別的自定義 XML 格式:

<?xml version="1.0" encoding="utf-8" ?>
<productCatalog>
 <catalogName>Acme Fall 2015 Catalog</catalogName>
 <expiryDate>2015-01-01</expiryDate>
 <products>
  <product id="1001">
   <productName>Magic Ring</productName>
   <productPrice>342.10</productPrice>
   <inStock>true</inStock>
  </product>
  <product id="1002">
   <productName>Flying Carpet</productName>
   <productPrice>982.99</productPrice>
   <inStock>true</inStock>
  </product>
 </products>
</productCatalog>

       標簽可以自由使用最能描述你的數據的任意名稱,正是這種靈活性使得 XML 非常成功。當然,靈活性也會有缺點。不同公司完全可用不同的標簽名來描述相似的數據,盡管所有應用程序都能夠解析 XML 數據,但數據的寫入者和讀取者需要對標簽和結構達成共識,才能使讀取者可用解釋數據并抽取有意義的信息。 

XML 的優點

       今天,XML 比過去任何一天都更為有用。現代應用程序使用 XML 的好處有以下幾點:

  • 適應性。XML 無處不在,無論什么時候需要共享數據,XML 都會成為首選目標。
  • 擴展性和靈活性。XML 不會強加任何數據語義的規則,適用于任意數據的類型并且實現的代價很低。
  • 相關標準和工具。XML 成功的另一個原因在于創建和處理 XML 的工具(解析器)和相關標準(XML架構、XPath、XSLT)。這樣幾乎每種語言的開發者都有現成的組件用于閱讀 XML,按某種規則(被稱作架構)驗證 XML 的有效性,將 XML 轉換格式等。 

格式良好的 XML

       XML 是一個非常嚴格的標準,這種嚴格性是用于保留廣泛的兼容性的。(臭名昭著的 HTML 語言就是在沒有這種嚴格性標準下的產物)

       所有的 XML 解析器都會執行一些基本的質量檢查。如果一個 XML 文檔不能滿足所有標準,它就會被徹底拒絕。否則,它就被認為是格式良好的。格式良好的 XML 未必就是正確的 XML ,例如含有錯誤數據,但 XML 解析器能夠解析它。

       XML 文檔必須滿足下面這些條件才能被認為是格式良好的:

  • 每個開始標簽必須有一個對應的結束標簽
  • 空元素必須以“/>”結束
  • 元素可以嵌套但不能交錯
  • XML 是嚴格區分大小寫的,因此 <FirstName> 和 </firstName > 不能配對
  • 一個元素不能有兩個或更多的同名特性,但是可以嵌套多個同名的元素
  • 一個文檔只可以有一個根元素
  • 所有特性在值的前后都要有引號
  • 注釋不能放入標簽中(它們包含在 <!-- 和  --> 標記中) 

XML 命名空間

       隨著 XML 標準的成長,已創建了數十種 XML 標記語言(通常叫做 XML 語法)。其中很多屬于特定的行業、流程和信息類型。如果你需要同時組合兩個具有相同名稱元素的 XML 語法,會發生什么呢?另一個更典型的問題是如何區分它們?

       解決辦法在于 XML 命名空間標準。這個標準的核心思想是所有的 XML 標記語言都擁有能夠唯一區分相關元素的命名空間。簡單的說,命名空間可以在整合時消除同名元素的歧義。

       所有的 XML 命名空間都使用 URI(Universal Resource Identifiers,統一資源標識符),一般看起來和網頁的 URL 相似。例如,http://www.mycompany.com/mystandard 是一種典型的命名空間,但這不是必要的(也不應該被假設),命名空間可以是任意文本序列,標準是為了確保它的唯一性。

       要指定某個元素屬于特定的命名空間,只需在開始標簽中加入 xmlns(XML Name Space)特性表明要使用的命名空間即可。例如,下面這個元素是http://mycompany/OrderML 命名空間的一部分。

<order xmlns="http://mycompany/OrderML"></order>
    你一定會厭倦在所有元素上加入這個特性的煩瑣操作,幸好,如果像下面這樣加入命名空間,它會成為所有子元素默認的命名空間:
<product xmlns="http://mycompany/OrderML">
 <productName>Flying Carpet</productName>
 <productPrice>982.99</productPrice>
 <inStock>true</inStock>
</product>
    你還可以自定義命名空間前綴,在 xmlns 特性中插入一個冒號和一個你想用作前綴的字符:
<ord:order xmlns:ord="http://mycompany/OrderML"
      xmlns:cli="http://mycompany/ClientML">
 <cli:client>
  <cli:firstName>...</cli:firstName>
  <cli:lastName>...</cli:lastName>
 </cli:client>
 <ord:orderItem>...</ord:orderItem>
 <ord:orderItem>...</ord:orderItem>
</ord:order>

XML 架構

       XML 的靈活性也帶來了一些問題。世界各地的開發人員都使用你的 XML 格式,怎樣才能保證所有人都遵守規則?

       解決辦法是創建一個格式文檔,它定義你的自定義標記語言的規則,它被稱為架構。這些規則不會包括語法細節(那是 XML 標準所要規定的),架構文檔需要定義的是符合你的數據類型的邏輯規則,它包括以下幾項:

  • 文檔詞匯。它定義了哪些元素或特性的名字可以出現在你的 XML 文檔中。
  • 文檔結構。它定義了標簽放在哪兒,可以指定標簽之間的順序,還可以指定某個元素可以出現的次數。
  • 支持的數據類型。可以定義數據是文本,或者必須是可以解析的數值數據、日期信息等。
  • 允許的數據范圍。可將數值限制在范圍內,文本限定在特定長度內,強迫正則表達式模式匹配,或者限制僅可以是某些特定的值。

       下面的這個 XML 架構定義了前面所示的產品類別規則:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="productCatalog">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="CatalogName" type="xsd:string" />
    <xsd:element name="expiryDate" type="xsd:date" />
    <xsd:element name="products">
     <xsd:complexType>
      <xsd:sequence>
       <xsd:element name="product" type="productType" maxOccurs="unbounded" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
 <xsd:complexType name="productType">
  <xsd:sequence>
   <xsd:element name="productName" type="xsd:string" />
   <xsd:element name="productPrice" type="xsd:decimal" />
   <xsd:element name ="inStock" type="xsd:boolean" />
  </xsd:sequence>
  <xsd:attribute name="id" type="xsd:integer" use="required" />
 </xsd:complexType>
</xsd:schema>
  • 所有的架構文檔都是以根元素 <schema> 開頭的 XML 文檔
  • 所有可用的元素都已經在 XML 架構空間定義了(http://www.w3.org/2001/XMLSchema)
  • 你的架構文檔必須使用正確的命名空間名(前綴一般是 xsd 或 xs ,你也可以自定義)
  • 在 <schema> 元素內,有兩種類型的定義
  • <element> 定義目標文檔必須遵循的結構
  • <complexType> 定義文檔結構較小的數據結構
  • <element>標簽是架構的核心,同時它也是所有驗證的起點

       在這個示例中,<element>標簽確定產品類別必須以一個叫做<productCatalog>的根元素開始。<productCatalog>元素內部是一個由3個元素組成的序列。第一個是<catalogName>,它包含普通文本;第二個是<expiryDate>,它包含符合日期呈現規則的文本;第三個是<products>,它包含<product>元素的列表。

       每個<product>元素都是一個復雜的類型,因此文檔后面又使用<complexType>進行了定義。這個復雜類型(名為<productType>)由含有產品信息的 3 個元素所組成的序列構成。這些元素分別保存文本(<productName>)、十進制數(<productPrice>)、布爾值(<inStock>)。這個復雜類型還包括一個必須的特性 id。

標簽: XML/RSS
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品v欧美精品v日韩| 欧美成人a视频| 欧美大黄免费观看| 日本伊人色综合网| 久久av最新网址| 一区二区三区色| 亚洲视频综合| 国产精品欧美一区喷水| 91热门视频在线观看| 欧美一级片在线观看| 国产一区日韩二区欧美三区| 91搞黄在线观看| 免费观看日韩电影| 色中色一区二区| 午夜精品成人在线| 久久激情视频| 亚洲va欧美va人人爽午夜 | 欧美日韩日本网| 国产天堂亚洲国产碰碰| 99视频精品在线| 精品久久国产字幕高潮| av毛片久久久久**hd| 亚洲精品一区二区三区香蕉| 不卡一区二区在线| 久久婷婷综合激情| 91蜜桃传媒精品久久久一区二区| 久久免费视频一区| 午夜免费电影一区在线观看| 久久久99精品久久| 国产综合第一页| 国产精品久久久一本精品| 狠狠干综合网| 一区二区国产视频| 久久婷婷人人澡人人喊人人爽| 亚洲高清在线视频| 91国产成人在线| 国产suv精品一区二区三区| 精品理论电影在线观看| 欧美jizzhd精品欧美巨大免费| 欧美激情在线一区二区三区| 韩日视频一区| 亚洲一区二区三区四区中文字幕| 久久三级福利| 国产一区二区三区香蕉| 精品国产乱码久久久久久图片| 欧美在线亚洲| 亚洲视频一区二区在线观看| 亚洲影音一区| 久久精品免费观看| 精品国产三级电影在线观看| 国内综合精品午夜久久资源| 亚洲一区二区3| 欧美另类高清zo欧美| 成人综合激情网| 综合电影一区二区三区 | 一区二区三区在线观看网站| 久久久久91| 久久成人精品无人区| 精品国产免费一区二区三区四区 | 国产精品毛片无遮挡高清| 亚洲看片网站| 毛片一区二区三区| 日韩欧美中文字幕一区| 欧美黄色精品| 亚洲一区在线视频| 在线播放中文字幕一区| 欧美一区二区在线| 亚洲一区二区三区视频在线| 91久久精品一区二区| 国产不卡视频一区| 亚洲视频网在线直播| 色综合久久88色综合天天6| 国产成人av影院| 国产精品二三区| 在线视频你懂得一区二区三区| 国产一区二区三区久久久| 国产精品私房写真福利视频| 久久精品男女| 成人av午夜电影| 亚洲免费在线电影| 在线播放91灌醉迷j高跟美女 | 精品成人a区在线观看| 亚洲欧洲精品一区二区| 美女视频黄免费的久久 | 欧美精品自拍| 日韩—二三区免费观看av| 欧美tickling挠脚心丨vk| 国产偷自视频区视频一区二区| 国内精品伊人久久久久影院对白| 国产亚洲精品福利| 91久久人澡人人添人人爽欧美| 91论坛在线播放| 日韩国产精品91| 国产日产欧美一区| 日本丶国产丶欧美色综合| 欧美阿v一级看视频| 日韩黄色一级片| 国产亚洲欧洲一区高清在线观看| 色天天综合色天天久久| 欧美精品播放| 极品美女销魂一区二区三区免费| 最新热久久免费视频| 91麻豆精品久久久久蜜臀| 在线成人www免费观看视频| 国产麻豆精品久久一二三| 亚洲男女毛片无遮挡| 欧美xxxx老人做受| 久久久777| 欧美天天视频| 国产乱人伦精品一区二区在线观看| 最新日韩av在线| 日韩一区二区精品在线观看| 香蕉视频成人在线观看 | 先锋影音国产精品| 色综合天天综合网天天狠天天| 日韩精彩视频在线观看| 日本一区二区久久| 制服丝袜中文字幕一区| 亚洲一区二区伦理| 97久久精品人人澡人人爽| 奇米亚洲午夜久久精品| 国产精品国产三级国产aⅴ原创| 欧美日韩国产区一| 国产精品久久久久久久久婷婷| 成人av动漫在线| 免费欧美在线视频| 亚洲乱码国产乱码精品精可以看| 欧美mv日韩mv国产| 在线观看91精品国产入口| 一本久道久久综合婷婷鲸鱼| 91色视频在线| 国产九色sp调教91| 日韩在线观看一区二区| 最好看的中文字幕久久| 久久久久久久网| 91精品国产入口| 蜜桃久久av| 亚洲午夜精品久久久久久app| 成人性视频网站| 婷婷久久综合九色综合绿巨人| 亚洲图片激情小说| 国产无人区一区二区三区| 在线综合亚洲欧美在线视频| 快she精品国产999| 99成人免费视频| 欧美日韩一区在线播放| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 不卡一卡二卡三乱码免费网站| 久久99精品国产.久久久久久 | 成人91在线观看| 加勒比av一区二区| 免费成人av资源网| 午夜婷婷国产麻豆精品| 亚洲精品综合在线| 亚洲色欲色欲www| 国产精品少妇自拍| 国产亚洲一区二区三区| 日韩欧美国产1| 欧美一区二区福利视频| 91麻豆精品国产91| 777xxx欧美| 3d动漫精品啪啪一区二区竹菊| 欧美吞精做爰啪啪高潮| 91福利视频网站| 色噜噜夜夜夜综合网| 一本一本大道香蕉久在线精品| 久久国产99| 久久综合九色| 色偷偷88欧美精品久久久| 小嫩嫩精品导航| 六月婷婷久久| 久久久精品性| 亚洲神马久久| 亚洲国产精品一区二区第一页| 国产精品九九| 精品av久久久久电影| 欧美日本中文| 国内精品视频在线播放| 国内精品久久久久国产盗摄免费观看完整版 | 日本欧洲一区二区| 日韩不卡手机在线v区| 日韩电影在线免费看| 日韩激情视频在线观看| 日本视频在线一区| 久久国产乱子精品免费女| 狠狠色丁香婷婷综合久久片| 国产激情偷乱视频一区二区三区| 激情六月婷婷久久| 国产乱码字幕精品高清av| 国产成人精品www牛牛影视| 成人免费视频国产在线观看| 成人免费视频免费观看| av一区二区不卡| 欧美二区在线| 欧美日韩1080p| 在线免费观看欧美| 国产偷久久久精品专区| 影音先锋久久精品| 亚洲国产一区在线| 亚洲在线电影|