Файлы объединяющие текстовые xml и битовые форматы

Обновлено: 07.07.2024

Бинарный файл это "двоичный файл". Название это происходит оттого, что бинарные файлы в этом контексте противопоставляются текстовым файлам, и представляют собой набор байтов (в отличие от текстовых, которые представляют собой набор символов) , которые, в свою очередь, состоят из битов. А бит - это единица измерения в двоичной (бинарной) системе счисления, где каждый бит может принимать значение 0 или 1.

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

Двоичный (бинарный) файл - в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных цифр.

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

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр.

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

Часто двоичными файлами называют исполняемые файлы и сжатые данные, однако некорректно так ограничивать это понятие.

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

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

Чтобы понять XML, полезно понимать идею пометки данных. Люди создавали документы на протяжении многих лет и на протяжении всего времени они их помечали. Например, преподаватели могут постоянно пометить документы учащихся. Учащиеся могут перемещать абзацы, уточнять предложения, исправлять опечатки и так далее. Пометка документа определяет структуру, смысл и внешний вид сведений в документе. Если вы когда-либо использовали функцию "Отслеживание изменений" в Microsoft Office Word, то использовали компьютеризированную форму пометки.

В мире информационных технологий термин "пометка" превратился в термин "разметка". При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например <p> и <h2> . В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца ( <p> . </p> ) и местоположение рисунков.

Отличительные черты XML

Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

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

Учитывайте при работе следующее:

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

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

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

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

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

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Правильно сформированные данные

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

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

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

Схемы

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

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов <CAT> . </CAT>:

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

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

Объявления являются мощным средством управления структурой данных. Например, объявление <xsd:sequence> означает, что теги, такие как <NAME> и <BREED> , должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

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

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

В следующем примере кода показан один из способов написания преобразования. Она загружает данные <CAT> в таблицу на веб-странице. В этом примере суть не в том, чтобы показать, как написать преобразование, а в том, чтобы показать одну форму, которую может принять преобразование.

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

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

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают всестороннюю поддержку XML. Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Поскольку XML-данные хранятся в текстовом формате вместо запатентованного двоичного формата, ваши клиенты могут определять собственные схемы и использовать ваши данные разными способами без лицензионных отчислений. Дополнительные сведения о новых форматах см. в сведениях о форматах Open XML и расширениях имен файлов. К другим преимуществам относятся:

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и большая безопасность. Формат XML может быть легко прочитан пользователем, поэтому если файл поврежден, его можно открыть в Блокноте или другой программе для просмотра текста и восстановить хотя бы часть данных. Кроме того, новые файлы более безопасны, потому что они не могут содержать код Visual Basic для приложений (VBA). Если новый формат используется для создания шаблонов, то элементы ActiveX и макросы VBA находятся в отдельном, более безопасном разделе файла. Кроме того, можно удалять личные данные из документов с помощью таких средств, как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных при проверке документов.

Пока все хорошо, но что делать, если у вас есть данные XML без схемы? У Office программ, которые поддерживают XML, есть свои подходы к работе с данными. Например, Excel выдаст схему, если вы откроете XML-файл, который еще не имеет такой схемы. Excel затем вы можете загрузить эти данные в XML-таблицу. Для сортировки, фильтрации или добавления вычислений в данные можно использовать XML-списки и таблицы.

Включение средств XML в Office

По умолчанию вкладка "Разработчик" не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2016, Office 2013 или Office 2010: Отображение вкладки "Разработчик".

· Открытые/закрытые (ODF – очень открытый формат, PDF раньше был закрыт, PDFX, LaTeX, ТХТ, HTML, XML, RTF, DjVu – открытый. закрытый - Inds).

· Векторные(RTF, PDF поддерживает, WMF, SVG, SWF, СDR, EPS, AI) и растровые(DjVu, JPEG, TIFF, BMP, GIF, PNG, PSD, TGA).

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

Недостатки: 1) непереносимость, 2) проблема с выравниванием (данные могут располагаться по разным адресам).

Примеры: DOC, PDF, DjVu.

Текстовые: информация хранится в виде текста. Основная цель применения текстовых данных — независимость от отдельных программ, требующих собственного кодирования или форматирования и несовместимых с другими программами. Существуют методы (например, UUENCODE), позволяющие закодировать в текстовом формате произвольные данные любого формата.

Недостаток: скорость считывания и преобразования.

Примеры: HTML, XML, RTF.

Если при открытии в Блокноте кракозябры, то формат бинарный.

Мультимедиа сейчас - это полноценное объединение компьютерных и других информационных технологий: видео, аудио, фото, кино, телекоммуникаций (телефон, телевидение, радиосвязь), не говоря уже о тексте и графике, как статической, так и динамической (анимационной).

Представление текстовой информации:

Наряду с форматом HTML и PDF (последний, строго говоря, хранит текст в графическом формате), текстовые блоки электронных изданий могут быть представлены в форматах DOC (MS Word), P65 (Adobe PageMaker) и многих др.

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

Для чисто текстовых изданий ограничений еще меньше. Их можно хранить и распространять в любом текстовом формате, используемом в современных персональных компьютерах. В частности, может использоваться формат ТХТ (в том числе «простой текст» или plain text), гораздо более экономичный, чем формат DOC. Из языков разметки текста помимо HTML, наибольшее распространение получили:

- TROFF, применяющийся при оформлении документации в рамках операционной системы UNIX и различных ее версий, включая LINUX;

- ТЕХ, который широко используется для подготовки изданий с большим количеством математических формул;

- SGML (Standart Generic Markup Language) - реализует принцип логической разметки текста, который позволяет разграничить содержимое издания и его электронное представление.

Представление графической информации:

Последовательность графических форматов в порядке убывания их популярности (или частоты применения) для электронных изданий и документов: GIF, JPEG, PNG, TIFF.

GIF (Graphics Interchange Format) - является одним из самых популярных форматов изображений, размещаемых на веб-страницах. Отличительной его особенностью является использование режима индексированных цветов (не более 256), что ограничивает область применения формата изображениями, имеющими резкие цветовые переходы. Небольшие размеры файлов изображений обусловлены применением алгоритма сжатия без потерь качества, благодаря чему изображения в этом формате наиболее удобны для пересылки по каналам связи глобальной сети. В GIF реализован эффект прозрачности и возможности хранить в одном файле несколько картинок с указанием времени показа каждой, что используется для создания анимированных изображений.

JPEG (Joint Photographic Experts Group) - самый популярный формат для хранения фотографических изображений, является общепризнанным стандартом. JPEG может хранить только 24-битовые полноцветные изображения. Хотя JPEG отлично сжимает фотографии, но это сжатие происходит с потерями и портит качество, тем не менее, он может быть легко настроен на минимальные, практически незаметные для человеческого глаза, потери.

TIFF (Tag Image File Format). Как универсальный формат для хранения растровых изображений, TIFF достаточно широко используется, в первую очередь, в издательских системах, требующих изображения наилучшего качества. Кстати, возможность записи изображений в формате TIFF является одним из признаков высокого класса современных цифровых фотокамер. В этом формате поддерживаются такие чисто профессиональные возможности, как обтравочные контуры, альфа-каналы, возможность сохранять несколько копий изображения с разным разрешением и даже включать в файл слои.

PNG (Portable Network Graphics) - формат PNG, являющийся плодом трудов сообщества независимых программистов, появился на свет как ответная реакция на переход популярнейшего формата GIF в разряд коммерческих продуктов. Этот формат, в отличие от GIF сжимает растровые изображения не только по горизонтали, но и по вертикали, что обеспечивает более высокую степень сжатия. Как недостаток формата часто упоминается то, что он не дает возможности создавать анимационные ролики. Зато формат PNG позволяет создавать изображения с 256 уровнями прозрачности что, безусловно, выделяет его на фоне всех существующих в данный момент форматов. Представление аудиофайлов:

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

Из форматов звуковых файлов следует упомянуть AU для UNIX-подобных систем и платформ, WAV - стандарт звуковых файлов для операционной системы Windows, AIFF - стандарт звуковых файлов для платформы Apple Macintosh и MIDI (Musical Instrument Digital Interface) - формат электронных музыкальных инструментов. Кратко остановимся на каждом из них.

Представление видеофайлов:

Самые популярные форматы – это QuickTime фирмы Apple, MPEG комитета Motion Picture Expert Group и AVI фирмы Microsoft.

Общая черта всех популярных форматов цифровых видеофайлов состоит в том, что основная часть любого из них - это система сжатия и восстановления видеоданных (compression/decompression - сокращенно codec), называемая кодеком. Обычно программы, поддерживающие основные форматы видеофайлов, позволяют замещать старые кодеки на новые, более совершенные, по мере разработки последних. Такой подход позволил легко адаптировать форматы видеофайлов и поддерживающие их программы к новым технологиям, как только те становились доступными.

*Если потребуются подробности, их можно почитать тут:

2. Подготовка электронных изданий в формате PDF. Структура документа в формате PDF — трейлер, таблица перекрестных ссылок.

PDF (аббревиатура от англ. Portable Document Format) — разработанный фирмой Adobe Systems с использованием ряда возможностей языка PostScript, как независимый от платформы формат представления в электронном виде полиграфической продукции, различной электронной документации (в том числе электронные книги) и презентаций.

PDF-публикация (документ) содержит одну или более страниц. Каждая страница может включать любые компоненты электронного издания: текст, графику и иллюстрации, анимацию, видео- и аудиоинформацию в аппаратно-независимом формате, в виде так называемого страничного описания (page description). PDF-публикация может также содержать информацию, обеспечивающую навигацию в гипертекстовой электронной публикации.

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

Формат PDF представляет текст и графику, используя модель формирования изображений языка программирования полос PostScript. Графическими объектами могут быть тексты и формы публикаций, векторные и растровые изображения и т.д. Графические объекты могут быть любого цвета.

Операторы создания страниц PDF подобны операторам языка PostScript. Главное отличие состоит в том, что PDF не программный язык, он не содержит процедур, переменных и т.п.

Характерными особенностями PDF-файла являются:

§ PDF-файл может содержать объекты, подобные гипертекстовым ссылкам, доступные только при интерактивном просмотре;

§ для упрощения процесса описания страниц PDF не использует конструкции программных языков;

§ PDF создает определенную структуру файла, которая позволяет программным приложениям иметь доступ к любой части документа;

§ PDF-файл содержит информацию о размерах шрифта и т.п.;

§ PDF-файл не может быть прямо преобразован в PostScript-публикацию для печати;

Для прямого поиска любой страницы файла PDF-файл содержит специальную таблицу ссылок. Таблица размещается в конце файла и способствует уменьшению времени поиска и вывода страницы в PDF-публикации, так как обеспечивает независимость времени поиска от общего количества страниц в документе.

Структура файла:

Обычный PDF-файл содержит четыре раздела:

· «тело файла» (body);

· таблицу перекрестных ссылок (cross-reference table);

Заголовок. Первая строка PDF-файла определяет номер спецификации PDF, которой придерживается данный файл (текущая - 1.2% PDF-1.2).

Тело файла. Содержит последовательность косвенных объектов, входящих в состав публикации. Объекты - это компоненты публикации: страницы, изображения, шрифты. Комментарии могут быть во всем PDF-файле. Их синтаксис совпадает с синтаксисом комментариев в PostScript, они начинаются с % и заканчиваются символом конца строки.

Таблица перекрестных ссылок. Таблица содержит информацию о каждом объекте в файле в виде одной строки описания места объекта в файле. PDF-файл содержит таблицу, состоящую из одного или более разделов. Если нет изменений или добавлений в файл, таблица состоит из одного раздела. В противном случае в ее состав добавляется новый раздел.

Приведем описание раздела таблицы, состоящего из подразделов. Каждый подраздел включает данные для непрерывной области номеров объектов. Организация подразделов удобна для пошагового изменения, потому что допускает добавление нового раздела перекрестной ссылки, содержащей данные об объектах, которые были добавлены или удалены.

Каждый подраздел перекрестной ссылки начинается со строки заголовка, содержащей два числа: объектный номер в этом подразделе и номер данных в подразделе.

Есть два формата данных таблицы: для объектов, которые используются, и для объектов, которые были удалены.

Для объекта, который используется в публикации, указываются байтовое смещение, определяющее количество байтов от начала файла к началу объекта, номер генерации объекта, и ключевое слово n: <in-use entry> ::= <byte offset><generation number> n.

Для объекта, который свободен, указываются объектный номер следующего свободного объекта, номер генерации и ключевое слово f: <free entry> ::= <object number of next free object><generation number> f.

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

Trailer позволяет программному приложению при чтении PDF-файла быстро находить таблицу перекрестных ссылок и специальные объекты. Приложения должны читать PDF-файл с конца. Последняя строка содержит маркер конца файла %%EOF; две предшествующие строки - ключевое слово startxref и байт смещения от начала файла к началу слова xref в последнем разделе таблицы ссылок в файле. Trailer dictionary предшествует этой строке.

Атрибуты trailer показывают смещения от начала файла к месту расположения последнего после изменения раздела таблицы ссылок, каталог объектов для публикации (в виде dictionary), массив двух string-идентификаторов создания и изменения файла, информацию для декодирования документов и т.п.

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

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

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

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

Информация, заключенная между тегами, называется содержимым или значением элемента: <author>Erik T. Ray</author> . Т.е. элемент author принимает значение Erik T. Ray . Элементы могут вообще не принимать значения.

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

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

Структура XML¶

XML документ должен содержать корневой элемент. Этот элемент является «родительским» для всех других элементов.

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

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

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

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

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

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

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

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

Сущности¶

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

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

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

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

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

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

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

В последнем примере английские двойные кавычки заменены на французские кавычки («ёлочки»), которые не являются служебными символами.

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

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

XML имеет древовидную структуру. В документе всегда имеется корневой элемент (инструкция <?xml version=”1.0”?> к дереву отношения не имеет). У элемента дерева всегда существуют потомки и предки, кроме корневого элемента, у которого предков нет, а также тупиковых элементов (листьев дерева), у которых нет потомков. Каждый элемент дерева находится на определенном уровне вложенности (далее — «уровень»). У элементов на одном уровне бывают предыдущие и следующие элементы.

Это очень похоже на организацию каталогов в файловой системе, и строки XPath, фактически, — пути к «файлам» — элементам. Рассмотрим пример списка книг:

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

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

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

Кодировки¶

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

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

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

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

Таблица I.3 — Смена кодировки в разных программах ¶
Программа Кодировка
Notepad++ «Документ → Кодировка»
Geany «Документ → Установить кодировку»
Firefox «Вид → Кодировка»
Chrome «Настройка → Дополнительные инструменты → Кодировка»

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

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

XSD схема¶

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

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

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

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

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