Файл xml имеет неправильный формат
В данной статье речь пойдёт о причинах возникновения фатальной ошибки «Ошибка разбора XML» и способах устранения данной неполадки. Также будет дана инструкция не по устранению, но «обходу» ошибки, то есть действиям на опережение.
XML (с английского – extensible markup language – расширяемый язык разметки) – это язык разметки, который рекомендует Консорциум Всемирной паутины. Обычно язык разметки XML служит для описания документации, соответствующего типа, а также описывает действия соответствующих процессоров. Расширяемый язык разметки имеет довольно простой синтаксис, поэтому используется по всему миру, чтобы создавать и обрабатывать документацию программным способом. Он создавался именно для использования в Интернете. XML назвали именно расширяемым языком разметки, так как в нём нет фиксации разметки, которая содержится внутри документа, а именно: программист может создавать любую разметку, а ограничения будут встречаться лишь в синтаксисе.
2. Устранение Ошибки разбора XML в 1С
«Ошибка разбора XML» возникает исключительно в тонком клиенте 1С. Также стоит отметить, что «Ошибка разбора XML» также довольна схожа с ошибкой по формату потока, которая возникает в толстом клиенте. Обычно в 1С «Ошибка разбора XML» возникает по причине наличия кэша метаданных. И если очистить кэш, то ошибка будет устранена. Выглядит окно с ошибкой, а также окно с комментариями от технической поддержки следующим образом:
Рис. 1 Окно Ошибки разбора XML в 1С
XML данные читаются по потокам, так что в каждый из моментов времени объект «сосредоточен» в некотором узле XML. Из-за этого также может возникать фатальная ошибка «Ошибка разбора XML». Для того чтобы её устранить, можно вызвать функцию «ИсключениеЧтенияXml», как показано на скриншоте примера ниже:
Рис. 2 Вызов функции ИсключениеЧтенияXML для устранения Ошибки разбора XML в 1С
3. «Обход» Ошибки разбора XML в 1С
Данные два способа (очистка кэша метаданных и функция «ИсключениеЧтенияXml») – не все возможные варианты устранения ошибки разбора XML. Далее рассмотрим нестандартный подход, который позволит избежать ошибки еще до её возникновения.
Для наглядности будем работать в конфигурации 1С:Бухгалтерия предприятия, одной из наиболее распространенных программ фирмы 1С. У многих людей, которые пользуются программой 1С:Отчётность появляются неполадки при попытках открыть данные/файлы от налоговой. Чтобы открыть такой файл повторяем следующие действия:
· Переходим по пути: «Настройки 1С:Отчётности → Журнал обмена с контролирующими органами», как показано на скриншоте ниже:
Рис. 3 Настройка 1С Отчетности
· Далее кликаем на «Запросы» и выделяем ту выписку, которую не было возможности открыть из-за ошибки, как продемонстрировано на скриншоте ниже:
Рис. 4 Выбор выписки с Ошибкой разбора XML в 1С
Рис. 5 Стадия отправки документа с Ошибкой разбора XML в 1С
Операционные системы содержат множество файлов и каждый из них прописывается под особым расширением. XML-формат используется для разметки. То есть, файлы с таким расширением показывают компьютеру, как должны располагаться таблицы для разметки чего-либо. Сами таблицы широко используются для верстки веб-сайтов. Это их основа, которая позволяет правильно располагать каждый элемент на странице, чтобы человеку можно было увидеть ресурс так, как задумал разработчик.
Применение XML формата файлов
Разметка документов используется не только в верстке сайтов. Стандартные цифровые файлы также имеют этот формат позиционирования данных. Он применяется даже в конструировании и конфигурации различных государственных бумаг и разрешений. Сам формат является почти полноценным языком, который можно выучить за несколько занятий.
Среди важных документов, XML используют в следующих:
Исходя из всего вышесказанного можно понять, что хоть это разрешение и является одним из самых старых и успешно интегрированных в ОС, оно до сих пор используется и является незаменимым в некоторых аспектах.
Каким приложением открыть файл XML в читаемом виде на компьютере
Универсальное расширение должно открываться быстро и множеством программ, что и присуще XML. Есть специализированный софт, который можно скачать бесплатно, а есть и встроенные программы в операционной системе, которые также помогут просмотреть и отредактировать XML-документ.
Excel
Эксель входит в стандартный пакет «Офиса» от Майкрософт. Он предназначен для работы с таблицами, а XML и есть таблица разметки. Любой файл с таким разрешением всегда можно открыть в Excel любой версии.
Notepad++
Это усовершенствованный «блокнот» для кодинга и программирования, и он также умеет работать с форматом XML. Если файл требуется открыть именно в этом редакторе, то в самой программе требуется нажать «Открыть» и выбрать файл отдельно.
Блокнот
Стандартный редактор также может вполне успешно редактировать и читать XML- данные. Причем, сам «Блокнот» является неотъемлемой частью любой операционной системы от Майкрософт. То есть, он бесплатен, не требует скачивания, всегда под рукой.
XMLPad
Oxygen XML Editor
Это платная программа, которая является кроссплатформенным редактором. Работаем с файлами XML и XSLT. Позволяет оптимизировать некоторые приемы в работе с разметкой путем макросов и уже интегрированных функций.
XML Marker
Бесплатный редактор, который является альтернативой вышеописанной программе, но написанный на другом языке программирования. По факту, функционал не многим отличается от XMLPad, но при этом софт более стабильно работает на современных ОС.
Эта программа платная, причем стоит дорого. Но, если она есть на офисном компьютере, то и с помощью нее можно редактировать XML-данные в файлах. Причем сама 1С заточена именно под работу с такими таблицами, так как в ней практически все данные используют этот язык.
В браузере
XML можно открыть в двух браузерах, которые всем давно и хорошо знакомы:
Чем открыть XML файл на Mac
В операционной системе от Эпл файлы XML также можно открыть с помощью известного браузера Safari. В него нужно зайти, выбрать кнопку «Открыть файл» и выбрать таблицу в отдельной папке.
Как открыть XML файл на Linux
Онлайн-сервисы для просмотра XML файлов в человекочитаемом виде
Иногда установить программу на компьютер не представляется возможным, тогда, для чтения и проверки XML-данных можно воспользоваться интернетом и несколькими сервисами.
Xml Grid
TutorialsPoint
Важно.
Сервис поможет открыть не только XML-файлы, но и другие данные табличных значений.
XML EDITOR
Codebeautify
XMLViewer
Чем открыть файл XML на телефоне
Иногда XML требуется просмотреть на телефоне, например, в поездке на работу или на отдыхе. Это особенно актуально среди верстальщиков и веб-инженеров. Сделать это можно с помощью разного ПО на разных ОС.
На айфоне
Для айфона есть специальная программа под названием Pages. Ее нужно скачать, установить и зайти в интерфейс. Далее нужно нажать вкладку «документы» и выбрать файл XML.
На андроиде
Под эту операционную систему есть отличная программа XML Редактор. Она бесплатная и мало весит, потому скачать ее можно достаточно быстро. Поможет открыть любой табличным файл, и не только просмотреть его, но и отредактировать.
Как открыть XML файлы в PDF
Как открыть файл XML и SIG
Как открыть файл xml.p7m
Действия, если не удается открыть XML файл
Если файл не удалось открыть какими-либо из вышеописанных способов, есть большая вероятность, что он поврежден. В этом случае лучше всего запросить дубликат, или попробовать загрузить его снова по тому адресу, откуда он был скачен. Также, желательно проверить файл на вирусы антивирусной программой. Нежелательное ПО с легкостью маскируется под табличные данные для проникновения в код операционной системы.
В данной главе приведены некоторые практические приемы работы с XML-файлами.
Исправление невалидных XML-файлов¶
Если по каким-то причинам между тегами оказывается символ < или лбой другой управляющий символ (подробнее смотрите Таблица I.1 — Сущности ), то при синтаксическом анализе XML-файла возникнет ошибка «Невалидный XML».
Исправляется данная проблема просто — данные символы необходимо заменить на их сущности (подробнее смотрите раздел Сущности ). Сделать это можно, воспользовавшись любым нормальным текстовым редактором с функцией поиска и замены с использованием регулярных выражений.
Также можно воспользоваться скриптом xml_healer.py , который автоматически заменяет управляющие символы на их сущности и удаляет лишние символы после закрывающего родительского тега. Подробная инструкция по работе со скриптом приведена в главе IV. Скрипт для замены служебных символов в XML .
Удаление лишних блоков(абзацев) из XML по заданному условию¶
Теги в структуре XML образуют многострочные блоки. Иногда возникает необходимость удалить ряд целых блоков по заданному условию. В качестве примера будет рассмотрена ситуация с отчетом по НДС .
Из-за несовершенства некоторых программ, периодически возникают проблемы при передаче файлов в контролирующие органы.
Суть проблемы¶
Отрывок книги продаж выглядит следующим образом:
А нижеприведенный блок в Книге продаж необязателен:
Если есть сделки с иностранными контрагентами, у которых нет ИНН/КПП, следовательно, сведения о покупателе не заполняются. Но из-за логической ошибки в программе бухгалтерского учета, выгрузка сформированного отчета была невозможна, так как программа ошибочно требовала указать ИНН/КПП для всех контрагентов.
Чтобы обойти эту ошибку пришлось вместо ИНН указать регистрационный номер контрагента в стране регистрации, а вместо КПП указать девять нулей.
Но при попытке отравить выгруженный отчет в контролирующий орган, возникала обратная ошибка. Так как ИНН и КПП были фиктивными, то при проверке отчета не выполнялись контрольные соотношения.
Проверка файла отчета программой Tester
ИНН и КПП это не произвольный набор чисел, они содержат определенные контрольные соотношения.
Решение проблемы¶
Так как файл содержал свыше 15000 строк и большое количество сделок, надо было автоматизировать данный процесс.
Надо было удалить порядка 700 строк, полностью содержащих блоки (причем с разными псевдо-ИНН):
Большинство программ умеет искать и заменять максимум одну строку на другую. В данном случае надо было искать и заменять блок текста из трех строк.
С этим успешно справилась программа UVFilesCorrector. Интерфейс программы прост до невозможности. В нижней части на вкладке Файлы выбираем нужный нам файл.
В верхнем поле Список замен необходимо нажать на пустое поле и создаем правило для замены. В данном случае оно выглядело так:
На скриншоте видно не все выражение, в поле Что найти: в режиме Шаблон (регулярное выражение) введено:
Десять точек в ИННЮЛ=". " являются регулярным выражением и означают, что на их месте может стоять любой символ. В итоге получилось, что под замену попадали все блоки, имеющие нулевые КПП. Комбинация символов \r\n также является регулярным выражением и означает перенос строки.
Всего у организации было 14 контрагентов, с которыми в общей сумме было заключено 266 сделок. Следовательно, после нажатия на кнопку Заменить получилось 266 замены.
Буквально за один простой шаг по заданному условию было удалено свыше 700 строк. Проверка Tester’ом ошибок не выявила и файл был успешно отправлен в контролирующий орган.
Работа с файлами отчетов Росстата¶
Файлы отчетов Росстата формируются в одну строку, что создает определенные сложности при просмотре в обычных тектовых редакторах.
В отличии, например, от файлов отчетов ФНС.
С файлами Росстата лучше работать с помощью программы XMLPad.
XMLPad имеет несколько режимов отображения:
- Стандартный режим (Source) отображения и редактирования кода.
В левой панели отображается структура XML-файла. Значения элементов можно отреактировать напрямую, либо через левую нижнюю панель.
Вы приводили в порядок свой компьютер, когда нашли файл, который никогда не видели раньше. Вы пытались открыть его из любопытства, но не нашли способа сделать это. Возможно, вы не установили нужную программу или пропустили несколько шагов. В любом случае, не беспокойтесь: если вы читаете это руководство, значит помощь близка. Если это файл с расширением .xml, тогда нет ни малейшей проблемы: я объясню, как его открыть, но сначала позвольте мне кратко объяснить, с каким типом документа вы имеете дело.
В отличие от файла HTML, который является структурным документом с предопределенными тегами, XML является документом, который действует как контейнер для хранения данных, которые могут использоваться другим программным обеспечением. XML-файлы легко открываются: просто используйте соответствующую программу. Также этот тип файлов можно открыть с помощью онлайн-сервисов и приложений для мобильных устройств Android / iOS.
Как открыть .xml файлы в Windows
Чтобы открыть файл XML в Windows, вам не нужно загружать сложное дополнительное программное обеспечение, поскольку на вашем компьютере уже установлены некоторые базовые программы, которые позволяют просматривать xml за несколько кликов.
Открыть xml в блокноте или WordPad
Простой блокнот Windows способен мгновенно открывать файлы XML. Как это сделать? Просто щелкните правой кнопкой мыши по рассматриваемому файлу и в контекстном меню, которое будет показано, выберите пункты Открыть с помощью → Блокнот. И, вуаля! Перед Вам раскроется содержание данного файла!
Даже простой текстовый редактор Windows, такой как WordPad, способен открывать файлы XML, так как эти типы файлов можно просматривать как простое текстовое содержимое: не забывайте, что файлы XML являются не чем иным, как контейнера данных.
Хотите знать, как открыть файл XML с WordPad? Это действительно легко! Щелкните правой кнопкой мыши по рассматриваемому файлу, а затем в контекстном меню выберите пункты Открыть с помощью → WordPad. Проще некуда, я прав?
Открыть xml с помощью браузера
Mozilla Firefox, Opera, Edge и другие интернет-браузеры без проблем откроют файл XML.
Чтобы сделать это, щелкните правой кнопкой мыши по рассматриваемому файлу и в появившемся вам контекстном меню щелкните элемент Открыть с помощью. Среди предложенных вариантов, выберите элемент, который относится к названию браузера, который вы хотите использовать.
Файл XML будет открыт непосредственно в новой вкладке браузера, и вы сможете прочитать его текстовое содержимое.
Как открыть xml-файл на Mac
Если вы используете Mac и хотите понять, как открыть файл XML, вам не нужно усложнять свою жизнь установкой сложного программного обеспечения. Всё, что вам нужно, это открыть браузер Safari, который, как и любой другой браузер, может легко отображать файлы с этим расширением.
Чтобы открыть файл XML, щелкните правой кнопкой мыши по нему и в контекстном меню выберите пункты Открыть с помощью → Safari. В мгновение ока файл будет открыт с помощью стандартного веб-браузера macOS.
Кроме того, вы можете использовать программное обеспечение для заметок TextEdit, уже предустановленное в macOS. Чтобы открыть файл XML с помощью этого приложения, щелкните файл правой кнопкой мыши и в раскрывающемся меню Открыть с помощью выберите элемент TextEdit. И вот ваш файл открыт.
Как открыть xml-файл в Excel
Если вы обычно используете программное обеспечение пакета Office, вам будет приятно узнать, что некоторые из программ этого набора позволяют открывать файлы XML. Например, Word может отображать содержимое файлов этого типа, делая это также, как я уже показал вам для Блокнота или WordPad.
Даже Excel – популярное программное обеспечение для работы с электронными таблицами – абсолютно точно может отобразить XML-файл. Однако, рассматриваемый файл будет отображаться в виде таблицы XML, а не в виде простого текста, как в случае с Word.
Чтобы открыть xml-файл в Microsoft Excel, запустите программу и в меню «Файл» выберите пункт Открыть → Обзор, чтобы найти нужный XML-файл. В открывшемся диалоговом меню откройте файл в виде таблицы XML, и всё готово! Вы видели, как это было легко? Могу поспорить, вы не думали, что это будет так просто.
Как открыть xml-файл онлайн
Вам важно узнать содержимое файла XML, который вы нашли, но не хотите загружать программное обеспечение? Нет проблем, это не обязательно. Чтобы открыть файлы с расширением .XML, вы можете использовать один из нескольких инструментов онлайн-просмотра.
Вот некоторые интернет-сайты, которые предлагают просмотр файлов XML: это простые в использовании и по-настоящему доступные инструменты.
Codebeautify
Интерфейс XML Viewer невероятно прост и функционален: следуя указаниям, которые вы найдете в следующих строках, вам не составит труда использовать его для просмотра файлов XML.
Сначала нажмите кнопку Browse , чтобы найти файл на вашем ПК или Mac. После выбора нажмите кнопку Открыть в диалоговом окне, чтобы завершить процесс импорта.
На экране XML Input слева вы увидите текст файла, который вы открыли, а на правом экране вы можете увидеть его в соответствии с другими структурами: нажав кнопку просмотра дерева, вы увидите структуру различных тегов и зависимостей; нажав на кнопку Beautify / Format , вы можете просмотреть хорошо отформатированный исходный код, а с помощью кнопки Minify вы можете удалить весь ненужный код.
Кроме того, вы можете экспортировать XML в другие форматы, такие как CSV (Export to CSV) или в JSON (XML to JSON). Если вы хотите внести изменения, вы можете сохранить их, нажав кнопку Download , которая позволяет сохранить новый файл на ПК, всегда в формате XML.
XMLGrid
Как его использовать? Очень просто: сначала зайдите на главную страницу веб-сайта и, как только отобразится соответствующая веб-страница, нажмите Open File и Выберите файл. Очевидно, теперь вам нужно найти XML-файл на вашем компьютере, щелкнуть по нему, а затем по кнопке Открыть в диалоговом окне Windows или macOS, чтобы открыть его. После загрузки нажмите кнопку Submit .
Если всё прошло правильно, файл покажет Well-Formed XML . Затем файл отобразится в нижней панели, и вы можете нажать кнопку TextView , чтобы просмотреть его в полностью текстовом формате.
Среди дополнительных функций этого веб-сайта есть возможность использования таких инструментов, как онлайновые учебники по XML , чтобы узнать, как писать на XML, и онлайн-валидатор XML, чтобы проверить правильность написания.
XMLViewer
Как вы можете догадаться по доменному имени, основная функция заключается в том, чтобы позволить вам просмотреть содержимое файла XML. Сайт делает это очень хорошо и, кроме того, имеет пользовательский интерфейс, который действительно радует глаз.
Чтобы использовать его, перейдите на главную страницу веб-сайта, загрузите файл с помощью кнопки Browse и нажмите кнопку Format .
При желании вы можете отформатировать текст в формат Json, удалить лишний код (кнопка Minify ) и активировать древовидное представление (кнопка Tree View ).
Как открыть xml файл на смартфоне и планшете
Открыть файл XML на смартфоне или планшете Android очень легко. Так как xml-файл, по сути, является текстовым файлом, любой текстовый редактор устройства Android может открыть его. После загрузки файла на устройство, откройте его из файлового менеджера вашего устройства: вы увидите, что он откроется в мгновение ока с помощью инструмента «Текстовый редактор».
Если вы используете устройство iOS, загрузите файл из облачной службы, которую вы использовали, чтобы перенести его на мобильное устройство, например, iCloud. Будучи файлом, содержащим текстовые данные, просто нажмите на него, чтобы просмотреть как обычную текстовую заметку. Как вы уже видели, вам не нужно никакого стороннего приложения, чтобы открывать и просматривать xml-файл.
Как открыть xml файлы в PDF
Хотите открыть файл XML с помощью программного обеспечения для управления PDF? У меня есть решения, которые наверняка могут быть полезны для вас. На самом деле, вы должны знать, что в большинстве случаев XML-файл нельзя открыть напрямую с помощью программного обеспечения PDF, но вы можете преобразовать его.
Хотя существует некоторое программное обеспечение, позволяющее просматривать XML в формате PDF, например, для электронного выставления счетов, в некоторых случаях необходимо сначала выполнить его преобразование. Эта операция возможна с использованием одного из множества решений, проиллюстрированных в предыдущих главах, с помощью фукнции печать в формат PDF. Вы также можете использовать инструменты, которые позволяют выполнить немедленное преобразование XML в PDF.
Как открыть файл xml.p7m
Если вы получили электронный счет в формате XML или XML.P7M, использование одного из инструментов, предложенных в предыдущих главах, не является адекватным решением. Это связано с тем, что предлагаемое программное обеспечение позволяет просматривать текстовое содержимое файла XML без учета их структуры.
В связи с этим вам нужен инструмент, который может открывать этот тип файла, поддерживая структуру и форматирование счета, чтобы правильно его прочитать.
Язык XML был изобретен в 1996 году. Едва он успел появиться, как возможности его применения уже начали понимать неправильно, и для тех целей, к которым его пытались адаптировать, он был не лучшим выбором.
Не будет преувеличением сказать, что подавляющее большинство схем XML, которые мне доводилось видеть, представляли собой нецелесообразное или неправильное использование XML. Более того, такое применение XML свидетельствовало о фундаментальном непонимании того, чем прежде всего является XML.
XML — это язык разметки. Это не формат данных. В большинстве схем XML это разграничение явно не учитывали, путая XML с форматом данных, что в итоге означало ошибку в самом выборе XML, поскольку на самом деле нужен был именно формат данных.
Если не вдаваться в детали, XML лучше всего подходит для аннотирования блоков текста со структурой и метаданными. Если вашей главной задачей не является работа с блоком текста, выбор XML вряд ли будет оправдан.
С этой точки зрения существует простой способ проверить, насколько хорошо сделана схема XML. Возьмем для примера документ в предполагаемой схеме и удалим из него все теги и атрибуты. Если в том, что осталось, нет смысла (или если осталась пустая строка), то либо ваша схема построена неправильно, либо вам просто не стоило применять XML.
Далее я приведу несколько наиболее часто встречающихся примеров неправильно построенных схем.
Здесь мы видим пример необоснованной и странной (хоть и весьма распространенной) попытки выразить языком XML простой словарь «ключ-значение». Если удалить все теги и атрибуты, останется пустая строка. По существу данный документ представляет собой, как бы абсурдно это ни звучало, семантическую аннотацию пустой строки.
Что еще хуже, у нас здесь не просто семантическая аннотация пустой строки как экстравагантный способ выражения словаря — на этот раз «словарь» напрямую закодирован в виде атрибутов корневого элемента. Из-за этого заданный набор имен атрибутов на элементе становится неопределенным и динамическим. Более того, отсюда видно, что все, что на самом деле хотел выразить автор, — это простой синтаксис «ключ-значение», но вместо этого он принял абсолютно странное решение применить XML, принудительно задавая использование одиночного пустого элемента просто в качестве префикса для использования синтаксиса атрибутов. И такие схемы попадаются мне очень часто.
Это уже кое-что получше, но теперь ключи по какой-то причине являются метаданными, а значения — нет. Весьма странный взгляд на словари. Если удалить все теги и атрибуты, будет потеряна половина информации.
Правильное выражение словаря в XML будет выглядеть приблизительно так:
Но если люди приняли странное решение применять XML как формат данных и затем с помощью него упорядочивать словарь, то они должны понимать, что то, что они делают неуместно и не удобно. Еще часто проектировщики ошибочно выбирают XML для создания своих приложений. Но еще чаще они усугубляют ситуацию бессмысленным применением XML в одной из описанных выше форм, игнорируя тот факт, что XML для этого просто не подходит.
Самая худшая схема XML? Кстати, приз за самую худшую схему XML, которую мне доводилось видеть, получает формат файла конфигурации автоматического выделения ресурсов для телефонов IP-телефонии Polycom. Такие файлы требуют загрузки XML-файлов запроса по TFTP, которые… В общем, вот отрывок из одного такого файла:
Это не чья-то неудачная шутка. И это не моя выдумка:
- элементы просто используются как префикс для прикрепления атрибутов, которые сами по себе имеют иерархические имена.
- Если нужно приписать значения нескольким экземплярам записи определенного вида, для этого необходимо использовать имена атрибутов, в которых есть индексы.
- Кроме этого, атрибуты, начинающиеся с softkey. , нужно помещать на элементы <softkey/> , атрибуты, начинающиеся с feature. , нужно помещать на элементы <feature/> и т. д., несмотря на то, что это выглядит совершенно излишним и на первый взгляд бессмысленным.
- И, наконец, если вы надеялись, что первый компонент имени атрибута всегда совпадает с именем элемента — ничего подобного! Например, атрибуты up. должны прикрепляться к <userpreferences/> . Порядок прикрепления имен атрибутов к элементам — произвольный, причем практически полностью.
Разобраться в этом поможет понятие разницы между документами и данными. В качестве аналога XML можно условно взять машиночитаемый документ. Хоть он и предназначен для считывания машиной, метафорически он относится к документам, и с этой точки зрения фактически является сопоставимым с документами формата PDF, которые чаще всего не являются машиночитаемыми.
К примеру, в XML имеет значение порядок элементов. А в JSON порядок следования пар «ключ-значение» внутри объектов не имеет смысла и не определен. Если вы хотите получить неупорядоченный словарь из пар «ключ-значение», фактический порядок, в котором следуют элементы в этом файле, не имеет значения. Но вы можете сформировать из этих данных много разных документов, поскольку в документе есть определенный порядок. Метафорически это аналог документа на бумаге, хоть он и не имеет физических размеров в отличие от распечатки или файла PDF.
В моем примере правильного представления словаря на языке XML показан порядок следования элементов в словаре, в отличие от представления на языке JSON. Я не могу игнорировать этот порядок: такая линейность изначально свойственна модели документов и формату XML. Кто-то при интерпретации этого XML-документа может решить проигнорировать порядок, но спорить по этому поводу бессмысленно, поскольку данный вопрос выходит за рамки обсуждения собственно формата. Более того, если сделать документ просматриваемым в браузере, прикрепив к нему каскадную таблицу стилей, можно будет увидеть, что элементы словаря следуют в определенном порядке, и ни в каком другом.
Другими словами, словарь (фрагмент структурированных данных) может быть преобразован в n различных возможных документов (в формате XML, PDF, на бумаге и т. п.), где n — количество возможных комбинаций элементов в словаре, и это мы еще не учли другие возможные переменные.
Вместе с тем из этого также следует, что если вы хотите передать одни только данные, то использовать для этого машиночитаемый документ будет не эффективно. В нем используется модель, которая в этом случае лишняя, она будет только мешать. К тому же, для того чтобы извлечь исходные данные, необходимо будет написать программу. Вряд ли есть смысл использовать XML для чего-то такого, что на определенном этапе не будет форматироваться в виде документа (скажем, с помощью CSS или XSLT, либо и того, и другого), поскольку это главная (если не единственная) причина для того, чтобы придерживаться модели документа.
Более того, поскольку в XML нет понятия чисел (или булевых выражений, либо других типов данных), все представленные в этом формате числа считаются лишь дополнительным текстом. Для извлечения данных должна быть известна схема и ее связь с соответствующими выражаемыми данными. Также необходимо знать, когда исходя из контекста тот или иной элемент текста представляет собой число, и его следует преобразовывать в число, и т. д.
Таким образом, процесс извлечения данных из документов XML не так уж сильно отличается от процесса распознавания отсканированных документов, содержащих, например, таблицы, образующие множество страниц численных данных. Да, сделать это в принципе возможно, но это не самый оптимальный путь, — разве что в крайнем случае, когда совсем нет других вариантов. Разумным решением будет просто найти цифровую копию оригинальных данных, не заложенных в модель документа, в которой данные объединены с их конкретным текстовым представлением.
При этом меня совсем не удивляет, что XML популярен в бизнесе. Причина этого именно в том, что формат документов (на бумаге) понятен и привычен для бизнеса, и там хотят продолжать пользоваться знакомой и понятной моделью. По той же самой причине в бизнесе слишком часто используют документы в PDF вместо более удобных для машинной обработки форматов — потому что они по-прежнему привязаны к понятию печатной страницы с определенным физическим размером. Это касается даже тех документов, которые вряд ли когда-нибудь будут распечатываться (например, PDF-файл документации реестра из 8000 страниц). С этой точки зрения использование XML в бизнесе по сути — проявление скевоморфизма. Людям понятна метафорическая идея печатной страницы ограниченного размера, и они понимают, как создавать бизнес-процессы на основе печатных документов. Если это ваш ориентир, документы без ограниченного физического размера, являющиеся машиночитаемыми — документы XML — представляют собой инновацию, являясь при этом знакомым и комфортным аналогом документа. Что не мешает им оставаться неверным и излишне скевоморфичным способом представления данных.
На сегодняшний день единственными известными мне схемами XML, которые я действительно могу назвать правильным применением этого формата, являются XHTML и DocBook.
Читайте также: