LINUX.ORG.RU

xml порядок следования атрибутов в теге

 , ,


0

1

Организация, принимающая файлы в формате xml, выдвинула требование об обязательном порядке следования атрибутов в теге. Наша заказная система на Java формирует список атрибутов в алфавитном порядке.
Правильно ли поступили эти ... ?

Придется переформатировать файл в своей программе.
Есть ли такие проблемы при обработке на Perl?

★★

Последнее исправление: WinLin2 (всего исправлений: 1)

Правильно ли поступили эти … ?

Глупый вопрос. Смотря кто сколько платит.

Вроде требование ничего не нарушает.

ЗЫ: радуйся. Мне один раз пришлось вставлять режим для выдачи пустых тегов

<test></test> Вместо <test/>
fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)
Ответ на: комментарий от WinLin2

вы бы еще в наскальном тиснении выбили догматы структур данных, ты реально сейчас тут хотел найти какие-то прецеденты основанные на гипотетических стандартах, чтобы потом со всем этим пойти и сказать что так делать нельзя?

anonymous
()
Ответ на: комментарий от WinLin2

я смотрю, намёков ты не понимаешь. нет такого механизма в XML, что было бы очевидно, если бы они попытались это описать в XSD схеме

hebiro8709
()
Ответ на: комментарий от hebiro8709

даже если бы и попытались, это было бы придурью шаражки, стандарт не гарантирует порядка следования атрибутов.

anonymous
()

Правильно ли поступили эти … ?

требование, как требование. это вообще умолчательно при валидации xs:sequence каком-нить, да и вообще удобно при потоковом парсинге.

Есть ли такие проблемы при обработке на Perl?

Это у вас проблемы, а это требование. любой сериализатор в xml умеет order.

vtVitus ★★★★★
()
Ответ на: комментарий от anonymous

W3C – это не ISO, а их рекомендации – это не стандарт, если уж на то пошло.

hebiro8709
()
Ответ на: комментарий от hebiro8709

Писулька выше это рекомендации, которые не могут противоречить стандартам, каким стандартам, написано во введение этой писульки. Других писулек в принципе нет, по этой причине и xsd будет таким же выкручиванием рук.

Топикстартер вообще просто работать не хочет и хнычет, пытаясь найти повод не подстраиваться под «деловых партнеров», ведь всем понятно что даже если бы он нашел свой прецедент, ему все равно бы сказали куда идти и что делать.

anonymous
()
Ответ на: комментарий от WinLin2

По факту работа и правда тупая, но что поделать, попытай счастье, ссылку я тебе дал, можешь по полочкам пояснить что порядок не регламентируется, но это можно использовать в обе стороны, и в твою и в сторону твоих «партнеров». Так что приступай, раньше начнешь - раньше сделаешь.

anonymous
()
Ответ на: комментарий от anonymous

вообще чтобы никому не было обидно, принимай xml как присылают они, а отсылай как с ним работаешь ты, тогда и тебе и им придется делать тупую работу, туше.

anonymous
()
Ответ на: комментарий от WinLin2

и для чего же используется упоминаемый выше xs:sequence – для тегов или для атрибутов?

hebiro8709
()

Требование конечно тупое, но скорее всено проблема либо в их самописной парсилке, либо в какой-то диффалке хмлок. Поговорить с ними конечно попробуй, но вероятность что они откажутся от этого весьма мала.

ya-betmen ★★★★★
()
Ответ на: комментарий от fulmar_lor

это хрестоматийная проблема написания кода склейки гетерогенных систем, его просто пошлют на хер.

anonymous
()
Ответ на: комментарий от fulmar_lor

Не может, он человек подневольный, работу надо работать. Ну и как бы никто же не предъявляет тому же гуглу например за то, что у него порядок следования аргументов или атрибутов или еще чего-либо в его открытых api не такой как кому-то бы хотелось, тут собственно такая же картина, нужно работать с тем что приходит.

anonymous
()

Организация, принимающая файлы в формате xml, выдвинула требование об обязательном порядке следования атрибутов в теге.

Подозреваю, что в этой организации xml парсят, не как xml, а как текст. А тут, блин, атрибуты в произвольном порядке…

anonymous
()

всё правильно сделали.

у них жопный парсер и потенциальное шерето. переделать его они не могут по какой-то причине, поэтому напрягись немного и запили перестановку аттрибутов regexpом.

salozar
()
Ответ на: комментарий от anonymous

Не может, он человек подневольный, работу надо работать.

Всё он может, быть безмолвным послушным рабом не обязательно.

тут собственно такая же картина, нужно работать с тем что приходит.

Как я понял, он им отправляет xml. Это им приходится работать с тем, что приходит.

fulmar_lor
()

Хз на что вы все агритесь, использование подмножества какого-то формата при интеграции с чужим ПО - обычная ситуация.
Да и вообще, кого-то удивляют странные требования? Я как-то раз писал рядом с SOAP сервисом второй сервис, выдающий дамп последнего обмена с основным. Клиент сказал делать - значит, для чего-то нужно.

izzholtik ★★★
()
Ответ на: комментарий от fulmar_lor

Всё он может, быть безмолвным послушным рабом не обязательно.

Держи в курсе, как говорится.

Как я понял, он им отправляет xml. Это им приходится работать с тем, что приходит.

кто, кому и почему - не имеет значения, с такими проблемами сталкивается любой, кто пишет код склейки двух систем через передачу сообщений, в виде структурированного или нет plain текста, от одной системе к другой.

anonymous
()
Ответ на: комментарий от izzholtik

Вот то-то и оно. Видимо у ТС не было до этого момента опыта работы в сфере интеграции систем.

anonymous
()

Они поступили вполне допустимо, бывает гораздо хуже, привыкай к энтерпрайзу.

anonymous
()
Ответ на: комментарий от anonymous

с такими проблемами сталкивается любой, кто пишет код склейки двух систем через передачу сообщений

Ну вот я сейчас как раз пишу подобный код, правда у меня json, а не xml. Никто мне почему-то не говорит отсортировать ключи в json, например.

fulmar_lor
()
Ответ на: комментарий от fulmar_lor

Никто мне почему-то не говорит отсортировать ключи в json, например.

А потом придёт клиент с парсером вида (псевдокод)

reader.ReadNext();
a = reader.value;
reader.ReadNext();
b = reader.value;
reader.ReadNext();
c = reader.value;
reader.ReadNext();
d = reader.value;

и ты будешь сортировать, потому что гладиолус. Это печально, но бывает.

anonymous
()
Ответ на: комментарий от anonymous

В слабых IoTинах, у которых тупо нет памяти на сохранение ответа сервера и стоит потоковый парсер, дёргающий по мере вычитывания JSON'a стейт машину, требования к порядку следования - обычная ситуация. ТС просто не привык к страданиям, это пройдёт.

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Разве это страдания? Вот когда требуется невалидный XML/JSON/whatever, это уже головная боль. Сам не сталкивался, но слышал.

anonymous
()
Ответ на: комментарий от anonymous

Пускай. Если же он уже в достаточной степени от моей системы зависит, то выгодней ему всё же будет переписать парсер.

fulmar_lor
()

Сталкивались с таким требованием в ЦБ, но технически это никак не было оправдано, просто при тестировании обратили внимание на то, что порядок атрибутов не соотвествует тому, что было в документации, а там очедедность указана была только для 3 атрибутов, для остальных не было сказано ничего. Пытались объяснить - не слушают. В итоге реализовали очередность для 3 атрибутов. А когда прошли интеграционное тестирование с другими системами, забили на очередность, ничего не сломалось - так и осталось.

anonymous
()
Ответ на: комментарий от izzholtik

Клиент сказал делать - значит, для чего-то нужно.

Все сильно от клиента зависит. Как правило, клиент в этом ни в зуб ногой, и просто генерит идеи глядя со своего убогого понимания. Обычно, если клиент, адекватный то можно этот момент улучшить, поняв проблему и предложив лучшее решение. В том и задача исполнителя, чтобы понять суть задачи и предложить хорошее решение.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Даже если так, чтобы сделать «красиво», зачастую нужно провернуть весь фарш в обратную сторону, начиная со своего ПМа и заканчивая фрилансером Димой, 2 года назад помогавшего замшелым 1Сникам заказчика приделать к рабочей системе «веб-сервисы». И ещё хорошо, если никакая очень важная и кривая программа это апи не использует.
Обычно оно того не стоит, ни по трудозатратам, ни по нервам.

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Согласен, если оно уже запущенно то это уже не остановить. Главное не допустить этого изначально.

urxvt ★★★★★
()

Правильно ли поступили эти … ?

Порядок параметров в url после знака вопроса не желаете-с?

anonymous
()

А какая разница? Вы их требования согласны выполнять? Если нет - пишите им, если да - зачем пишите здесь? Стандарты xml сами знаете где расписаны. Но, фиды со своими требованиями у каждого свои.

Stack77
()
Ответ на: комментарий от Stack77

Ты пишешь на перле? Нам есть что с тобой обсудить. Я хочу его изучать, поможешь?

Владимир

anonymous
()

Наша заказная система на Java формирует список атрибутов в алфавитном порядке.

В чем проблема расположить атрибуты в том порядке как требует заказчик?

anonymous
()
Ответ на: комментарий от WinLin2

За деньги вряд ли получится, сам сталкиваюсь регулярно с подобными требованиями из разряда «а вот мы так хотим»

in_dance
()
Ответ на: комментарий от WinLin2

Порядок тегов важен при описании списков

Приведи пример.

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.