2011-09-24 4 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-сообщения должно содержать только одного ребенка. Если вы поместите строки непосредственно в свое сообщение (без родительской обертки), вы нарушите это правило и потеряете интероперабельность. Глубоко внутри сообщения это не имеет значения, но в этот момент вы потеряете номер один: читаемость. –

+0

@strauberry: вот отправная точка для лучших практик при использовании веб-сервисов: http://en.wikipedia.org/wiki/Web_Services_Interoperability –

Смежные вопросы