通过Java编程处理XML服务定义

自助服务趋势

对于大多数服务提供商来说,自助服务正在发展为一种趋势 — 特别是那些资金紧张的ISP。因此,如果您需要更多带宽(进行下载或玩在线游戏),您可以登录到提供商的Web站点并通过Web页面自动升级与提供商的连接。让我们看一个具体的例子:清单1展示了一个简单的基于XML的用户服务配置文件。

清单1. 一个简单的基于XML的服务描述

<ServiceInstance>
<Customer>Josephine Bloggs</Customer>
<Package>Internet</Package>
<Bandwidth>1mbps</Bandwidth>
<DownloadLimit>1Gbyte</DownloadLimit>
<Uptime>95</Uptime>
</ServiceInstance>

代码解释了这个用户 XML 服务模型。该模型包括:

◆ 一个服务实例

◆客户名字

◆ 服务包的名称

◆ 已配置的带宽量

◆ 每月允许的下载限度

◆ 提供商正常运行时间保证

无疑,服务定义可以比此处的例子复杂很多。其他内容可能包括客户地址、账单明细、往返延迟、加密和服务信用信息等。重点是,越来越多的提供商提供如 清单1 所示的Web 访问细节。某种程度上讲,这种尝试可以减少支持电话的花销和发生频度。有趣的是,这种基于Web的服务可以使用户觉得为他们提供服务的是较为先进的提供商。这实现了双赢的局面,因为客户可以更好地访问他们的服务数据,而提供商可以销售无需他们插手的服务包。授权的用户可以修改如 清单1 所示的一些服务参数 — 例如,配置的带宽。随之修改的是用户每月的订购费用。

因此,清单1 中的代码形成了基于XML的服务模型的基础。通过简单地与在线表单进行交互,用户可以修改可写的服务元素(例如带宽)。通过在线表单进行的修改将被记录,然后反映到可由用户配置文件修改的后端服务中。这是一种实现自助服务的标准方法。

然而,您将要了解的是另一种更加松散耦合的自助服务 — 使用这种服务,用户可以通过在网络中传输清单1 中的XML内容修改数据。在这种场景中,所传输的XML内容可通过一个Java客户机进行修改,后者可运行在台式机、笔记本电脑、甚至某种资源受限的设备上(例如手机),然后将数据发回给网络服务提供商。这种机制超越了基本的HTML页面模型并采纳了SOA 思想。

将服务定义XML文档传输给使用Java技术的客户机

Java技术为XML数据处理提供了一些真正强大的工具(请参见侧栏 Java技术和 XML)。如果将 清单1 中的内容看作是给定数据集的基于XML的呈现,那么您还可以使用其他方式进行呈现。构成清单1 基本内容的原始数据一般保存在数据库中。因此,您如何将这些数据打包成XML?

清单2 中的内容摘取自本文附带的Java文件 encodeXML.java.(相关文件可从下载 部分获得)。encodeXML.java类对 XMLEncoder类的对象进行了实例化。如您所见,这个对象随后在当前目录中创建了名为xmldata.xml的文件。下一步是将 XML数据值插入到文件中,这可以通过调用一连串的writeObject() 方法实现(清单2对此进行了说明)。显然,在生产环境中,清单2 中硬编码的文本字符串将来自数据库这样的持久性存储。无论何种情况,可以看到 XML数据文件的创建非常简单。

清单2. 使用XML 格式编码数据

XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("xmldata.xml")));
e.writeObject("Josephine Bloggs");
e.writeObject("Internet");
e.writeObject("1mbps");
e.writeObject("Gbyte");
e.writeObject("295");
e.close();

执行 清单2 中的程序后,程序的执行目录中将出现一个名为xmldata.xml的文件。清单3解释了新创建文件包含的内容。

清单3. 生成的XML数据

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.5.0_06" class="java.beans.XMLDecoder">
<string>Josephine Bloggs</string>
<string>Internet</string>
<string>1mbps</string>
<string>Gbyte</string>
<string>295</string>
</java>

时间: 2025-01-24 12:31:52

通过Java编程处理XML服务定义的相关文章

Java编程中更新XML文档的常用方法

xml|编程 本文简要的讨论了Java语言编程中更新XML文档的四种常用方法,并且分析这四种方法的优劣.其次,本文还对如何控制Java程序输出的XML文档的格式做了展开论述. JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口.JAXP支持DOM.SAX.XSLT等标准.为了增强JAXP使用上的灵活性,开发者特别为JAXP设计了一个Pluggability Layer,在Pluggability Laye

利用JAVA技术进行XML编程(第一部分)

xml|编程 在过去几年中,XML 已经成为一种通用的数据格式.这篇经过修订的教程将向您介绍 Java 语言中处理 XML 文档最常用的编程接口. 最普通的 XML 处理工作是 解析 XML 文档.解析包括读取 XML 文档并确定其结构和内容.XML 编程的一个好处是可以使用开放源代码的.免费的 XML 解析器读取 XML 文档.本教程主要讨论创建解析器对象.要求解析器处理 XML 文件.处理解析结果.如您所料,可以使用不同的方式完成这类常见的任务:我将分析所涉及到的标准以及什么时候应该使用这种

Java中关于XML的API_JSP编程

简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了.水平有限,多多包涵. 1.JAXP(Java API for XML Parsing) 2.JAXB(Java API for XML Binding) 3.JAXM(Java API for XML Messaging) 4.JAX-RPC(Java API for XML-RPC) 1.JAXP定义了在Java中使用DOM, SAX, XSLT的通用的接口.这样在你的程序中你只要使用这些通用的接口,当你需要改变具体

Java编程中更新XML文档的常用方法_JSP编程

  本文简要的讨论了Java语言编程中更新XML文档的四种常用方法,并且分析这四种方法的优劣.其次,本文还对如何控制Java程序输出的XML文档的格式做了展开论述. JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口.JAXP支持DOM.SAX.XSLT等标准.为了增强JAXP使用上的灵活性,开发者特别为JAXP设计了一个Pluggability Layer,在Pluggability Layer的支持之

运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1677155 运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下cro

浅析Java编程中类和对象的定义_java

1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么事对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于类与对象的描述:类是对象的模版,对象是类的一个个体. 3,Java中定义类的方法? class 类名 用Java语法定义人类: public class Person { } 4,对象的定义方法? 1,对象声明:类名 对象名: 2,对象创建 对象名 =  new 类名(): new作用:分配内存空间. 也可以合写为:类名 对象名 =

在Java编程中定义方法_java

方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法.定义了该方法的访问类型. 返回值类型 :方法可能会返回值.returnValueType是方法返回值的数据类型.有些方法执行所需的操作,但没有返回值.在这种情况下,returnValueType是关键字void. 方法名:是方法的实际名称.方法名和参数表共同构成方法签名. 参数类型:参数像是一个占位符.当方法被调用时,传递值给参数.这个值被称为实参或变量.参数列表是指方法的参数类型.

Java 中的 XML:Java 文档模型的用法

xml 在本系列的第一篇文章中,我研究了一些用 Java 编写的主要的 XML 文档模型的性能.但是,在开始选择这种类型的技术时,性能只是问题的一部分.使用方便至少是同样重要的,并且它已是一个主要理由,来支持使用 Java 特定的模型,而不是与语言无关的 DOM . 为切实了解哪个模型真正的作用,您需要知道它们在可用性程度上是如何排名的.本文中,我将尝试进行这个工作,从样本代码开始,来演示如何在每个模型中编码公共类型的操作.并对结果进行总结来结束本文,而且提出了促使一种表示比另一种更容易使用的一

Java中关于XML的API惊鸿一瞥

xml 简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了.水平有限,多多包涵. 1.JAXP(Java API for XML Parsing) 2.JAXB(Java API for XML Binding) 3.JAXM(Java API for XML Messaging) 4.JAX-RPC(Java API for XML-RPC) 1.JAXP定义了在Java中使用DOM, SAX, XSLT的通用的接口.这样在你的程序中你只要使用这些通用的接口,当你需要