2011-09-24 93 views
0

我正在开发一个带有返回数据库结果的函数的WebService,这意味着一个MxN数组。我的问题是,什么是更好的方式在WSDL定义是:在wsdl中定义多维数组的最佳实践

  1. 定义行作为(字符串)列的顺序,确定结果集为行的序列,把这个结果集为一个消息
  2. 定义行作为(字符串)列的序列,把这样的行的顺序插入到消息中直接

因此,它是更好/清洁剂/更好于行包装成一个自己的数据类型,并把这个一个到响应消息或保留自己的数据类型并将行序列直接放入消息中?

谢谢!

回答

2

对于行定义一个元素,该元素具有与结果列相同的子元素。

<row> 
    <field1>...</field1> 
    <field2>...</field2> 
    ... 
    <fieldN>...</fieldN> 
</row> 

然后您返回一个包装的行元素列表。

<rows> 
    <row> 
     ... 
    </row> 
    <row> 
     ... 
    </row> 
    ... 
    <row> 
     ... 
    </row> 
</rows> 

(我使用row/rows这里为简便起见,您可以命名任何你想要的元素,通常反映了什么行的数据代表的名称)。

+0

好吧之后,我把行放入我的消息?将行元素放入我的消息中并不是很好的风格?它保存了一个Java对象,这就是我要求的原因;-) – strauberry

+0

@strauberry:我明白你在说什么。为什么有一个包装,当我可以直接写元素?是对的吗?那么...... **第一件事情**,您将XML更容易读取,因为行被分组在父母之下,**第二**,但更重要的是您获得了互操作性。为了符合WS-I标准,SOAP消息的soap:body必须只有一个孩子。如果将行直接放入消息中(无父包装器),则违反了此规则和松散的互操作性。在消息内部更深层次,它并不重要,但在这一点上,你松了头号:可读性。 – 2011-09-24 19:05:36

+0

@strauberry:这是使用Web服务时的最佳实践的起点:http://en.wikipedia.org/wiki/Web_Services_Interoperability – 2011-09-24 19:09:09