Webservice输出多种格式

时间:2011-08-01 20:50:01

标签: java xml web-services rest xsd

首先,让我从一些背景开始: 我有一个Web服务,它接受XML作为输入和XML输出。输出有两种不同的可能模式(还有两种模式)。每个请求都有一个组列表,可以从中轮询数据。轮询数据库,然后从每个组生成正确格式的XML;这些组被编译在一起并输出XML。

基本上,每组数据都有一个类,用于处理轮询数据库并输出XML模式输出。

由于多种输出格式,代码本身非常臃肿且难以维护。所以我正在寻找一种设计模式,以便更容易添加新的输出格式。我探讨了使用XSLT在格式之间进行转换的选项,但它们之间存在显着差异,因此我认为这个选项不可行。

tl; dr:基于来自单个数据库的数据,宁静的XML Web服务以不同格式生成XML的有效设计模式是什么?

如果我能提供更多信息,请告诉我!

2 个答案:

答案 0 :(得分:1)

基本上,每个数据组都有一个类,用于处理轮询数据库并输出XML模式输出。 - >可以将这个类分解为只进行数据轮询并将输出作为java bean或其他东西返回吗?如果是,我会改变这个类来处理数据检索。 创建一个控制器来决定输出格式。使用此控制器周围的命令模式,以便将来可以轻松添加更多输出格式。 为XML输出部分创建不同的组件。使用Factory模式并将输出格式的标识符传递给此模式。如果输出格式非常复杂,请考虑使用JAXB。否则,重用已存在的类中存在的任何代码。

如果有帮助,请告诉我。

答案 1 :(得分:0)

如果您的格式包含相同的数据,则应使用XSLT在它们之间进行转换;但是,如果输出数据集是如此不同以至于您无法使用XSLT,那么您的结果数据就不同了,您需要使用不同的端点来获取数据,这意味着不同的代码路径。