java技术与XML常见问题

来源:互联网 发布:js包含字符串 indexof 编辑:程序博客网 时间:2024/05/19 04:52

Java技术与XML常见问题

一般问题 |   JAXP  |   JAXB  |   JAXM  |   JAXR  |   JAX-RPC  |   J2EE

一般问题

§                   XML 是什么?

§                   XML 是由谁开发的?

§                   XML 最大的优点是什么 ?

§                   XML 有什么应用?

§                   XML Java 技术之间有何关系?

§                   Java 技术中使用 XML 有什么优点?

§                   Sun 参与了哪些 XML 相关的活动?

§                   在哪里可以找到更多的文档?

§                   我可以向哪里发送评论和建议?

§                   是否还有其他由 Sun 主办的关于 XML 的邮件列表可供订阅?

回到页首

Java API for XML ProcessingJAXP

§                   什么是 Java API for XML ProcessingJAXP )?

§                   在哪里可以阅读关于 JAXP 的更多内容?

回到页首

Java Architecture for XML Binding JAXB

§                   什么是 Java Architecture for XML Binding JAXB )?

§                   JAXV SAX DOM 有什么不同?我应当选用哪一个?

§                   JAXB 如何工作?

§                   谁参与开发 JAXB

§                   我从哪里能够阅读到关于 JAXB 的更多内容?

回到页首

Java API for XML Messaging JAXM

§                   什么是 Java API for XML Messaging JAXM)?

§                   JAXM 基于什么标准?

§                   是否必须在 J2EE 平台下使用 JAXM

§                   什么是消息提供者?

§                   是否必须使用消息提供者?

§                   JAXM 消息是否可以被路由到多个目的地?

§                   是否能在 JAXM 消息中使用 ebXML 头部?

回到页首

Java API for XML Registries JAXR

§                   什么是 Java API for XML Registries JAXR)?

§                   JAXR API 与其他 XML API 之间有何关系?

§                   为什么对 Java Naming and Directory Interface JNDI )需要有一个新的 JAXR API

§                   通过对 JAXR API 增加功能来增强 JNDI API 会不会更好?

§                   JAXR 信息模型中的 Association 的作用是什么?在所有 API 中都没有用到过它。

§                   JAXR 信息模型中的 Classification 的作用是什么?在所有 API 中都没有用到过它。

§                   为何 JAXR 是一个抽象的 API ,并且没有像 UDDI ebXML 那样针对特定的注册项?

§                   为什么 JAXP API 没有使用 UDDI 的术语和概念?

§                   为什么 JAXR 信息模型使用 ebXML Registry Information Model 作为基础,而不采用 UDDI 数据结构?

§                   为什么没有完整地开发 JAXR 信息模型?

回到页首

Java API for XML-Based RPCJAX-RPC

§                   什么是 Java API for XML-Based RPCJAX-RPC)?

§                   JAX-RPC 如何使用 SOAP

§                   什么是 RPC

§                   XML 如何与 RPC 相关联?

§                   对于 Web 服务, JAX-RPC 必须做哪些工作?

§                   客户端与 JAX-RPC 服务器之间采用什么的交互模式?

§                   远程方法调用或响应能否传送服务内容信息?

§                   为什么 xrpcc 没有生成 WSDL 文件?

回到页首

Java 2 Platform, Enterprise Edition

§                   Java 2 Platform, Enterprise Edition 是否能使用 XML

§                   是否能用 JSP 页面生成动态的 XML 文档?

回到页首

一般问题

问:XML 是什么?

答: XML,可扩展标记语言,是一种用于描述和构造独立于应用程序逻辑的通用语法。XML 可以为特定行业和应用程序定义无限制的语言。

问:XML 是由谁开发的?

答: 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 技术之间有何关系?

. 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 SchemaXlink XML Query Sun 还参与了许多其他业界社团,包括 OasisXML.org 以及 Apache

. 在哪里可以找到更多的文档?

. Java 技术与 XML 文档 页面包含了本网站提供的所有关于 Java 技术和 XML 文档的完全列表。

. 我可以向哪里发送评论和建议?

. 对于此项目的反馈意见,请发电子邮件至 xml-feedback@sun.com

. 是否还有其他的由 Sun 主办的关于 XML 的邮件列表可供订阅?

. 关于在 Java 平台使用 XML 技术的一般性讨论话题,请订阅 xml-interest@java.sun.com

回到页首

Java API for XML ProcessingJAXP

. 什么是 Java API for XML ProcessingJAXP)?

.  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 主页下载。

. JAXBSAX 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

在获得 XML 模式之后,就可以构建和使用 JAXB 应用程序,按以下这些步骤:

1.    XML Schema 提交给绑定的编译器,生成 Java 源文件。

您可以定制绑定声明,从而覆盖 XML Schema 组件与 Java 表示之间的默认绑定。

  1. 编译 Java 源代码。

3.    使用类和绑定框架,编写 Java 应用程序,如下:

o        构建表示 XML 数据的对象树,该数据按 XML Schema 是有效的,可以通过从文档中解组(unmarshalling)数据或实例化要创建的类。

o        访问和修改数据。

可以选择对与约束相关的数据的更改进行验证,这些约束在 XML Schema 中表示。

o        将数据整理为新的 XML 文档。

. 谁参与开发 JAXB

. JAXB Java Community ProcessJCP )正在进行开发,JCP 由专家组所组成,包括 IBMSoftware AGBEA SystemsHewlett-Packard TIBCO Software Inc. Oracle Fujitsu LimitedBreeze Factor LLCMacromedia Inc. Intalio Inc.Sun W3C XML Schema Working Group 最积极的成员,并与其他业界团体共同工作,如 OASIS xml.org

. 我从哪里能够阅读到关于 JAXB 的更多内容?

. 对于 JAXB 更高层的解释,请参阅 Java Web Services Tutorial 中的 JAXB 一章。还需提醒的是,详细用户指南也作为 JAXB 的一个部分发布。更多关于 JAXB 的技术和细节描述,请参看最新版本的规范,您可以从 JAXB 主页 下载。请注意,此规范使用 Adobe Acrobat PDF 格式。免费下载 Adobe Acrobat

回到页首

Java API for XML Messaging JAXM

. 什么是 Java API for XML MessagingJAXM)?

. Java API for XML MessagingJAXM)是专门用于 Internet 上交换 XML 商业文档的 API 常用于交换的 XML 文档的例子有订单、订购确认和发票。您可以在发送的消息中附带非 XML 数据。

. JAXM 基于什么标准?

. JAXM 基于简单对象访问协议(Simple Object Access Protocol SOAP1.1 SOAP with Attachments 规范。JAXM 还允许 SOAP 实现之上的标准协议实现,例如 SOAP-RP ebXML Transport, Routing & Packaging V1.0Message Service Specification

. 是否必须在 J2EE 平台下使用 JAXM

. 不是,您可以免费使用 Java 2 Platform, Standard Edition (J2SE),就像使用 Java 2 Platform, Enterprise Edition (J2EE) 一样。一个独立客户端(不使用消息提供者的客户端)可以使用 J2SE 平台向可以处理请求-响应消息的 Web 服务发送此消息。这不需要在客户端进行部署或配置,因此很容易实现。

. 什么是消息提供者?

. 消息提供者是一种服务,它使用消息传送基础设施来路由和传递消息。对于客户来说,发送和接受消息是完全透明的。使用消息提供者的应用程序必须使用一个到消息提供者的连接,在 JAXM API 中称之为 ProviderConnection 对象。使用消息提供者还需要某种部署和配置。通常情况下,客户端使用运行在容器中的消息提供者-servlet J2EE 容器。在部署的时候,客户端需要为容器提供关于消息提供者的信息。将来,会有一种部署工具使这个过程更简单。

. 是否必须使用消息提供者?

. 不是。只有当您的应用程序需要单向(异步)消息传送时,您才需要使用消息提供者。在这种类型的消息中,一个消息作为一个操作发送给接受者,然后接受者在一段时间后使用另一个不同的操作进行响应。如果您的应用程序使用请求 - 响应样式的消息传送,回送此消息的响应被看作是同一个操作,您不需要消息提供者。当您不使用消息提供者时,您需要使用 SOAPConnection 对象,它支持更简单的请求-响应消息模型。

. JAXM 消息是否可以被路由到多个目的地?

. 是的。可以在消息头指定即时接受者。这种能力的一种使用方法是启用自动业务处理。例如,两个商业组织认可他们之间交换的 XML 文档的环境,这样他们可以实现自动生成的消息和响应。比方说这两个商业组织约定订单命令首先进入订购部门,然后进入订单确认部门,然后进入送货部门,最后进入结算部门。每个部门有一个即时接受者(称之为 actor)。在 actor 结束它的处理之后,它将删除头部的所有关于自身内容,并将消息发送给头部中所列出的下一个 actor

. 我是否能在 JAXM 消息中使用 ebXML 头部?

. 是的,如果您使用一个在 SOAP 上实现的 ebXML 概要文件,那么可以使用 ebXML 头部。一个概要文件是一个标准协议,如 ebXML TRP SOAP-RP ,它工作在 SOAP 之上,提供附加功能。您需要使用消息提供者支持概要文件,而且您需要让接受者使用相同的概要文件。

回到页首

Java API for XML Registries JAXR

. 什么是 Java API for XML Registries JAXR)?

. Java API for XML RegistriesJAXR)提供一个统一的、标准的 Java API,用于访问不同类型的 XML RegistriesXML 注册项是构建、部署和发现 Web 服务的基础设施。

. JAXR API 与其他 XML API 之间有何关系?

. JAXR 提供者的实现可以使用 Jav API for XML-Based RPC (JAX-RPC) JAXR 提供者与注册项提供者之间的通信,此注册项提供者输出类似 RPC 的基于 SOAP 的接口(例如, UDDI )。

JAXR 提供者的实现可能会使用 Java API for XML MessagingJAXM)在 JAXR 提供者与注册项提供者之间进行通信,该注册项提供者输出基于 XML Messaging 的接口(如 ebXML TRP )。

Java API for XML Processing (JAXP) Java Architecture for XML Binding (JAXB)会被 JAXR 提供者和 JAXR 客户端使用,用于处理向 Registry 提交或从 Registry 中获取的 XML 内容。

. 为什么对 Java Naming and Directory InterfaceJNDI)需要有一个新的 JAXR API

. JNDI API 采用与 JAXR API 完全不同的需求集合进行设计。这两种抽象的 API 都遵循现有的规范。然而,抽象目录服务与用于发布和发现 Web 服务的 XML Registries 有很大的不同。JAXR API 需要更丰富的元数据能力以及查询能力来进行分类和关联。

. 通过对 JAXR API 增加功能来增强 JNDI API 会不会更好?

. 这个选择被考虑过。要满足 XML Registries 的额外需求,需要细化信息模型。为了解决目录服务的需求,在 JNDI API 设计中强制使用了一个现有的信息模型。扩展 JNDI API 将限制 JAXR API ,并需要考虑实现 JNDI API的后向兼容性。

. JAXR 信息模型中的 Association 的作用是什么?在所有 API 中都没有用到过它。

. Association 用于彼此关联两个 RegistryObjects 。在注册项中的两个对象之间可以定义一个 Association,并使用 GenericLifeCycleManager saveObjects 方法进行提交。

. JAXR 信息模型中的 Classification 的作用是什么?在所有 API 中都没有用到过它。

. Classification 用于对 RegistryObject 进行分类。可根据 RegistryObject 定义一个 Classification,并使用 GenericLifeCycleManager saveObjects 方法提交该分类。

. 为何 JAXR 是一个抽象 API,并且没有像 UDDI ebXML 那样针对特定的注册项。

. 抽象 JAXR API 可以让开发人员编写注册项客户端程序,这些程序是跨越多个目标注册项可移植的。这与 Java 的“一次编写,到处运行”(Write Once, Run Anywhere)的理念是一致的。它还提供了超越注册项本身功能的增值能力。例如,一个非 JAXR UDDI 用户不具备分类浏览和分类智能查询的能力,而 JAXR  UDDI 用户具备这些能力。

. 为什么 JAXP API 不使用 UDDI 的术语和概念?

. JAXR API 不针对 UDDI 或其他任何一种注册规范。它是一种涵盖多种规范的抽象 API。它可让开发人员在使用 Web 服务注册项和/或知识库之间做出选择。当 UDDI 适用于 JAXR 信息模型时(例如,ServiceServiceBinding 以及 BusinessQueryManager BusinessLifeCycleManager 中的方法名),JAXR API 使用 UDDI 术语和概念。

. 为什么 JAXR 信息模型使用 ebXML Registry Information Model 作为基础,而不采用 UDDI 数据结构?

. JAXR API 用于支持多注册项。 ebXML Registry Information Model UDDI 数据结构更通用且更易于扩展。出于这种特点,可以将 ebXML Registry Information Model 进行扩展,来满足 UDDI 和其他注册项的需要。

. 为什么没有完整地开发 JAXR 信息模型?

. 信息模型的开发需要很长时间。从现有信息模型出发对其进行改进是很容易的。

回到页首

Java API for XML-Based RPCJAX-RPC

问题. 什么是 Java API for XML-Based RPCJAX-RPC)?

. Java API for XML-Based RPCJAX-RPC)使得 Java 技术开发人员使用基于 XML RPC 功能构建 Web 应用程序和 Web 服务,此功能遵循 SOAP(简单对象访问协议,Simple Object Access Protocol1.1 规范。

问题. JAX-RPC 如何使用 SOAP

. 请参考 JSR-101

问题. 什么是 RPC

. RPC 代表远程过程调用(remote procedure call),它是能使客户端执行其他系统中程序的一种机制。RPC 机制常用于分布式客户端/服务器模型。服务器将服务定义为一系列过程,可供远程客户端调用。

问题. XML 如何与 RPC 相关联?

. 远程过程调用是由基于 XML 的协议来表示的,比如 SOAP 。除了定义信封结构和编码规则之外,SOAP 规范还定义了远程过程调用和响应的表示惯例。

问题. 对于 Web 服务,JAX-RPC 必须做哪些工作?

. 一个基于 XML RPC 服务器应用程序可以定义、描述和导出一个的 Web 服务,如同基于 RPC 的服务一样。WSDLWeb 服务描述语言,Web Service Description Language)定义了一种 XML 格式,将服务描述为一组消息操作的端点集合。通过使用 JAX-RPC API ,开发人员可以用 WSDL 描述来实现客户端和服务。

问题. 客户端与 JAX-RPC 服务之间采用什么交互模式?

. 有以下三种不同的模式:

  1. 同步请求-响应(Synchronous Request-Response):客户端调用远程程序并阻塞,直到它收到一个返回值或异常。

  2. 单向 RPCOne-Way RPC):客户端调用远程过程,但自身不阻塞或等待直到收到一个返回值。JAX-RPC 客户端的运行时系统可能会抛出异常。

  3. 非阻塞 RPC 调用(Non-Blocking RPC Invocation):客户端调用远程过程,并继续处理同一个线程的内容而不等待返回值。此后,客户端通过阻塞来接受返回值或轮询返回值,以此来处理远程方法的返回。

问题. 远程方法调用或响应能否传送服务内容信息?

. 是的。例如它可能会传送唯一的事务标识符或数字签名。

问题. 为什么 xrpcc 没有生成 WSDL 文件?

. xrpcc 工具实际上可以生成 WSDL 文件,但由于设计失误,如果不指定 –keep 选项,该文件会同源文件一起被删除。您可以使用 –keep 选项让 xrpcc 不删除 WSDL .java 源文件。如果您使用 –s sourcepath 选项,所有源文件将被放置在 sourcepath 目录中,然后您可以很容易地删除它们。 WSDL 文件将被放置在当前目录或由 –d 选项指定的目录中。

回到页首

Java 2 Platform, Enterprise Edition

问题. Java 2 Platform, Enterprise Edition 是否能使用 XML

. Java 2 Platform, Enterprise Edition (J2EE) 促进了在松耦合商业系统之间使用 XML 进行数据消息传递。J2EE 参考实现包括了 Java API for XML Parsing(JAXP)

JavaServer PagesJSP)可以在多层服务器之间或服务器与客户端之间生成和使用 XML Java 消息服务(Java Message Service JMS)提供了用于 XML 数据消息的异步传送机制。Enterprise JavaBeans (Enterprise JavaBeans EJB) 提供一种健壮的同步传输机制,允许用 XML 标签调用业务服务对象。EJB 还使用 XML 描述它的部署属性,例如事务和安全。

问题. 是否能用 JSP 页面生成动态的 XML 文档?

. JSP 页面能够生成 XML 页面。 XML 页面可以用 JSP 生成,包括用于生成文档动态部分的那些元素。 JSP 规范包括强大的标签扩展机制,可以用来执行基于 XML 的操作,例如将 XSLT 转换应用于一个 XML 文档。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 去麦加朝觐人要出现死亡怎么办 炉石传说偶数骑削弱后怎么办 出于安全和性能方面的原因怎么办 怀孕后不知道拍过好几次牙片怎么办 百度云种子含有非法离线内容怎么办 苹果手机上的迅雷怎么打不开怎么办 微信绑定银行卡收不到验证码怎么办 支付宝转账为什么没验证码怎么办 电视时间比手机慢三分钟怎么办 13岁现在有月经又流鼻血怎么办 酒店给客人把房间开错了怎么办 手机百度云下载的视频分解了怎么办 知道家人被绑架北派传销怎么办 接手前同事的客人无回复怎么办 喝了酒第二天一直吐怎么办 孩子看的鬼片不敢睡觉害怕怎么办 宝宝满月了脸还有点黄怎么办 我情人天天说没时间出去该怎么办 两个月宝宝下体三角区肿了怎么办 夏养的龙猫家里有味怎么办 不小心踩到仓鼠吐血了怎么办 不小心踩到仓鼠的头怎么办 母仓鼠生完孩子特别暴躁怎么办 被仓鼠咬出血怎么办要不要打针 被小仓鼠咬出血了该怎么办 仓鼠咬破手指流血了该怎么办 小仓鼠的手被棉花丝绑住了怎么办 荷兰猪如果不小心撞流血了怎么办 帮同事刷杯子但把杯子弄坏了怎么办 贵宾犬喜欢张开嘴巴跟人玩怎么办 鼻烟放了几天感觉跟受潮一样怎么办 两个月宝宝鼻屎堵住鼻子怎么办 肉包着智齿怎么办洗燥电影完整版 大腿内侧突然长黑痣越来越大怎么办 肚脐发炎、不脱落怎么办_妈网百科 老公出轨找个按摩的还不离婚怎么办 别人拿错钥匙装修好了房子怎么办 撞车后对方全责却不赔钱怎么办 我的世界国服客户端都是英文怎么办 下载的3d模型没有材质怎么办 写字时习惯把本子放歪该怎么办