国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

分析如何用 Eclipse 進行 XML 開發(fā)

2019-11-18 12:48:27
字體:
來源:轉載
供稿:網(wǎng)友

  已經(jīng)開發(fā)出了許多 xml 插件,新的插件也不斷得以創(chuàng)建。本文主要討論名為 XMLBuddy 的插件,因為它豐富的功能集合包含 XML 文檔開發(fā)所需的大多數(shù)功能。我們也會提到其它插件,這些插件能為特定任務提供更豐富的用戶選項集。本文將使您熟悉基本的 XML 編輯功能,但要記住:Eclipse 是一個可以讓無數(shù)工具和功能為您所用的動態(tài)框架集。
  
  Eclipse XML 編輯器
  
  Eclipse 已經(jīng)包括一個非常簡單的 XML 編輯器的源代碼,這個編輯器只提供 XML 語法的突出顯示。它繼續(xù) org.eclipse.ui.editors 包中包括的類,這個包為 Eclipse 平臺提供一個標準文本編輯器和基于文件的文檔提供程序。這個簡單的 XML 編輯器起著代碼示例的作用,您可以把它作為自己的 Eclipse XML 插件的基礎。它的源代碼只能通過 Eclipse 項目向?qū)桑枰聪旅嫠枋龅淖约壕幾g它。
  
  要構建這個基本 XML 編輯器,轉至菜單 File => New,然后選擇 Project。在項目向?qū)е校x擇 Plug-in Development => Plug-in PRoject。
  
  假如看不到 Plug-in Development 選項,則表示 Eclipse 平臺 Runtime Binary 沒有 Plug-in 開發(fā)環(huán)境。請到 eclipse.org 下載頁面下載 Eclipse 平臺 Plug-in SDK。
  
  單擊 Next。給項目命名(如 org.my.eclipse.xmleditor),單擊 Next,然后接受屏幕 Plug-in Project StrUCture 上的缺省值。接下來選擇 Create a plug-in project using a code generation 向?qū)?,然后選擇 Plug-in with an editor 選項。向?qū)詣由稍?XML 編輯器的源代碼。
  
  但仍需編譯它。單擊 Next,然后在下一屏幕 Simple Plug-in Content 上單擊 Finish 選項;轉至 Project 菜單并選擇 Rebuild All 來構建該項目。
  
  接下來需要使用 File => EXPort 菜單創(chuàng)建 editor.jar 文件。請退出 Eclipse,然后復制整個 org.my.eclipse.xmleditor plugin 目錄。當您再次運行 Eclipse 時,可將一個 XML 文件添加到您的項目中。請記住這個樣本 XML 編輯器未提供任何一種驗證或語法檢查。
  
  用 XMLBuddy 編寫 XML
  
  最受歡迎且最高級的 Eclipse XML 編輯器插件是由 Bocaloco Software 開發(fā)的 XMLBuddy。XMLBuddy 是免費插件,它為 Eclipse 增添了 XML 編輯能力,其中包括對用戶可配置的語法著色、DTD 驅(qū)動的代碼輔助、驗證以及同步的提綱視圖。XML Buddy 還為 Workspace 添加 XML 透視圖,為 XML 文檔和 DTD 添加新的項目模板。您可以象安裝任何其它 Eclipse 插件那樣安裝 XMLBuddy:只需將插件壓縮文件解壓縮至主 Eclipse 安裝目錄下的 /eclipse/plugins 子目錄即可。記住要重新啟動 Eclipse。
  
  XML 是元標記語言。XML 元素由起始標記、結束標記和二者之間的數(shù)據(jù)組成,因此有了語法突出顯示還需要好的編輯功能。XMLBuddy(目前是版本 0.2)用以下 XML 編輯功能擴展 Eclipse:
  
  ● 格式化??梢酝ㄟ^選擇全部或部分代碼對整個 XML 文檔或部分文檔自動進行格式化。
  
  ● 高級語法著色??赏ㄟ^ Window => Preferences => XML => Colors 菜單配置 XML 代碼著色。著色可用于普通 XML 文檔、DTD(內(nèi)部或外部子集)和 jsp 文件。
  
  ● XML 代碼輔助。根據(jù)文檔的 DTD,可為元素或其它標記名稱、屬性名稱及屬性值提供輔助。
  
  ● 擴展字符編碼支持。XMLBuddy 根據(jù) XML 1.0 規(guī)范自動檢測文檔編碼,它接受
  
  ● 提綱(Outline)視圖。提綱視圖窗口顯示文檔中元素的結構。缺省情況下,提綱與編輯動態(tài)同步。這能使您快速瀏覽文檔的邏輯。
  
  ● DTD 生成??梢詣討B(tài)地從文檔的內(nèi)容生成 DTD。XMLBuddy 在本地高速緩存基于因特網(wǎng)的 DTD,因此不管要使用 DTD 和相關的文檔多少次,只需下載它們一次。
  
  驗證 XML 代碼并對其字符進行編碼
  
  使用 XML 文檔的主要困難在于檢查其內(nèi)部有效性(文檔邏輯的內(nèi)聚性)。需要執(zhí)行語法檢查以了解是否所有的標記和定義都是正確的并且被正確地調(diào)用。只有語法檢查通過之 后,才能確認 XML 文檔格式良好并可以解析文檔的邏輯結構。XML 文檔由 XML 解析器驗證。
  
  所有以下描述的 Eclipse XML 插件都能夠執(zhí)行 XML 驗證,指出代碼中的警告和錯誤。假如試圖打開一個 XML 文檔,XML 解析器可能會生成一個錯誤??梢詸z索精確的錯誤代碼、錯誤文本甚至導致錯誤的那一行??梢栽谛枰獣r驗證 XML 文檔,或在保存文檔時自動驗證??梢詫Ⅱ炞C錯誤任務作為一組進行清除。XMLBuddy 插件使用系統(tǒng)范圍的 XML 解析器,不過,請記住 Eclipse 平臺帶有最好的 XML 解析器之一:Xerces(XML4J)。但并不限于 Xerces 或系統(tǒng)解析器,因為可使用 Run => External Tools => Configure 指向其它 XML 解析器。
  
  另一個重要的 XMLBuddy 功能是支持不同的字符編碼。這遲早會有用,例如,當需要使用以不同語言(如波蘭語和英語)編寫的 XML 可移植文檔時。這不是一項簡單的任務,因為編碼波蘭語字符主要有三種方法:其一是由 Windows 9x/2000 使用的 Windows Latin-2(CP1250);其二是在因特網(wǎng)中使用以及由 UNIX 與類 UNIX 系統(tǒng)(如 linux)使用的 ISO Latin-2(ISO8859-2);其三是 MacOS 和 MacOS X,它們對波蘭語使用不同的字符編碼標準。
  
  通常,XMLBuddy 為字符編碼提供兩種解決方案:根據(jù)文件內(nèi)容自動檢測 XML 文檔編碼,或?qū)⑵湓O置為缺省的編碼。缺省的編碼可以在工作空間范圍,也可特定于資源。要打開 XML 編碼首選項,可選擇 Window => Preferences => XML => Encoding。
  
  這些針對字符編碼的解決方案的問題在于:對 XML 而言,一種編碼(每個工作臺一種)不能適應全部情況。XML 文檔可能來自世界各地任意數(shù)量的來源。在許多情況下,用戶不能控制其他人對文檔的編碼,而且可能沒有辦法按編碼界限劃分工作。同一編碼首選項將很難同時適合(比方說) Java 源文件和 XML 文檔。當一組全局首選項不能滿足需要時,XMLBuddy 為每個文檔提供屬性。指定項目中每個文件的屬性是一項繁重的任務。但是,當要處理的某一文檔使用了不常用的編碼(不能自動檢測該編碼,并且沒有在文檔中指定)時,則屬性是唯一的解決方案。要打開特定文件的編碼屬性,可在文件上單擊鼠標右鍵并選擇 Properties = > XML => Encoding。
  
  DTD vs. XML Schema
  
  XML Schema 指定 XML Schema 定義語言,該語言提供了描述 XML 1.0 文檔結構和限制其內(nèi)容的工具,其中包括那些利用 XML Namespace 的工具。模式語言自身用 XML 1.0 表示并使用名稱空間,它在很大程度上重構了 XML 1.0 DTD 具有的能力,并在一定程度上擴展了這些能力。請記住 DTD 有許多局限:
  
  □ 對于復雜需求通常很難使用內(nèi)容模型。
  □ 不支持名稱空間。
  □ 對模塊化和重用的支持非常有限。
  □ 不支持對聲明擴展或繼續(xù)。
  □ 編寫、維護和讀取大型 DTD 以及定義系列相關模式都很困難。
  □ 沒有嵌入式、結構化自我文檔編制(self-documentation)(只有 可用)。
  □ 內(nèi)容和屬性聲明不能依靠屬性或元素上下文(許多 XML 語言用到這一點,但它們的 DTD 必須“答應過多東西”)。
  □ 只能使用一個簡單的標識屬性機制(換句話說,沒有唯一性作用域)。
  
  XML Schema 也有不足:
  
  □ XML Schema 比較復雜;只需要偶然使用 XML 的程序員可能覺得它難得有些過頭。
  □ XML Schema 不能請求特定的根元素(因此,即使驗證最簡單的文檔也要求額外的信息)。
  □ 當描述混合內(nèi)容時,根本無法約束字符數(shù)據(jù)。
  □ 內(nèi)容和屬性聲明不能依靠屬性或元素上下文(這也是 DTD 的主要問題)。
  □ 不能離開聲明指定缺省值。
  □ 元素缺省值只能是字符數(shù)據(jù)(不包含標記)。
  
  XMLBuddy 對 DTD 和 Schema 都提供了足夠的支持,但假如您需要真正優(yōu)秀的 XML Schema 支持,應該使用 XSD-XML Infoset Browser for java 插件。它是按照 W3C XML Schema 規(guī)范中描述的那樣實現(xiàn) XML Schema Infoset Model 的 Java 參考庫。它對于任何檢查、創(chuàng)建或修改 XML Schema 的代碼都非常有用。XML Infoset Browser 提供操作 XML Schema 組件的 API,以及操作以一系列 XML 文檔的 XML Schema 的(DOM 可訪問的)表示的 API。XML Infoset 基本上答應兩個或兩個以上的程序員同時使用 Java 和 XML,因此提供了識別和創(chuàng)建基于 XML 的模式的標準方法。
  
  XML Infoset Browser 的必要補充是 IBM XML Schema Quality Checker,簡稱 SQC。SQC 是 Java 程序,它獲取以 W3C XML 模式語言編寫的 XML Schema 作為輸入,然后診斷 Schema 語言不正確的使用。SQC 讀取符合最新 XML Schema 規(guī)范的 Schema,并嘗試確定它們在應用于 Schema 的各種約束下是否有效。當 SQC 碰到不符合規(guī)范的元素時,它給出診斷消息,其中可能包含關于如何修正問題的建議。對于由許多 Schema 文檔(這些文檔間通過 、 或 元素信息項連接)組成的 Schema,執(zhí)行完整的 Schema 檢查。SQC 還可以以批處理方式運行,通過一次運行檢查多個 XML 模式。
  
  其它 Eclipse XML 插件
  
  其它有用的 XML 插件有 Transclipse 和 Eclipse Tidy。Transclipse 是 XML 轉換插件。它用任何符合 JAXP 的 XSL 樣式表處理器通過 XSLT 處理 XML 文檔,并使用 Apache 格式化對象處理器(Formatting Objects Processor,F(xiàn)OP)處理 XSL-FO 文檔。Transclipse 是 j2h(Java 至 Html,Java to HTML)插件的一部分,j2h 將 Java 源代碼轉換成帶語法突出顯示的 HTML、XHTML 和 LaTeX。Eclipse Tidy 項目提供了格式化和打印 XML/HTML 文檔的插件。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 中西区| 仙桃市| 建昌县| 二连浩特市| 汕尾市| 桂林市| 军事| 深州市| 汉中市| 贵州省| 泉州市| 泌阳县| 甘泉县| 耿马| 鹰潭市| 奉节县| 于田县| 芦溪县| 梧州市| 东阳市| 利辛县| 嵊泗县| 张北县| 嘉兴市| 寿阳县| 黄陵县| 兰考县| 马边| 赤壁市| 大同市| 合作市| 习水县| 阜新| 滁州市| 吉隆县| 都匀市| 毕节市| 广宁县| 左权县| 禄丰县| 遂平县|