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

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

分析如何用 Eclipse 進行 XML 開發

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久中文字幕| 国产99久久精品一区二区 夜夜躁日日躁| 日本欧美黄网站| 亚洲视频专区在线| 日韩风俗一区 二区| 亚洲级视频在线观看免费1级| 欧美激情一区二区三区高清视频| 亚洲综合成人婷婷小说| 久久精品国产成人| 国产精品在线看| 91国内精品久久| 亚洲乱码av中文一区二区| www.美女亚洲精品| 91在线直播亚洲| 亚洲人成网在线播放| 国产精品吴梦梦| 久久久中精品2020中文| 亚洲人成伊人成综合网久久久| 亚洲精品美女在线观看| 国产成人综合av| 色樱桃影院亚洲精品影院| 亚洲第一福利视频| 日韩精品免费在线视频观看| 亚洲视频自拍偷拍| 97国产成人精品视频| 久久久成人av| 欧美激情三级免费| 国产成人啪精品视频免费网| 国产精品欧美激情| 国产成人aa精品一区在线播放| 亚洲激情中文字幕| 国产性色av一区二区| 亚洲综合日韩中文字幕v在线| www欧美日韩| 亚洲性视频网站| 精品久久久在线观看| 日韩男女性生活视频| 亚洲va男人天堂| www.欧美视频| 97碰碰碰免费色视频| 国产va免费精品高清在线观看| 欧美综合在线第二页| 日韩精品在线电影| 国产一区二区在线免费视频| 超碰日本道色综合久久综合| 在线视频一区二区| 久久久久日韩精品久久久男男| 欧美成人精品在线| 日韩午夜在线视频| 欧美疯狂性受xxxxx另类| 亚洲国产精品成人va在线观看| 97超碰色婷婷| 欧美日韩国产一区中文午夜| www.色综合| 97在线视频精品| 午夜精品一区二区三区在线播放| 欧美精品久久久久a| 亚洲一区二区三区乱码aⅴ| 国产精品91视频| 国产精品偷伦视频免费观看国产| 色琪琪综合男人的天堂aⅴ视频| 久久综合亚洲社区| 狠狠色香婷婷久久亚洲精品| 国产精品第一区| 茄子视频成人在线| 国产91色在线免费| 亚洲福利小视频| 日韩在线播放视频| 久久国产精品视频| 欧美黑人性视频| 成人美女免费网站视频| 久久精品中文字幕一区| 97成人超碰免| 亚洲午夜av久久乱码| 日韩电影中文字幕一区| 国产精品白丝jk喷水视频一区| 欧美激情18p| 亚洲视频欧洲视频| 精品夜色国产国偷在线| 国产欧美久久一区二区| 狠狠躁夜夜躁久久躁别揉| 精品日本高清在线播放| 少妇高潮久久久久久潘金莲| 久久精品夜夜夜夜夜久久| 精品视频久久久久久| 国产精品美乳一区二区免费| 国产精品亚洲第一区| 欧美大片免费观看| 国产亚洲aⅴaaaaaa毛片| 亚洲3p在线观看| 日韩福利在线播放| 欧美乱妇高清无乱码| 日韩av一区二区在线| 精品久久香蕉国产线看观看gif| 青青久久aⅴ北条麻妃| 一区二区三区国产在线观看| 亚洲www在线| 日韩不卡中文字幕| 1769国内精品视频在线播放| 欧美综合在线观看| 精品夜色国产国偷在线| 成人免费看吃奶视频网站| 狠狠躁夜夜躁人人爽超碰91| 日韩av免费一区| 97免费中文视频在线观看| 国产日韩精品电影| 欧美激情一区二区三区成人| 国产日韩亚洲欧美| 亚洲欧美日韩天堂一区二区| 中文字幕亚洲欧美日韩高清| 97视频在线免费观看| 亚洲欧美日韩中文在线| 欧美视频13p| 国产精品久久国产精品99gif| 91亚洲精品在线观看| 亚州欧美日韩中文视频| 国产精品www色诱视频| 日韩欧美在线观看| 国产精品精品视频一区二区三区| 国产精品久久久久99| 一区二区三区视频免费| 国产91在线播放精品91| 51ⅴ精品国产91久久久久久| 日本一区二区三区四区视频| 亚洲久久久久久久久久久| 国产在线日韩在线| 精品久久久久久亚洲精品| 一区二区三欧美| 欧美日韩高清在线观看| 久久99精品久久久久久青青91| 久久人91精品久久久久久不卡| 成人精品一区二区三区电影黑人| 日韩亚洲一区二区| 国产成人精品一区二区在线| 亚洲国产欧美一区二区丝袜黑人| 亚洲2020天天堂在线观看| 欧美三级欧美成人高清www| 国产成人亚洲综合91| 精品国产91久久久久久老师| 最近2019中文字幕一页二页| 欧美日韩中文字幕综合视频| 国产成人av在线| 菠萝蜜影院一区二区免费| 情事1991在线| 国产精品久久久一区| 欧美极品xxxx| 亚洲人成网在线播放| 亚洲va久久久噜噜噜久久天堂| 久久久精品国产| 美女黄色丝袜一区| 色噜噜狠狠狠综合曰曰曰88av| 日韩欧美亚洲范冰冰与中字| 国产成人av网址| 久热精品视频在线观看一区| 亚洲韩国青草视频| 51视频国产精品一区二区| 国产一区玩具在线观看| 欧美激情久久久久久| 高潮白浆女日韩av免费看| 97人人做人人爱| 一本色道久久综合亚洲精品小说| 久久韩剧网电视剧| 中文字幕亚洲综合久久| 97久久伊人激情网|