Как сделать ответный xml файл от еис который должен содержать атрибут confirm

Добавил пользователь Евгений Кузнецов
Обновлено: 05.10.2024

Перед тем, как работать в ЕИС, необходимо убедиться, что системные требования вашего устройства соответствуют следующим техническим характеристикам:

  • браузер Microsoft Internet Explorer версии 8 или выше, Mozilla Firefox (версии 10—39), Google Chrome (версии 17.0.963—44.0.2403), Opera (версии 12—29), Яндекс-браузер (версии 13.10—15.7);
  • версия операционной системы Windows XP Service Pack 3 (SP3) и выше;
  • наличие свободного места на диске более 500 МБ;
  • наличие оперативной памяти более 1 ГБ;
  • открытое сетевое разрешение для IP-адреса 85.143.127.170;
  • на ПК доступны порты 9820,9822,9823;
  • доступен флеш-накопитель с сертификатом, выданным аккредитованным удостоверяющим центром;
  • установлен корневой сертификат удостоверяющего центра, которым выдана электронная цифровая подпись;
  • установлен пользовательский сертификат;
  • открыто разрешение в антивирусах, фаерволах и прочих системах защиты на использование дополнительных надстроек.

Проблема: ЕИС не работает

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

Ошибки в ЕИС: самые распространённые проблемы и их решение

Самые частые причины нарушения в этой сфере:

Самая первая ошибка, с которой может столкнуться пользователь — вход в Единую информационную систему.

Далее будут рассмотрены проблемы, причинами которых являются проблемы с ПК пользователей.

Разметка XML документа. XML атрибуты. Корень XML документа. Декларации в XML. Комментарии в XML. Синтаксис XML документа

Синтаксис XML документа, как декларировать XML документ, из чего состоит XML документ. Инструкции XML документа.

В первой статье, я как смог, так и объяснил, что такое синтаксис вообще и в XML документе в частности. Теперь предлагаю более подробно остановиться на данном вопросе, а так же рассмотреть, что такое декларация в XML и как декларировать XML документ. Синтаксис в XML на самом деле очень сложный, шаг влево, шаг в право и XML парсер вас уже не поймет.

Для начала, давайте рассмотри из чего состоит XML документ и соответственно рассмотрим синтаксис XML документа.

Пример XML документа:

Любой XML документ начинается с пролога или декларации. Что такое пролог в XML документе или иначе декларация XML документа — это начало XML документа, в примере это первая строка, как правило показывается, что это XML документ и указывается версия XML, а так же кодировка XML документа( ), на данный момент уже есть XML версии 1.1.

Обратите внимание на конструкцию пролога, так как в XML все очень жестко и структурировано, а именно на начало декларации( Пример процессинговых инструкций в XML документе:

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

Если скопировать данный пример в текстовый редактор(например, в редактор с подсветкой синтаксиса Notepad++), а затем открыть XML документ в браузере, то ничего не произойдет, так как браузер не поймет данную инструкцию, но если вы напишите программу, которая будет знать эту инструкцию, то после работы с данными находящимися в XML документе она отформатирует диск D. И так, можно сделать вывод, что в XML прологом документа называют все, что предшествует самим данным, то есть декларация XML документа и инструкции по обработке XML документа.

XML комментарии, как правильно писать комментарии в XML документе.

Комментарии, ну наверное вы знаете для чего они нужны, если говорить научным языком, комментарии — это не анализируемая часть текста. На самом деле, в XML комментарии имеют большее значение, они могут иметь смысл, как и XML теги и реально анализироваться программой. Комментарии в XML документе — это еще одна разновидность XML конструкций.

Естественно, чаще всего используются для того, что бы оставлять для себя и кого-то другого какие-то пометки и указания по самому XML документу. Синтаксис комментариев в XML, такой же как и в HTML комментариях, начинается комментарий с конструкции

style = "text-align: justify;" >

Блок кода, находящийся между , этими символами обрабатываться никак не будет. Таким образом вы можете отключать часть разметки XML документа, если вдруг возникнет необходимость посмотреть, что произойдет, но необходимости удалять код нет.

XML теги и XML элементы, правила написания XML тегов.

Из прошлой статьи, мы выяснили, что теги в XML только парные, то есть существует открывающий тег и обязательный ему закрывающий тег, XML теги регистрочувствительны, не важно в каком регистре вы пишите свой тег, важно, что если вы создали элемент people с открывающим тегом

, то закрывающий тег нужно будет писать в том же регистре

В название XML элементов не может быть пробелов, то есть вы не имеете права написать такой тег , пробелов в названиях быть не должно. Вместо пробелов можно использовать, дефисы, нижние подчеркивания, точки( ), все эти теги имеют право на существование, но пробелов в название XML тегов быть не должно!

Имя каждого XML элемента всегда должно начинаться с буквы, никаких цифр, минусов, запятых первым символом в название не может быть. Кстати буквы в название XML тега могут быть любыми, хоть русские, хоть китайские, любые. Например, если вы напишите тег или , обработчик XML вас прекрасно поймет, главное регистр соблюдайте.

По определению в XML не может быть одиночных тегов, любой тег должен быть закрыт. Одиночных тегов в XML нет в принципе, но бывает необходимость, когда по грамматике тег не будет иметь содержимое, то есть пустой элемент. То есть, иногда существует необходимость в XML элементах, в которых по смыслу никогда не будет содержимого, в таких случаях писать такие конструкции нет смысла( ).

Поэтому было придумано сокращение тегов в XML( ), обратите внимание, что это не одиночный тег, а просто сокращение записи( ) . , такая конструкция в XML называется самозакрывающийся тег, обратите внимание, что слэш стоит справа от названия тега и пробел между название тега и слэшом обязателен. То есть, записи и — это одно и то же, а когда анализатор встроенный в браузер их обработает, он покажет одно и то же, обычно вот так: .

XML атрибуты, как правильно писать XML атрибуты

Обратите внимание на самый первый пример, у тегов и имеются атрибуты, id и cm, в первом случае параметром является число-идентификатор, во втором случае единицы измерения роста — сантиметры. Все XML атрибуты вы придумываете самостоятельно(в отличие от HTML атрибутов), семантику и грамматику для XML атрибутов вы придумываете то же самостоятельно, то есть задаете для этих XML атрибутов смысл и правила.

Параметром или значением XML атрибута, может быть все, что угодно, все на что хватит вашей фантазии. А вот синтаксис у XML атрибутов строгий, значение атрибутов всегда должны быть в двойных кавычках, но некоторые парсеры XML допускают вольности и ставить одинарные кавычки, но лучше к данному подходу не привыкать. Как и в случае с XML тегами, XML атрибутов может быть бесконечно много.

Единицы измерения XML. Корневой XML элемент или корень XML документа.

В XML существует очень важное правило, минимальной единицей измерения является документ, один XML элемент это документ, и этот XML элемент является минимальной единицей измерения — всегда! Как это можно понять? XML документ всегда состоит из одного тега или элемента, по буржуйски этот тег называется root или корень XML документа, это означает, что у любого документа должен быть всегда один элемент(один тег), внутри него может быть все, что угодно, но один XML элемент в XML документе должен быть всегда.

В первом нашем примере корневым элементом является, элемент

, внутри него можно размещать все, что угодно, делать какие угодно ветвления и вложения, но создавать элемент уровня

Пример того как можно составлять XML документ:

В данном примере, элементы woman и man лежат внутри корневого XML элемента people, поэтому здесь ничего не нарушено и XML документ составлен правильно.

Пример того как нельзя составлять XML документ:

Так же не может быть XML документов состоящих только из пролога, в XML документе должен быть хотя бы один XML элемент.

Так писать XML документы нельзя:

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

Пример пустого XML документа:

Данный документ пустой и содержит один элемент(tag), то есть корень XML документа, поэтому он удовлетворяет XML стандарту. XML документ это всегда один главный тег, то есть все прологи, процесинговые инструкции, это все не так важно, XML документ — это один тег.

Типы данных в XML. CDATA и PCDATA.

Как я уже говорил, XML работает только с данными, в чистом XML данные одни — текст. XML документ состоит из элементов, внутри которых расположены текстовые данные. Любые данные находящиеся внутри XML документа рассматриваются как PCDATA (Parsed Character Data), это означает, что XML анализатор будет рассматривать данные, как парсируемые, анализируемые текстовые данные, то есть XML парсер анализирует не только теги и атрибуты, но и то что находится внутри них.

В связи с этим, в XML ввели еще один тип данных CDATA, которые анализатор XML вообще не трогает никак, грубо говоря мы ему указываем, что от этого места до этого просто текст, с которым ничего делать не надо.Что бы указать XML анализатору, что данные являются CDATA, надо сделать декларацию( )

Все, что размещено в этой конструкции( ), анализатор будет считать обычным текстом и не будет обращать на него внимание. Правильно эта конструкция называется секция CDATA, то есть раздел непарсируемых данных.

Пролог в XML документе. Кодировка XML документа. Русские XML теги. Кодировка Unicode.

Как я уже говорил, в XML документе есть пролог, в котором указывается язык XML, его версия и кодировка XML документа, но писать пролог не обязательно и все будет прекрасно работать, до тех пор пока вы не напишите хотя бы одну букву не входящую в латинский алфавит.

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

Причем, после того, как вы укажете кодировку, символы из этой кодировки вы можете использовать любые и в любом месте XML документа, в название тегов, атрибутов, значений атрибутов, сами данные и так далее. Кодировку для XML документа, я бы посоветовал использовать UTF-8. Сейчас объясню почему.

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

Unicode, на самом деле один, но у него есть множество способов кодирования. UTF — это способ кодирования файлов. И вот этих UTF много, порядка 10 штук, можете поискать(UTF-7, UTF-8, UTF-16, UTF-32), цифра показывает минимальное число бит на один символ.

И так, нам необходимо указывать кодировку своих документов, причем указывать и для редактора и для анализатора, хорошо, если вы используете какой-нибудь Notepad++, где вы явно указываете кодировку и нет никаких проблем, а если вы используете обычный блокнот windows.

Предлагаю попробовать создать пустой документ, с расширением txt в обычном блокноте. И затем его сохранить. Размер этого документа будет ноль байт.

А теперь попробуйте пересохранить этот же пустой документ, но уже в кодировки Unicode, я выберу способ кодирования UTF-8, а теперь посмотрите, какой размер будет у пустого файла в кодировки UTF-8. Документ в кодировки UTF-8 будет весить 3 байта, но откуда взялись эти 3 байта, в документе по прежнему ничего нет, он пустой.

Так вот, блокноту нужно как-то подсказывать, какая кодировка используется, для этих целей в Unicode придумали Byte Order Mark, или сокращенно BOM, это метка порядка чередования байтов. Идея разработчиков Unicode очень проста. Поскольку в Unicode миллиарды различных символов, включая полную типографику, в которой только с десяток символов пробелов(узкий пробел, широкий пробел, неразрывный пробел, широкий пробел с переносом, неразрывный пробел и так далее). Среди множества этих пробелов есть один хитрый пробел, который называется неразрывный непечатный пробел, он применяется для разделение частей многосложных слов, его невидно, но он есть, как суслик, ты его не видишь, а он есть.

И не менее хитрые разработчики Unicode придумали такую штуку, если файл начинается с неразрывного непечатного пробела, программа поймет, во-первых, что вы используете Unicode, а во-вторых, способ кодирования. Неразрывный непечатный пробел и есть BOM, метка, которая показывает какую кодировку вы используете, а при способе кодирования UTF-8 неразрывный непечатный пробел кодируется тремя байтами, поэтому наш пустой документ имеет размер три байта.

Так вот, если этот BOM есть, любая виндовая программа определит, что документ закодирован в Unicode. Некоторые Unix интерпретаторы косячат, когда видят BOM, поэтому старайтесь кодировать все свои документы(не только XML) без BOM.

Для нас же(людей использующих русский язык) наличие BOM в начале XML документа означает, что мы можем использовать любые символы в документе явно не указывая кодировку. То есть парсер поймет какая кодировка у XML документу по наличию BOM, это единственное исключения, когда можно не писать для русского языка кодировку, но лучше не надейтесь на BOM и всегда указывайте кодировку.

XML подведение итогов. Well-formed document или хорошо сформированный XML документ.

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

Так же мы поговорили про анализатор XML, который прежде чем, что-то делать с документом проверяет его и в случае малейшей ошибки должен отказаться от работы с XML документом. Well-formed document — это первый уровень правильности написания XML документа, грубо говоря — это соблюдение всех синтаксических правил.

Любой XML документ считается синтаксически правильно сформированным, если выполняются следующие синтаксические правила в XML документе:

  1. Документ XML соответствует своей кодировке и кодировка указанна внутри XML документ.
  2. XML документ имеет только один корневой элемент.
  3. Все элементы внутри корня XML документа корректно закрыты и вложены.
  4. Правильно соблюден регистр имен элементов и деклараций
  5. Значение XML атрибутов заключены в двойные кавычки.
  6. Внутри одного тега нет повторяющегося атрибута, один и тот же атрибут два раза в одном теге находиться не могут

Если все эти правила соблюдены в XML документе, то первый уровень проверки XML документа пройден — анализатор может его легко обработать, документ считается правильным или валидным. Собственно это и есть весь XML, кроме одной весчи, о которой мы поговорим в следующих статьях

XML ( англ. eXtensible Markup Language) — расширяемый язык разметки, предназначенный для хранения и передачи данных.

Простейший XML-документ выглядит следующим образом:

Первая строка — это XML декларация. Здесь определяется версия XML (1.0) и кодировка файла. На следующей строке описывается корневой элемент документа (открывающий тег). Следующие 4 строки описывают дочерние элементы корневого элемента ( title , author , year , price ). Последняя строка определяет конец корневого элемента (закрывающий тег).

Документ XML состоит из элементов (elements). Элемент начинается открывающим тегом (start-tag) в угловых скобках, затем идет содержимое (content) элемента, после него записывается закрывающий тег (end-teg) в угловых скобках.

Элементы могут содержать атрибуты, так, например, открывающий тег lang="en"> имеет атрибут lang , который принимает значение en . Значения атрибутов заключаются в кавычки (двойные или ординарные).

Некоторые элементы, не содержащие значений, допустимо записывать без закрывающего тега. В таком случае символ / ставится в конце открывающего тега:

Структура XML¶

Все элементы в XML документе формируют иерархическое дерево. Это дерево начинается с корневого элемента и разветвляется на более низкие уровни элементов.

Все элементы могут иметь подэлементы (дочерние элементы):

Правила синтаксиса (Валидность)¶

Структура XML документа должна соответствовать определенным правилам. XML документ отвечающий этим правилам называется валидным (англ. Valid — правильный) или синтаксически верным. Соответственно, если документ не отвечает правилам, он является невалидным .

Основные правила синтаксиса XML:

  1. Теги XML регистрозависимы — теги XML являются регистрозависимыми. Так, тег не то же самое, что тег .

Открывающий и закрывающий теги должны определяться в одном регистре:

  1. XML элементы должны соблюдать корректную вложенность:
  1. У XML документа должен быть корневой элемент — XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.
  1. Значения XML атрибутов должны заключаться в кавычки:

Сущности¶

Некоторые символы в XML имеют особые значения и являются служебными. Если вы поместите, например, символ внутри XML элемента, то будет сгенерирована ошибка, так как парсер интерпретирует его, как начало нового элемента.

В примере ниже будет сгенерирована ошибка, так как в значении "ООО " атрибута НаимОрг содержатся символы и > .

Также ошибка будет сгенерирована и в слудющем примере, если название организации взять в обычные кавычки (английские двойные):

Чтобы ошибки не возникали, нужно заменить символ на его сущность. В XML существует 5 предопределенных сущностей:

Таблица I.1 — Сущности ¶
Сущность Символ Значение
< меньше, чем
> > больше, чем
& & амперсанд
' ' апостроф
" " кавычки

Только символы и & строго запрещены в XML. Символ > допустим, но лучше его всегда заменять на сущность.

Таким образом, корректными будут следующие формы записей:

Поиск информации в XML файлах (XPath)¶

XPath ( англ. XML Path Language) — язык запросов к элементам XML-документа. XPath расширяет возможности работы с XML.

XPath запрос /bookstore/book/price вернет следующий результат:

Сокращенная форма этого запроса выглядит так: //price .

С помощью XPath запросов можно искать информацию по атрибутам. Например, можно найти информацию о книге на итальянском языке: //title[@lang="it"] вернет lang="it">Everyday Italian .

Чтобы получить больше информации, необходимо модифицировать запрос //book[title[@lang="it"]] вернет:

В приведенной ниже таблице представлены некоторые выражения XPath и результат их работы:

Таблица I.2 — Выражения XPath ¶
Выражение XPath Результат
/bookstore/book[1] Выбирает первый элемент book , который является потомком элемента bookstore
/bookstore/book[position() Выбирает первые два элемента book , которые являются потомками элемента bookstore
//title[@lang] Выбирает все элементы title с атрибутом lang
//title[@lang=’en’] Выбирает все элементы title с атрибутом lang , который имеет значение en
/bookstore/book[price>35.00] Выбирает все элементы book , которые являются потомками элемента bookstore и которые содержать элемент price со значением больше 35.00
/bookstore/book[price>35.00]/title Выбирает все элементы title элементов book элементов bookstore , которые содержать элемент price со значением больше 35.00

Кодировки¶

И еще один важный момент, который стоит рассмотреть — кодировки. Существует множество кодировок, о них подробнее можно прочитать в статье Набор символов.

Самыми распространенными кириллическими кодировками являются Windows-1251 и UTF-8 . Последняя является одним из стандартов, но большая часть ФНС отчетности имеет кодировку Windows-1251 .

В XML файле кодировка объявляется в декларации:

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

В большинстве случаев при работе с русскоязычными файлами помогает переключение кодировки на Windows-1251 или UTF-8 . Если все равно не удается прочитать содержимое XML документа, стоит открыть его в Mozilla Firefox, он отлично распознает кодировки.

Если ничего не помогает, вполне возможно, что файл был поврежден.

XSD схема¶

XML Schema — язык описания структуры XML-документа, его также называют XSD. Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.

После проверки документа на соответствие XML Schema читающая программа может создать модель данных документа, которая включает:

  • словарь (названия элементов и атрибутов);
  • модель содержания (отношения между элементами и атрибутами и их структура);
  • типы данных.

Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

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

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


а что по этому поводу говорит XSD?


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

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

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

fornlr ★★★★★ ( 17.12.20 09:50:11 )
Последнее исправление: fornlr 17.12.20 09:54:56 (всего исправлений: 3)

xsd нет, есть doc-файл, в котором описаны теги/атрибуты с комментариями структуры и вводимых данных.

WinLin2 ★ ( 17.12.20 09:51:58 )
Последнее исправление: WinLin2 17.12.20 09:55:05 (всего исправлений: 2)

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


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

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

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

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

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


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


сейчас бы путать теги с атрибутами

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

Их не спутаешь. Порядок тегов важен при описании списков.

При правильной аргументации можно не делать тупую работу.

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


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


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


Это бред, я бы не делал. Не боись, скажи им, что у аттрибутов в xml нету порядка.

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


Ну а он их пошлёт. Если им так нужен порядок, то пусть сами его и меняют.

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

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


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


Нет, я ему скажу, что его парсер надо переписать.

Ничего страшного, клиент найдёт более клиентоориентированного поставщика 👍

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


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

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


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

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



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

Читайте также: