答: 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。