
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.01.2012, 13:21:58
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Есть spring контроллер, на вход поступает xml(не как параметр, например, xml="..."), может приходить xml разных форматов. Как мне лучше всего определять какой xml пришел, лучше всего было бы сделать на уровне spring'a, чтобы по виду xml срабатывал тот или иной контроллер? может кто сталкивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 13:27:30
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
Что за контроллер? MVC? А как он туда приходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 13:31:23
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimerпо виду xml XSD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:38:19
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Насчет валидации по xsd я знаю. Насчет контроллеров, это Spring MVC, xml туда приходит по средствам @RequestBody, но мне хочется сделать прослойку на уровне Spring, чтобы в зависимости от пришедшей xml, сробатывал тот или иной метод, можно ли так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:47:42
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Поищите по HandlerAdapter в мануале. По-моему это то что вы хотите. Но вообще есть сомнения на счет того что это наиболее правильный способ. У вас так много разнообразных XML на входе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:49:17
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimer, я не спрашивал про знаю, я спрашивал: - Валидируете ли вы по XSD ваш XML? - Позволяет ли его структура такой способ валидации? А потом уже можно скрещивать бульдога с носорогом (роеализация) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:53:10
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Petro123я спрашивал: - Валидируете ли вы по XSD ваш XML? - Позволяет ли его структура такой способ валидации? А потом уже можно скрещивать бульдога с носорогом (роеализация):) и как вот по трём буквам (XSD), которые ты написал, можно понять, что ты всё это спрашивал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:53:21
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
В сторону фильтров посмотрите - реквест перехватывется фильтром, потом его тело парсится каким-нибудь XML парсером и определяется его тип, потом направялется соответствующему контроллеру. А можно просто парсить в одном контроллере, а потом перекидывать в другой. Но оба предложенных мною варианта противоречат идеологии MVC, которая говорит нам, что логика контроллеров должна быть максимально простой и едва ли выходить за границы банального вызова хелперов и диспатчинга модели в соответствующую вьюшку. Потому принципиально правильное решение выглядит примерно так: Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:57:35
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
svenom, У меня не будет view части, будет выплевываться такой же XML. Как вашим способом можно понять что тут именно нужно SomeType, а не SomeType2, к примеру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 14:58:06
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
OFF grasoff.net, ты ж сам немногословный. ПисАть бОльше должен аффтар, а не отвечающие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:01:25
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
Вам надо принципиально понять одну вещь - задача с вероятностью 99% решается 1 (одним) контроллером. Пришел запрос контроллер, вы его приняли, делегировали обработку какому-либо хелперу, хелпер вернул вам результат, вы его отдали в респонс, все. Как определить тип - это вопрос к вам, а не ко мне, я же не знаю на основании чего вы его определяете. Может на основании какого-то общего тега, может на основании корневого тега, я ж не провидец. Но как бы там ни было - к Spring и к Spring MVC это не имеет никакого отношения. Это вопрос к обработки XML - читайте про DOM, SAX, StAX, XPATH, XSLT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:06:14
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimer, SomeType - перечислимый тип = все ваши ПОДформаты XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:08:01
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Petro123ты ж сам немногословныйне так крепко как ты ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:08:26
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
Petro123SomeType - перечислимый тип = все ваши ПОДформаты XMLС точки зрения расширяемости - плохое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:16:44
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
OFF svenomPetro123SomeType - перечислимый тип = все ваши ПОДформаты XMLС точки зрения расширяемости - плохое решение. я не сомневался. У тебя хорошие кроме твоего бывают? Флеймисты - топик не мой, а автора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 15:22:56
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
Petro123я не сомневался. У тебя хорошие кроме твоего бывают?Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 19:15:42
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Все таки вопрос был про то, как мне узнать какой xml пришел, вопрос про методы, я в курсе что валидацию можно делать по xsd схеме, как еще? Нужно оптимальное решение, простотат реалицации и быстрота выполнения :) как-то так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 19:19:18
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimer, убери лишние запятые. Если я правильно понял, то валидацию ЕЩЁ можно делать руками - парся файл XML и проверяя соответствие его нодов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 19:24:25
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Извините что без запятых. Этот подход я тоже знаю :) тут Можно использовать SAX(или StAX). На мой взгляд это будет самый быстрый способ. Есть еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 19:34:30
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimer, Простота по вашему ТЗ противоречит Быстроте. Например, SAX парсеры сложнее и Непроще, но они быстрее т.к. работают потоково. Поэтому, чем больше напишите о Задаче, тем точнее диагноз. PS 3 способ - договориться с поставщиком о формате и невалидировать (сменить расширение файла) = самый простой в кавычках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 20:29:49
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimerКак мне лучше всего определять какой xml пришел, лучше всего было бы сделать на уровне spring'a, чтобы по виду xml срабатывал тот или иной контроллер? может кто сталкивался. Мы аналогичную проблему решили посадив разные XML-ки на разные URL'ы. Т.е. я всегда четко знаю, что по адресу /action1 приходит XML-ка для action1. Это, конечно, если ТЗ позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 20:36:14
|
|||
|---|---|---|---|
|
|||
Узнать какой xml пришел. |
|||
|
#18+
Leonidv, Вы правы, но заказчик не хочет разные URL'ы... вопроса бы не было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 22:04:32
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
maksaimerLeonidv, Вы правы, но заказчик не хочет разные URL'ы... вопроса бы не было :)а если в корень всех XML внедрить элемент описывающий какой "тип" пришел? вычитали тип - закинули в обработчик. обработчик проверяет по XSD и отрабатывает запрос. можно, конечно, проверять по XSD, но тогда потребуется весь документ валидировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.01.2012, 22:18:59
|
|||
|---|---|---|---|
Узнать какой xml пришел. |
|||
|
#18+
VoDA, ну это то же что и расширение \ Url сменить. Хотя более скрыто от грозного начальника. Можно валидатор-подписатор на его слое при отправке запустить. Опять - на поклон к заказчику :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2132908]: |
0ms |
get settings: |
14ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
47ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
75ms |
get tp. blocked users: |
3ms |
| others: | 401ms |
| total: | 593ms |

| 0 / 0 |
