答: XML 是由萬維網聯盟( World Wild Web Consortium , W3C )發起的。 XML 開發工作始于 1996 年。
一群從業界到學院的眾多種標記語言的專家,為 Web 開發了一種簡化版本的 SGML (標準通用標記語言, Standard Generalized Markup Language ). 1998 年 2 月, XML 1.0 規范成為 W3C 的推薦標準。
問. XML 最大的優點是什么?
答. XML 可以簡化和降低數據在 Web 環境中進行交換和發布所需要的成本。 XML 是一種可供計算機和人閱讀的基于文本的語法。 XML 可跨越不通平臺和設備提供數據可移植性和可重用性。它還具有靈活性和可擴展性,在不破壞現有文檔結構的前提下,答應添加新的標簽?;?Unicode , XML 提供全球語言支持。
問. XML 有什么應用?
答. XML 在 B2B 網絡應用程序的數據交換格式中扮演重要角色,例如電子商務、供給鏈治理、工作流和應用集成。 XML 的另一個應用是結構化信息治理,包括數據庫中的信息。 XML 還提供了獨立于媒體的發布,答應一次書寫文檔,以多種媒體格式和設備進行發布。在客戶端, XML 還用于創建帶有數據的定制視圖。
答. XML 和 Java 技術是互補的。 Java 技術提供了可移植的、可維護的代碼,以便處理那些可移植的和可重用的數據。此外,XML 和 Java 技術具有很多共同的特性,使得它們可以在 Web 計算方面完美地結合,包括形成業界標準、平臺獨立、可擴展、可重用、 以 Web 為中心和國際化等方面。
問. 在 Java 技術中使用 XML 有什么優點?
答. 與其他編程語言如 C 或 C++ 相比, Java 技術使軟件開發人員的生產力有了質的提高。此外,開發者使用 Java 平臺,可以創建可重用和可維護的復雜的應用程序,這是腳本語言無法做到的。協同使用 XML 和 Java ,開發人員可以用很低的成本快速地構建復雜的和可互操作的 Web 應用程序。
問. Sun 參與了哪些 XML 相關的活動?
答. Sun 積極參與 W3C 工作組,參加制定 XML 樣式表 / 轉換語言 (Stylesheet/Transformation , XSL/T) , XML Schema,Xlink 和 XML Query。 Sun 還參與了許多其他業界社團,包括 Oasis,XML.org 以及 Apache。
問. 在哪里可以找到更多的文檔?
答. Java 技術與 XML 文檔 頁面包含了本網站提供的所有關于 Java 技術和 XML 文檔的完全列表。
問. 我可以向哪里發送評論和建議?
答. 對于此項目的反饋意見,請發電子郵件至 xml-feedback@sun.com 。
問. 是否還有其他的由 Sun 主辦的關于 XML 的郵件列表可供訂閱?
答. 關于在 Java 平臺使用 XML 技術的一般性討論話題,請訂閱 xml-interest@java.sun.com 。
Java API for XML PRocessing(JAXP ) 問. 什么是 Java API for XML Processing(JAXP)?
答. Java API for XML Processing,或簡稱為“JAXP”,可使應用程序采用一種獨立于特定 XML 處理程序實現的 API 對 XML 文檔進行解析和轉換。 JAXP 還提供可插入特性,答應應用程序在特定 XML 處理程序實現之間很輕易地切換。
要實現 XML 處理程序獨立性這一目標,應用程序應當限制使用 JAXP API,并避免使用與實現相關的 API 。根據具體的應用程序,這可能易于或難以實現。 JAXP 包括了如 DOM 和 SAX 在內的業界標準 API 。
JAXP 出現的原因就是為了方便在 Java 平臺上使用 XML 。例如,當前使用的 API ,如 DOM Level 2 ,不提供從一個 XML 輸入文檔中獲得一個 DOM 文檔對象的方法, JAXP 則可以做到。( DOM Level 3 提供這種功能,新版本的 JAXP 規范也可能會支持這種新的 Level 3 方案。) JAXP 的其他部分,如 javax.xml.transform 部分,不具備其他同等的獨立于 XSLT 處理程序的 API 。
問. 在哪里可以閱讀關于 JAXP 的更多內容?
答. 請參見 JAXP 常見問題 獲得更多信息。
Java Architecture for XML Binding( JAXB ) 問. 什么是 Java Architecture for XML Binding( JAXB )?
答. Java Architecture for XML Binding( JAXB )簡化了啟用 XML 的 Java 程序的創建和維護。 JAXB 提供一個綁定的編譯器和一個運行時框架用來支持 XML 和 Java 對象的雙向映射。綁定編譯器可將 W3C XML 樣式轉換成一個或多個 Java 類,這個過程無需開發人員編寫復雜的解析代碼。模式派生類以及綁定框架可對輸入和輸出的 XML 文檔啟用錯誤或有效性檢查,因而可以確保系統接收、處理和生成有效而無誤的消息。更多信息,請參閱 Reference Implementation 和 Public Draft Specification,以上文檔均可在 JAXB 主頁下載。
問. JAXB、SAX 和 DOM 有什么不同?我應當選用哪一個?
答. SAX 是一種事件驅動的 XML 解析器,適用于高速處理 XML ,因為它不在內存中生成數據表示。與之不同,DOM 在內存中生成數據表示,答應應用程序對內存中的內容進行操縱。 SAX 和 DOM 都自動執行結構的有效性驗證。一個應用程序可以使用 SAX 和 DOM 進行內容有效性驗證,但這樣的應用程序必須提供額外的代碼,這可能會是復雜的、易于出錯和難以維護的。
一個 JAXB 應用程序可以使用由模式生成的 Java 類對結構和內容進行有效性驗證。與 DOM 類似,一個 JAXB 應用程序在內存中通過編組(marshalling) XML 文檔來構造內容樹,從而創建數據結構,這個樹包括派生類的實例對象。但與 DOM 樹不同,內容樹是特定于某一種源模式的,不包含額外的樹操縱功能,不答應使用其派生類的訪問器方法對數據進行訪問,也不能動態地構建。假如文檔的內容是趨于動態且沒有完好約束的,則在處理內容之前,在處理那些沒有知名樣式的 XML 內容方面,DOM 和 SAX 要比 JAXB 更適合。
問. JAXB 如何工作?
答. 要構建 JAXB 應用程序,首先從 XML 模式開始。beta 版本要求模式語言是 XML Schema 的 W3C 2001 Recommendation。