JAXP—Java API for XMLProcessing,可使应用程序采用一种独立于特定 XML 处理程序实现的 API 对 XML文档进行解析和转换。 JAXP 还提供可插入特性,允许应用程序在特定 XML 处理程序实现之间很容易地切换。
要实现XML 处理程序独立性这一目标,应用程序应当限制使用 JAXPAPI,并避免使用与实现相关的 API 。根据具体的应用程序,这可能易于或难以实现。 JAXP 包括了如 DOM 和 SAX在内的业界标准 API 。
JAXB—JavaArchitecture for XML Binding,简化了启用 XML 的 Java 程序的创建和维护。JAXB 提供一个绑定的编译器和一个运行时框架用来支持 XML 和 Java 对象的双向映射。绑定编译器可将 W3C XML样式转换成一个或多个 Java 类,这个过程无需开发人员编写复杂的解析代码。模式派生类以及绑定框架可对输入和输出的 XML文档启用错误或有效性检查,因而可以确保系统接收、处理和生成有效而无误的消息。
一个 JAXB 应用程序可以使用由模式生成的 Java 类对结构和内容进行有效性验证。与 DOM类似,一个 JAXB 应用程序在内存中通过编组(marshalling) XML文档来构造内容树,从而创建数据结构,这个树包括派生类的实例对象。但与 DOM树不同,内容树是特定于某一种源模式的,不包含额外的树操纵功能,不允许使用其派生类的访问器方法对数据进行访问,也不能动态地构建。如果文档的内容是趋于动态且没有完好约束的,则在处理内容之前,在处理那些没有知名样式的XML 内容方面,DOM 和 SAX 要比 JAXB 更适合。
JAXM—Java API for XMLMessaging,专门用于 Internet 上交换 XML 商业文档的 API 。常用于交换的 XML文档的例子有订单、订购确认和发票。您可以在发送的消息中附带非 XML 数据。
Java API for XML Registries,提供一个统一的、标准的Java API,用于访问不同类型的 XML Registries。XML 注册项是构建、部署和发现 Web服务的基础设施。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的WebServices即为注册服务。一般来说,注册服务总是以Web Services的形式运行的。JAXR支持三种注册服务类型:JAXRPluggable Provider、Registry-specific JAXR Provider、JAXR BridgeProvider(支持UDDI Registry和ebXML Registry/Repository等)。
JAXR API 与其他 XML API之间有何关系?
客户端与 JAX-RPC 服务之间采用什么交互模式?
有以下三种不同的模式:
- 同步请求-响应(SynchronousRequest-Response):客户端调用远程程序并阻塞,直到它收到一个返回值或异常。
- 单向 RPC(One-Way RPC):客户端调用远程过程,但自身不阻塞或等待直到收到一个返回值。JAX-RPC客户端的运行时系统可能会抛出异常。
- 非阻塞 RPC 调用(Non-Blocking RPCInvocation):客户端调用远程过程,并继续处理同一个线程的内容而不等待返回值。此后,客户端通过阻塞来接受返回值或轮询返回值,以此来处理远程方法的返回。