亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java開發者XML基礎全程詳細講解

2019-11-18 12:50:11
字體:
來源:轉載
供稿:網友

  xml介紹
  經常會出現這種情況,新思想產生之后,人們回過頭來往往覺得其非常簡單并且理所應當,以至于每個人都希奇竟然以前不是這樣。這種情況往往表明所謂的新思想究竟不是真正的全新的思想。java這一革新性的語言就是吸取之前的所有程序語言的思想才得以出現的。就象Java源于之前的程序語言一樣,現在出現了XML——可擴展標記語言(the Extensible Markup Language)。XML是一種方便人們描述數據的輕量語言。
  
  XML為標記結構性信息如文本提供了一種簡單而通用的格式。XML承繼了Html這一通用文本表示格式并將之推廣,從而可處理任何類型的數據。在此過程中,XML不僅重鑄了HTML并且正影響著商業業務關于其自身信息的考慮。在世界越來越被文檔和數據交換驅策的情況下,XML時代來臨了。
  
  一點背景知識
  XML和HTML之所以被稱為標記語言(markup languages)是因為XML用象征結構和意義的標簽來包裹文本部分,從而為純文本文檔添加結構信息,這一點和人們用鋼筆來標識句子、添加注釋很相似。然而HTML定義了一系列的標簽和標簽結構,而XML沒有預先定義這些,XML的創建者可以定義標簽、規則以及它們的含義。
  
  XML和HTML都源自標準通用標記語言SGML。SGML(Standard Generalized Markup Language)是所有標記語言的始祖,在出版業(包括O'Reilly)廣泛應用多年。但是直到Web通行,它才通過HTML流傳開來。HTML起自SGML的一個小小應用,假如HTML無所不能的話,這說明簡單勝過一切。
  
  然而盡管HTML曾經頗為風行,但最終結果表明它還大有局限。使用HTML的文檔把結構信息(如<head>和 <body>)和描述信息(舉個尤其過分的例子:<blink>)不恰當地混在一起。這種把模型和用戶界面攪在一塊兒的方式對HTML作為數據交互格式帶來了限制,因為計算機難以理解這種方式。XML文檔完全由結構組成,應用含義取決于文檔讀者。本章我們將看到,有幾種相關語言用于解釋和轉換XML以利于其顯示和后續處理。
  
  文本還是二進制
  Tim Berners-Lee二十世紀八十年代后期在歐洲粒子物理研究所(CERN)開始試運行Web時,他想用超文本組織規劃信息。由于Web需要一種協議,HTTP——一種基于文本的簡單客戶端-服務器協議創建出來。純文本方式到底有什么過人之處呢?比如說,Tim為什么不采用微軟的Word格式做為Web文檔的基礎呢?基于二進制的、人類不易閱讀的格式和協議難道不是效率更高嗎?既然從Web誕生到現在有數以百萬億計的HTTP事務,讓它們用英文單詞“GET”和“POST”,這真的個好主意嗎?
  
  答案是“是”,如我們現在看到的一樣。開發人員顯然更輕易和人類可讀的東西打交道。盡管可以在時間和空間上對其進行高度優化,但由于它已被普遍接受并且可輕易跨越多個平臺,簡單和透明顯得更為重要。這是XML的首要基本原則。
  
  通用解析器
  使用文本交換數據不僅僅是一種新思想;從歷史上看,必須為每個新文檔格式寫一個新的解析器。解析器是讀取文檔并能理解格式規則的應用程序,它常要求文檔內容符合某些規則。比如,Java中的PRoperties類是專門處理標準屬性文件格式(第十章)的解析器。在第十七章的簡單電子制表程序中,我們構造了一個能理解基本數學表達式的解析器。我們看到,隨著復雜度的增加,解析可能變得非常棘手。
  
  XML狀態
  本章我們要討論的API非常強大而且已經很好地測試過,如今它們已被廣泛應用于企業級系統。遺憾的是,現在和Java綁定的XML工具只能部分解除開發者的負擔。
  
  盡管我們已經從低級的字符串處理跨越到公共的結構化文檔格式,但標準工具通常仍然要求開發人員編寫低級代碼來遍歷文本內容,手工解析字符串數據。這樣的程序難免有點不太穩定,而且其中的大部分工作單調乏味。下一步(下章我們將簡要討論)我們將使用生成工具讀取XML文檔描述(XML DTD或XML Schema)并生成相應的Java類,或者將已經存在的類自動綁定到XML數據上。
  
  XML API
  Java1.4自帶所有和XML協同工作的基本API,包括javax.xml標準擴展包,該包處理用于XML的簡單API(Simple API for XML,SAX)和文檔對象模型(Document Object Model,DOM)以及擴展的風格表單語言(eXtensible Stylesheet Language,XSL)轉換。假如您使用的是Java1.4之前的版本,您仍然可以使用所有這些工具,但您必須從http://java.sun.com/xml/.上下載各個相應程序包。
  
  XML和Web瀏覽器
  微軟公司的IE網頁瀏覽器是第一個顯式支持XML的瀏覽器。假如您在IE5.0或以上版本中載入XML文件,文件將使用非凡的樣式菜單顯示為一棵樹的形式。通過使用動態HTML,該樣式菜單答應查看文檔的時候收縮和展開樹節點。IE也支持在瀏覽器中直接進行基本的XSL轉換。我們將在本章末些時候討論XSL。
  
  Netscape 6.x 和 最新的 Mozilla也能理解XML內容并支持通過XSL顯示文檔。然而到本章寫作的時候為止,它們缺省狀況仍不能提供友好的閱讀工具。您可以通過使用“查看源文件”選項來使XML以較好形式顯示。但一般而言,假如您通過以上這些瀏覽器或其它不顯式轉換XML的瀏覽器加載XML文檔,這些瀏覽器只是簡單地顯示剝除所有標簽(結構信息)之后的文檔文本。這是它們作用于XML的預定方式。
  
  XML基礎
  XML的基本語法相當簡單。假如您有HTML的相關經驗,那您實際上對XML也有所了解。象HTML一樣,XML將信息表示為使用標簽添加結構的文本。標簽以夾在小于號(<)和大于號(>)之間的名字開始。和HTML不同的是,XML的標簽必須匹配。換言之,開始標簽之后必須有相應的結束標簽。結束標簽很象開始標簽,但它以小于號和斜杠(</)打頭。開始標簽、結束標簽以及開始標簽和結束標簽之間的所有內容合起來被稱為XML文檔的元素(element)。元素中可以包含其它元素,但它們必須正確嵌套,所有元素內的開始標簽必須在元素本身結束前用結束標簽結束。元素可以包含純文本和文本和元素的混合物。注釋放置于標記“<!—”和“ -->”之間。下面是幾個例子。
  
  <!-- Simple -->
  
  <Sentence>This is text.</Sentence>
  
  <!-- Element -->
  
  <Paragraph><Sentence>This is text.</Sentence></Paragraph>
  
  <!-- Mixed -->
  
  <Paragraph>
  
    <Sentence>This <verb>is</verb> text.</Sentence>
  
  </Paragraph>
  
  <!-- Empty -->
  
  <PageBreak></PageBreak> 
  
  空白標簽可以用一個以斜杠和大于號結束的單個標簽更緊湊的表示(/>),如下所示:
  
  <PageBreak/>
  
  屬性
  XML元素可以包含屬性,也就是開始標簽中提供的名-值對。如:
  
  <Document type="LEGAL" ID="42">...</Document>
  
  <Image name="truffle.jpg"/>
  
  屬性值必須包含在引號中,使用雙引號(”)或單引號(’)都可以。單引號在值本身含有雙引號時尤其有用。
  
  屬性用于和元素數據相關的簡單、非結構性的性質或標識。總是可以把屬性組織為子元素,所以沒有必須使用屬性的真正要求。但使用屬性通常使XML文檔更賦邏輯,更易閱讀。在上面的小例子片斷中,Document元素的屬性type和 ID代表文檔的元數據。我們可能期望代表Document的Java類擁有文檔類型(如LEGAL)的靜態標識。對Image元素而言,屬性是只包含文件名的更為簡潔的形式。通常屬性沒有重要的內部結構,是不可再分的;而子元素卻可以任意復雜。
  
  XML文檔
  XML文檔以下列文檔頭開頭并且有一個根元素。
  
  <?xml version="1.0" encoding="UTF-8"?>
  
  <MyDocument>
  
  </MyDocument>
  
  文件頭指明了XML的版本和文件的編碼特征??梢园言貙哟卫斫鉃橐豢脴涞男问?,根元素也就是元素層次的頂層元素。假如您漏掉這樣的文件頭或者XML文本中沒有單個根元素,那樣的東西只能稱為XML片斷。
  
  編碼
  XML文檔的默認編碼方式是UTF-8,一種ASCII使用者易于使用的8位Unicode編碼方式。但XML文檔可以通過指定XML文件頭的encoding屬性來指定文檔編碼。
  
  XML文檔中有些字符是需要保留使用的,比如表示元素標簽的字符“<”和“>”。假如您需要在XML文檔內容中包含這些字符,則必須對它們進行轉碼。XML提供了稱為“實體(entities)”的轉義機制以對非凡結構進行轉碼。XML中有五種預定義的實體。如表23-1所示。
  
  
表23-1  XML實體

  
Java開發者XML基礎全程具體講解

  也可以使用被稱作字符數據(CDATA)的非凡的不解析文本段來進行編碼。一個CDATA塊以<![CDATA[開始,以]]>結束,如下所示:
  
  <![CDATA[ Learning Java, O'Reilly & Associates ]]>
  
  CDATA塊看起來有點象注釋,但CDATA塊中的數據確實是XML文檔的一部分,只不過對解析器來說是不透明的。
  
  命名空間
  您可能看到了HTML具有用來構造網頁的<body>標簽,試想一下我們要為殯儀館編寫XML,而殯儀館因為某些令人恐怖的原因也使用<body>標簽。假如要將HTML和尸體信息混在一塊兒可能會帶來些問題。
  
  在這種情況下,假如您把HTML標簽和殯儀館標簽當做一種語言,文檔使用的元素(標簽名稱)就是這些語言的詞匯。XML命名空間指明對于給定元素您使用的是哪種字典,從而讓我們可以把它們隨意混合在一起。(

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情aaaa| 亚洲天堂成人在线| 国产精品丝袜白浆摸在线| 国产精品91在线观看| 欧美日韩视频在线| 国产精品一区电影| 中文字幕不卡在线视频极品| 91免费视频网站| 正在播放欧美视频| 操人视频在线观看欧美| 久久视频在线直播| 原创国产精品91| 美日韩在线视频| 亚洲电影在线看| 国产精品专区第二| 日韩av在线播放资源| 中文字幕亚洲激情| 欧美精品一区三区| 国产亚洲欧美一区| 欧美一区二区色| 国外成人在线播放| 中文字幕亚洲第一| 亚洲色图15p| 国产精品自产拍高潮在线观看| 狠狠躁18三区二区一区| 亚洲午夜未删减在线观看| 欧美日韩亚洲精品内裤| 成人h片在线播放免费网站| 亚洲va欧美va在线观看| 国产精品综合久久久| 国产精品劲爆视频| 狠狠色狠狠色综合日日五| 国产精品第三页| 日韩高清电影免费观看完整版| 成人午夜激情免费视频| 国产婷婷成人久久av免费高清| 2019最新中文字幕| 欧美乱大交xxxxx| 17婷婷久久www| 久久亚洲欧美日韩精品专区| 色噜噜狠狠狠综合曰曰曰88av| 亚洲乱码一区av黑人高潮| 欧美专区日韩视频| 亚洲v日韩v综合v精品v| 91精品国产色综合久久不卡98| 亚洲成人av在线播放| 日韩中文字幕免费视频| 亚洲午夜未删减在线观看| 久久久99久久精品女同性| 中文字幕亚洲综合久久| 国产91精品久久久久| 欧美一级视频一区二区| 伊人久久久久久久久久| 亚洲精品美女久久| 亚洲国产另类久久精品| 国产精品久久久久久五月尺| 久精品免费视频| 久久久国产一区二区| 亚洲激情中文字幕| 91免费看片在线| 国产日本欧美一区二区三区在线| 亚洲欧洲高清在线| 黄色一区二区在线观看| 性金发美女69hd大尺寸| 欧美成人亚洲成人日韩成人| 亚洲欧美一区二区三区久久| 国产精品久久久久9999| 日韩av免费在线观看| 欧美二区乱c黑人| 日韩av在线免费看| 2025国产精品视频| 精品国产一区二区三区久久狼5月| 亚洲图片欧美日产| 欧美猛交ⅹxxx乱大交视频| 色噜噜狠狠色综合网图区| 美女视频黄免费的亚洲男人天堂| 欧美一级片久久久久久久| 日韩精品中文字幕在线播放| 精品国产91久久久久久老师| 国产精品一区二区3区| 亚洲色图欧美制服丝袜另类第一页| 国产精品永久免费| 亚洲男人av在线| 成人激情视频在线| 国产日韩精品一区二区| 亚洲国产婷婷香蕉久久久久久| 日韩av影院在线观看| 最近2019免费中文字幕视频三| 亚洲美女性生活视频| 亚洲自拍偷拍在线| 亚洲成人1234| 久久久免费av| 欧美成人三级视频网站| 91精品久久久久久久| 日韩精品免费一线在线观看| 久久艹在线视频| 欧美激情一区二区三区在线视频观看| 日韩av大片在线| 不卡av电影在线观看| 91精品免费看| 国产亚洲一区精品| 在线丨暗呦小u女国产精品| 亚洲欧美日韩精品久久| 亚洲国产三级网| 国产精品自拍偷拍| 精品视频在线播放| 91精品综合久久久久久五月天| 欧美日韩国产一区中文午夜| 情事1991在线| 亚洲欧美国产视频| 欧美激情一级二级| 亚洲丁香久久久| 亚洲精品国产精品国产自| 九九久久国产精品| 亚洲精品免费网站| 成人欧美一区二区三区在线| 亚洲精品欧美极品| 色老头一区二区三区| 亚洲性视频网址| 欧美成人午夜激情在线| 91美女高潮出水| 一区二区国产精品视频| 永久555www成人免费| 国产精品一区二区电影| 亚洲午夜av久久乱码| 91免费在线视频网站| 黑人欧美xxxx| 亚洲欧洲免费视频| 超碰日本道色综合久久综合| 亚洲国产精品va在线| 亚洲午夜色婷婷在线| 成人在线观看视频网站| 亚洲欧美国产精品久久久久久久| 精品亚洲永久免费精品| 456亚洲影院| 日韩视频免费看| 亚洲网在线观看| 国产一区二区三区在线播放免费观看| 亚洲国产精品字幕| 国产成人精彩在线视频九色| 91精品国产自产91精品| 亚洲资源在线看| 日韩欧美中文第一页| 久久精品91久久香蕉加勒比| 日韩中文字幕视频在线观看| 欧美伦理91i| 欧美成人一区二区三区电影| 2023亚洲男人天堂| 色琪琪综合男人的天堂aⅴ视频| 欧美国产日本高清在线| 97超碰国产精品女人人人爽| 国产美女高潮久久白浆| 欧美成人免费大片| 国产美女搞久久| 亚洲天堂男人天堂女人天堂| 久久久久久综合网天天| 亚洲第一色在线| 少妇高潮 亚洲精品| 久久影视三级福利片| 日韩不卡中文字幕| 欧美极品第一页| 欧美电影免费观看网站| 精品爽片免费看久久| 国产日韩在线视频|