Файлик с расширением XML (формат XML) – это расширяемый язык разметки. Непонятно? – Вот и меня данное определение вводит в ступор, а обычного новичка (который пытается освоить компьютер) такой ответ не устраивает. В данной заметке я хочу вам рассказать – что же за формат такой XML и как его можно открыть (и для чего он нужен).
На самом деле XML – самый простой текстовый документ, структура которого может состоять из пользовательских тегов или других описаний документа.
Содержание:
- 1 Что такое формат XML
- 1.1 Как открыть XML файл
- 1.1.1 Способ 1. Лучший текстовый редактор – Notepad++
- 1.1.2 Способ 2. Блокнот Windows
- 1.1.3 Способ 3. Браузер
- 1.1 Как открыть XML файл
- 2 Заключение
Что такое формат XML
XML – это язык разметки, который создан для удобства кодирования и чтения как машинами, так и простыми смертными людьми. Делается это с помощью тегов, которые формируют структура документа и его параметры.
Если сравнить его с HTML, то в целом, задачи решают одинаковые, только в HTML все эти теги жестко прописаны и жирный будет определяться как <b></b>, то в случае с XML мы можем сделать жирный как <Жирный></Жирный>, т.е. разработчики сами определяют эти теги.
Я думаю вы уже поняли что XML не принадлежит к какой-то конкретной и определенной программе – это универсальный формат и использовать его может каждый. Например он используется для передачи персональных данных в Пенсионный Фонд РФ или же просто выступает промежуточным файлом при переносе данных из конфигурации 1С
Фишка XML в том, что даже если вы не знаете в какой программе он сформирован, то беглым взглядом можно прочитать и осознать информацию, которая в нем содержится.
Как открыть XML файл
Если вы впервые столкнулись с XML… не расстраивайтесь, формат очень распространенный и, раз уже мы знаем что это текст, то и открывается он любым текстовым редактором (только не вздумайте открывать его в MS Office Word)
Способ 1. Лучший текстовый редактор – Notepad++
Если вы достаточно часто сталкиваетесь с XML в своей жизни, то у вас обязательно должен быть установлен Notepad++! Данный текстовый редактор имеет огромный функционал и подсветку синтаксиса, которая так необходима при просмотрел XML. Notepad++ показывает XML формат в максимально удобном и усвояемом обычным человеком виде.
Если вы еще никогда не сталкивались с Notepad++, то вы просто обязаны его попробовать – просто маст хэв приложение на любом компьютере
Способ 2. Блокнот Windows
Если XML файл нужно отредактировать максимально быстро, то и самый простой блокнот сгодится. Кликните правой кнопкой мыши на файлике и в контекстном меню “Открыть с помощью…” и выберите в списке “Блокнот”.
В обычном блокноте Windows, к сожалению, нет подсветки синтаксиса, что несколько затрудняет восприятие информации… но по быстрому подправить вполне сгодится.
Способ 3. Браузер
Если нет надобности в редактировании, то XML файл можно открыть только для чтения в любом браузере. Я использую браузер Яндекс, но можно использовать даже ненавистный многим Internet Explorer. Для этого кликните правой кнопкой по файлу и выберите пункт “Открыть с помощью”, в списке найдите свой веб обозреватель…
Бывают такие ситуации, когда браузер попытается отобразить информацию согласно тегам… что нам совершенно не нужно – просто нажмите CTRL+ U для просмотра исходного кода документа.
Как можете видеть, браузер отображает более вменяемо информацию из XML файла в отличии от стандартного Блокнота.
Заключение
Вот мы и рассмотрели что такое XML файл и различные способы его открыть. Если разбирать вопрос более подробно, то многие читатели могут заметить, что в сети присутствует огромное количество онлайн сервисов для работы с XML – рассматривать их в разрезе данной заметки не вижу смысла, моя цель была рассказать как его просмотреть и отредактировать (по возможностями средствами самой ОС Windows)
С появлением World Wide Web (всемирной паутины интернет) возникла необходимость
в создании языков разметки. Для описания разных типов интернет-документов были созданы разные языки. Один из них — XML. В статье мы рассмотрим, что это за язык, в каких случаях используется формат XML и в чём его преимущество, а также разберём, как устроен его синтаксис.
Что такое протокол XML
Если с английского расшифровать аббревиатуру XML, то получится «eXtensible Markup Language» — расширяемый язык разметки. Давайте рассмотрим это понятие. Язык разметки — это набор символов, который используют, чтобы обозначить, какую структуру должен иметь текст и как именно отображаться на странице сайта.
Лучше понять, что такое разметка, поможет один из популярных языков — HTML. Благодаря нему отображаются страницы многих сайтов. Чтобы увидеть разметку, правой кнопкой мыши кликните по странице в браузере и выберите Просмотреть код. Справа в окошке можно найти текст этой статьи, но с одним отличием — он будет иметь разметку. В начале, конце и середине текста вы сможете увидеть разнообразные элементы разметки (значения в угловых скобках — <‘значение’>), которые называются тегами. О них мы подробнее расскажем позже, а пока ответим на вопрос «Зачем нужен XML?»
Язык XML — это метаязык, с помощью которого можно сделать не только саму разметку данных, но и описание всех её языков. С помощью XML разработчик может спроектировать собственную разметку, которая лучше всего будет подходить под текущий проект или задачу. Благодаря такому свойству этот язык называют расширяемым. Единственное условие — разработчик должен учитывать синтаксические правила языка, ведь XML имеет конкретную грамматику: словарь тегов и их атрибутов, а также набор правил.
XML — формат, ориентированный на текст. Он базируется на Unicode — стандарте кодирования символов, который включает в себя знаки почти всех письменных языков мира. Изначально этот формат придумали для более удобного хранения и передачи данных. Он имеет несколько основных преимуществ:
- доступность: этот формат могут прочитать как электронные устройства (компьютеры, телефоны и другие), так и человек — разработчик, программист и даже не специалист. Если нужно, XML-документы можно читать и менять с помощью стандартных инструментов редактирования текстов;
- совместимость: благодаря тому, что XML хранит все данные в текстовом формате, их удобно передавать — дополнительная конвертация не нужна. Также можно использовать одну систему для генерации данных и разметки, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы;
- универсальность: с его помощью можно структурировать, трансформировать и запрашивать данные. Также XML можно читать не только в API (правилах взаимодействия одной компьютерной программы с другой), но и непосредственно в коде.
Важное преимущество приложений, в которые интегрирован XML, в том, что они устойчивы к редактированию: вносить изменения в готовую структуру гораздо проще и быстрее. Если в один элемент приложения (например, ), в котором уже есть одно условие (например, атрибут customer-id) добавить ещё одно условие (например, атрибут last-purchase-date), приложение продолжит работать в обычном режиме. Другие форматы данных не могут обеспечить такую гибкость.
Где используется XML
Важно понимать, что XML — это не исполняемый код, а язык описания данных. После описания данных с помощью XML, необходимо создать сам код (например, на Java), который сможет эти данные отправить/принять/обработать.
XML получил большую популярность потому, что сильно выигрывает у других форматов. Например, CSV (в одной строке таблицы одна строка текста, с одним или несколькими полями, разделенными запятыми) и RTF (межплатформенный формат хранения текстовых документов) подходят только для табличных данных и имеют очень узкую специализацию. XML-формат универсален и подходит для описания:
- структурированных (или табличных) данных — реляционных данных (набора данных с предопределенными связями, состоящего из столбцов и строк) из базы данных или крупноформатных таблиц. Также сюда относятся сетевые протоколы и файлы конфигурации;
- псевдоструктурированных данных — web-страниц и деловых документов.
Microsoft — наиболее яркий пример компании, которая активно использует возможности XML. Этот формат интегрирован в большую часть продуктов Microsoft (Office®, SQL Server™ и другие).
Как устроен XML файл
Чтобы объяснить, что из себя представляет XML, в пример мы приводили язык разметки HTML. Несмотря на то, что оба этих языка помогают корректно отображать данные, по сути, между ними мало общего. В обоих случаях для разметки структуры документов используются специальные метки — теги. Однако в формате HTML они определяют оформление данных — расположение заголовков и рисунков, начало абзацев и так далее, а в формате XML — задают структуру и описывают, чем являются данные. XML не включает указаний на то, как именно необходимо отображать данные: за это отвечает непосредственно код, на котором написана страница. По такому принципу XML-данные можно заключать даже в HTML-теги, чтобы указать, как они должны отображаться на сайте.
Из чего состоит XML
Структура любого XML-документа подчиняется набору определений и документации — Infoset. Каждый документ содержит обязательные элементы и атрибуты, инструкцию обработки, комментарии, ссылки, пространства имен и многое другое. Рассмотрим некоторые структурные элементы подробнее.
Как выглядит документ в формате XML? В первую очередь XML состоит из тегов. Теги в документах распознаются легко, поскольку заключены в угловые скобки. Они всегда расставляются парами:
<первый> — открывающий, ставится перед элементом, который необходимо разметить;
</второй> — закрывающий, ставится после элемента.
Они показывают, где начинается и где заканчивается описание каждого элемента в файле. Текст внутри угловых скобок — название тега, которое отвечает за то, к чему относится данный фрагмент. Например:
<message>
Hello World
</message>
Кроме этого, одни теги можно вкладывать в другие теги, например:
<message>
<warning>
Обратите внимание!
</warning>
</message>
Такое свойство называется вложенностью. При этом вложенные теги могут иметь свои вложенности. Все вместе они представляют дерево тегов.
Также для любого тега можно прописать атрибуты — дополнительную важную информацию. В примере ниже у тега <PLAYER> (игрок) есть атрибуты или характеристики — «TEAM» (команда), «TRAINER» (тренер) и «RESULT» (результат):
<xsd:element name="PLAYER">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TEAM" type="xsd:string"/>
<xsd:element name="TRAINER" type="xsd:string"/>
<xsd:element name="RESULT" type="xsd:positiveInteger"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
По такому шаблону можно добавить нужную информацию, которая расширит или, наоборот, конкретизирует описание данных.
Иногда самой первой строкой в файл добавляют информацию о кодировке и версии XML. Она называется «prolog» и выглядит вот так:
<?xml version="3.0" encoding="UTF-8"?>
Одна из важных фишек XML — создание новой версии сайта на базе старой. Например, в первой версии в интернет-магазине была представлена только посуда, а теперь нужно, чтобы продавалась посуда и текстиль. Создавать вторую версию не придется — достаточно внести изменения, чтобы расширить текущую. При этом для версии с текстилем не нужно будет прописывать те же дочерние теги, что и для версии с текстилем. Достаточно добавить элемент (владелец). Если максимально упростить описанную схему, это будет выглядеть примерно так:
<data>
<owner first="TEKSTIL" last="OPTOM">
</owner>
<name="POSUDA" last="OPTOM"/>
</data>
Ещё одна из полезных возможностей формата — пространства имён и префиксы, которые позволяют использовать один и тот же элемент для разных задач. Например: xmlns:<name>=<«uri»>
где name — имя элемента, а uri — URL, который определяет пространство имен.
<reference: knowledge base xmlns:reference="https://help.reg.ru/support/domains/registratsiya-domena/kak-zaregistrirovat-domen"/>
<support: knowledge base xmlns:support="https://help.reg.ru/support/lichnyy-kabinet/registratsiya-i-kontaktnyye-dannyye/kak-svyazatsya-so-sluzhboy-podderzhki">
</knowledge base>
В нашем примере knowledge base (база знаний) — это общий элемент, а reference (справка) и support (поддержка, помощь) — варианты его использования.
Как открыть файл XML
Несмотря на то, что XML доступен для прочтения даже для обычного пользователя, иногда такие файлы бывает неудобно использовать. Документы в этом формате можно встретить на сайтах налоговых или на портале Госуслуг. Нередко в этом формате создают электронные таблицы.
Как просмотреть файл XML в таком случае? Можно использовать несколько способов — выбор будет зависеть от того, откуда вы скачали файл и к какому типу он относится:
- Если нужно просмотреть содержимое, используйте браузер. Чтобы просто посмотреть документ, достаточно открыть его в браузере — это самый быстрый способ, который не требует установки дополнительных программ. Кликните по файлу правой кнопкой мыши, нажмите Открыть с помощью и выберите нужный браузер.
- Если нужно открыть таблицу, лучше всего подойдет Excel: откройте программу, кликните CTRL+O, а затем укажите путь, по которому расположен файл на вашем компьютере. Или просто перетащите файл, зажав его левой кнопкой мыши.
- Если нужно открыть текстовый документ, используйте Microsoft Word, Microsoft Office или стандартный блокнот Windows — выше в статье мы рассказывали, что продукты Microsoft поддерживают XML-формат.
- Если нужно просмотреть содержимое документа онлайн, используйте специальные сервисы. Например, codebeautify.org или XMLGrid. С их помощью также можно перевести документ в другой формат, например, CSV или JSON.
Итак, теперь вы знаете про XML файл — что это такое, какие у него преимущества, что содержится в XML, а также для каких целей можно использовать этот формат.
Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.
В этой статье
-
Пометки, разметка и теги
-
Отличительные черты XML
-
Правильно сформированные данные
-
Схемы
-
Преобразования
-
XML в системе Microsoft Office
Пометки, разметка и теги
Чтобы понять 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 version="1.0"?> <CAT> <NAME>Izzy</NAME> <BREED>Siamese</BREED> <AGE>6</AGE> <ALTERED>yes</ALTERED> <DECLAWED>no</DECLAWED> <LICENSE>Izz138bod</LICENSE> <OWNER>Colin Wilcox</OWNER> </CAT>
Как видно, по тегам XML понятно, какие данные вы просматриваете. Например, ясно, что это данные о коте, и можно легко определить его имя, возраст и т. д. Благодаря возможности создавать теги, определяющие почти любую структуру данных, язык XML является расширяемым.
Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
Веб-браузер проигнорирует теги XML и отобразит только данные.
Правильно сформированные данные
Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.
Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.
XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.
В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.
Схемы
Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.
Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные <CAT> на соответствие схеме CAT.
Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов <CAT> … </CAT>:
<xsd:element name="CAT"> <xsd:complexType> <xsd:sequence> <xsd:element name="NAME" type="xsd:string"/> <xsd:element name="BREED" type="xsd:string"/> <xsd:element name="AGE" type="xsd:positiveInteger"/> <xsd:element name="ALTERED" type="xsd:boolean"/> <xsd:element name="DECLAWED" type="xsd:boolean"/> <xsd:element name="LICENSE" type="xsd:string"/> <xsd:element name="OWNER" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element>
Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:
-
Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.
-
Объявления являются мощным средством управления структурой данных. Например, объявление <xsd:sequence> означает, что теги, такие как <NAME> и <BREED>, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.
-
Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.
Преобразования
Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).
Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.
Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.
В следующем примере кода показан один из способов написания преобразования. Она загружает данные <CAT> в таблицу на веб-странице. В этом примере суть не в том, чтобы показать, как написать преобразование, а в том, чтобы показать одну форму, которую может принять преобразование.
<?xml version="1.0"?> <xsl:stylesheet version="1.0"> <TABLE> <TR> <TH>Name</TH> <TH>Breed</TH> <TH>Age</TH> <TH>Altered</TH> <TH>Declawed</TH> <TH>License</TH> <TH>Owner</TH> </TR> <xsl:for-each select="CAT"> <TR ALIGN="LEFT" VALIGN="TOP"> <TD> <xsl:value-of select="NAME"/> </TD> <TD> <xsl:value-of select="BREED"/> </TD> <TD> <xsl:value-of select="AGE"/> </TD> <TD> <xsl:value-of select="ALTERED"/> </TD> <TD> <xsl:value-of select="DECLAWED"/> </TD> <TD> <xsl:value-of select="LICENSE"/> </TD> <TD> <xsl:value-of select="OWNER"/> </TD> </TR> </xsl:for-each> </TABLE>
В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.
Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование 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: Отображение вкладки «Разработчик».
-
В Office 2007: Отображение вкладки разработчика или запуск в режиме разработчика.
Если вы тестируете API, то должны знать про два основных формата передачи данных:
- XML — используется в SOAP (всегда) и REST-запросах (реже);
- JSON — используется в REST-запросах.
Сегодня я расскажу вам про XML.
XML, в переводе с англ eXtensible Markup Language — расширяемый язык разметки. Используется для хранения и передачи данных. Так что увидеть его можно не только в API, но и в коде.
Этот формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому он часто используется для передачи данных по API. В SOAP API это вообще единственно возможный формат входных и выходных данных!
См также:
Что такое API — общее знакомство с API
Что такое JSON — второй популярный формат
Введение в SOAP и REST: что это и с чем едят — видео про разницу между SOAP и REST.
Так что давайте разберемся, как он выглядит, как его читать, и как ломать! Да-да, а куда же без этого? Надо ведь выяснить, как отреагирует система на кривой формат присланных данных.
Содержание
- Как устроен XML
- Теги
- Корневой элемент
- Значение элемента
- Атрибуты элемента
- XML пролог
- XSD-схема
- Практика: составляем свой запрос
- Well Formed XML
- 1. Есть корневой элемент
- 2. У каждого элемента есть закрывающийся тег
- 3. Теги регистрозависимы
- 4. Правильная вложенность элементов
- 5. Атрибуты оформлены в кавычках
- Итого
Как устроен XML
Возьмем пример из документации подсказок Дадаты по ФИО:
<req>
<query>Виктор Иван</query>
<count>7</count>
</req>
И разберемся, что означает эта запись.
Теги
В XML каждый элемент должен быть заключен в теги. Тег — это некий текст, обернутый в угловые скобки:
<tag>
Текст внутри угловых скобок — название тега.
Тега всегда два:
- Открывающий — текст внутри угловых скобок
<tag>
- Закрывающий — тот же текст (это важно!), но добавляется символ «/»
</tag>
Ой, ну ладно, подловили! Не всегда. Бывают еще пустые элементы, у них один тег и открывающий, и закрывающий одновременно. Но об этом чуть позже!
С помощью тегов мы показываем системе «вот тут начинается элемент, а вот тут заканчивается». Это как дорожные знаки:
— На въезде в город написано его название: Москва
— На выезде написано то же самое название, но перечеркнутое:
Москва
*
* Пример с дорожными знаками я когда-то давно прочитала в статье Яндекса, только ссылку уже не помню. А пример отличный!
Корневой элемент
В любом XML-документе есть корневой элемент. Это тег, с которого документ начинается, и которым заканчивается. В случае REST API документ — это запрос, который отправляет система. Или ответ, который она получает.
Чтобы обозначить этот запрос, нам нужен корневой элемент. В подсказках корневой элемент — «req».
Он мог бы называться по другому:
<main>
<sugg>
Да как угодно. Он показывает начало и конец нашего запроса, не более того. А вот внутри уже идет тело документа — сам запрос. Те параметры, которые мы передаем внешней системе. Разумеется, они тоже будут в тегах, но уже в обычных, а не корневых.
Значение элемента
Значение элемента хранится между открывающим и закрывающим тегами. Это может быть число, строка, или даже вложенные теги!
Вот у нас есть тег «query». Он обозначает запрос, который мы отправляем в подсказки.
Внутри — значение запроса.
Это как если бы мы вбили строку «Виктор Иван» в GUI (графическом интерфейсе пользователя):
Пользователю лишняя обвязка не нужна, ему нужна красивая формочка. А вот системе надо как-то передать, что «пользователь ввел именно это». Как показать ей, где начинается и заканчивается переданное значение? Для этого и используются теги.
Система видит тег «query» и понимает, что внутри него «строка, по которой нужно вернуть подсказки».
Параметр count = 7 обозначает, сколько подсказок вернуть в ответе. Если тыкать подсказки на демо-форме Дадаты, нам вернется 7 подсказок. Это потому, что туда вшито как раз значение count = 7. А вот если обратиться к документации метода, count можно выбрать от 1 до 20.
Откройте консоль разработчика через f12, вкладку Network, и посмотрите, какой запрос отправляется на сервер. Там будет значение count = 7.
См также:
Что тестировщику надо знать про панель разработчика — подробнее о том, как использовать консоль.
Обратите внимание:
- Виктор Иван — строка
- 7 — число
Но оба значения идут
без
кавычек. В XML нам нет нужды брать строковое значение в кавычки (а вот в JSON это сделать придется).
Атрибуты элемента
У элемента могут быть атрибуты — один или несколько. Их мы указываем внутри отрывающегося тега после названия тега через пробел в виде
название_атрибута = «значение атрибута»
Например:
<query attr1=“value 1”>Виктор Иван</query>
<query attr1=“value 1” attr2=“value 2”>Виктор Иван</query>
Зачем это нужно? Из атрибутов принимающая API-запрос система понимает, что такое ей вообще пришло.
Например, мы делаем поиск по системе, ищем клиентов с именем Олег. Отправляем простой запрос:
<query>Олег</query>
А в ответ получаем целую пачку Олегов! С разными датами рождения, номерами телефонов и другими данными. Допустим, что один из результатов поиска выглядит так:
<party type="PHYSICAL" sourceSystem="AL" rawId="2">
<field name=“name">Олег </field>
<field name="birthdate">02.01.1980</field>
<attribute type="PHONE" rawId="AL.2.PH.1">
<field name="type">MOBILE</field>
<field name="number">+7 916 1234567</field>
</attribute>
</party>
Давайте разберем эту запись. У нас есть основной элемент party.
У него есть 3 атрибута:
- type = «PHYSICAL» — тип возвращаемых данных. Нужен, если система умеет работать с разными типами: ФЛ, ЮЛ, ИП. Тогда благодаря этому атрибуту мы понимаем, с чем именно имеем дело и какие поля у нас будут внутри. А они будут отличаться! У физика это может быть ФИО, дата рождения ИНН, а у юр лица — название компании, ОГРН и КПП
- sourceSystem = «AL» — исходная система. Возможно, нас интересуют только физ лица из одной системы, будем делать отсев по этому атрибуту.
- rawId = «2» — идентификатор в исходной системе. Он нужен, если мы шлем запрос на обновление клиента, а не на поиск. Как понять, кого обновлять? По связке sourceSystem + rawId!
Внутри party есть элементы field.
У элементов field есть атрибут name. Значение атрибута — название поля: имя, дата рождения, тип или номер телефона. Так мы понимаем, что скрывается под конкретным field.
Это удобно с точки зрения поддержки, когда у вас коробочный продукт и 10+ заказчиков. У каждого заказчика будет свой набор полей: у кого-то в системе есть ИНН, у кого-то нету, одному важна дата рождения, другому нет, и т.д.
Но, несмотря на разницу моделей, у всех заказчиков будет одна XSD-схема (которая описывает запрос и ответ):
— есть элемент party;
— у него есть элементы field;
— у каждого элемента field есть атрибут name, в котором хранится название поля.
А вот конкретные названия полей уже можно не описывать в XSD. Их уже «смотрите в ТЗ». Конечно, когда заказчик один или вы делаете ПО для себя или «вообще для всех», удобнее использовать именованные поля — то есть «говорящие» теги. Какие плюшки у этого подхода:
— При чтении XSD сразу видны реальные поля. ТЗ может устареть, а код будет актуален.
— Запрос легко дернуть вручную в SOAP Ui — он сразу создаст все нужные поля, нужно только значениями заполнить. Это удобно тестировщику + заказчик иногда так тестирует, ему тоже хорошо.
В общем, любой подход имеет право на существование. Надо смотреть по проекту, что будет удобнее именно вам. У меня в примере неговорящие названия элементов — все как один будут field. А вот по атрибутам уже можно понять, что это такое.
Помимо элементов field в party есть элемент attribute. Не путайте xml-нотацию и бизнес-прочтение:
- с точки зрения бизнеса это атрибут физ лица, отсюда и название элемента — attribute.
- с точки зрения xml — это элемент (не атрибут!), просто его назвали attribute. XML все равно (почти), как вы будете называть элементы, так что это допустимо.
У элемента attribute есть атрибуты:
- type = «PHONE» — тип атрибута. Они ведь разные могут быть: телефон, адрес, емейл…
- rawId = «AL.2.PH.1» — идентификатор в исходной системе. Он нужен для обновления. Ведь у одного клиента может быть несколько телефонов, как без ID понять, какой именно обновляется?
Такая вот XML-ка получилась. Причем упрощенная. В реальных системах, где хранятся физ лица, данных сильно больше: штук 20 полей самого физ лица, несколько адресов, телефонов, емейл-адресов…
Но прочитать даже огромную XML не составит труда, если вы знаете, что где. И если она отформатирована — вложенные элементы сдвинуты вправо, остальные на одном уровне. Без форматирования будет тяжеловато…
А так всё просто — у нас есть элементы, заключенные в теги. Внутри тегов — название элемента. Если после названия идет что-то через пробел: это атрибуты элемента.
XML пролог
Иногда вверху XML документа можно увидеть что-то похожее:
<?xml version="1.0" encoding="UTF-8"?>
Эта строка называется XML прологом. Она показывает версию XML, который используется в документе, а также кодировку. Пролог необязателен, если его нет — это ок. Но если он есть, то это должна быть первая строка XML документа.
UTF-8 — кодировка XML документов по умолчанию.
XSD-схема
XSD (XML Schema Definition) — это описание вашего XML. Как он должен выглядеть, что в нем должно быть? Это ТЗ, написанное на языке машины — ведь схему мы пишем… Тоже в формате XML! Получается XML, который описывает другой XML.
Фишка в том, что проверку по схеме можно делегировать машине. И разработчику даже не надо расписывать каждую проверку. Достаточно сказать «вот схема, проверяй по ней».
Если мы создаем SOAP-метод, то указываем в схеме:
- какие поля будут в запросе;
- какие поля будут в ответе;
- какие типы данных у каждого поля;
- какие поля обязательны для заполнения, а какие нет;
- есть ли у поля значение по умолчанию, и какое оно;
- есть ли у поля ограничение по длине;
- есть ли у поля другие параметры;
- какая у запроса структура по вложенности элементов;
- …
Теперь, когда к нам приходит какой-то запрос, он сперва проверяется на корректность по схеме. Если запрос правильный, запускаем метод, отрабатываем бизнес-логику. А она может быть сложной и ресурсоемкой! Например, сделать выборку из многомиллионной базы. Или провести с десяток проверок по разным таблицам базы данных…
Поэтому зачем запускать сложную процедуру, если запрос заведом «плохой»? И выдавать ошибку через 5 минут, а не сразу? Валидация по схеме помогает быстро отсеять явно невалидные запросы, не нагружая систему.
Более того, похожую защиту ставят и некоторые программы-клиенты для отправки запросов. Например, SOAP Ui умеет проверять ваш запрос на well formed xml, и он просто не отправит его на сервер, если вы облажались. Экономит время на передачу данных, молодец!
А простому пользователю вашего SOAP API схема помогает понять, как составить запрос. Кто такой «простой пользователь»?
- Разработчик системы, использующей ваше API — ему надо прописать в коде, что именно отправлять из его системы в вашу.
- Тестировщик, которому надо это самое API проверить — ему надо понимать, как формируется запрос.
Да-да, в идеале у нас есть подробное ТЗ, где всё хорошо описано. Но увы и ах, такое есть не всегда. Иногда ТЗ просто нет, а иногда оно устарело. А вот схема не устареет, потому что обновляется при обновлении кода. И она как раз помогает понять, как запрос должен выглядеть.
Итого, как используется схема при разработке SOAP API:
- Наш разработчик пишет XSD-схему для API запроса: нужно передать элемент такой-то, у которого будут такие-то дочерние, с такими-то типами данных. Эти обязательные, те нет.
- Разработчик системы-заказчика, которая интегрируется с нашей, читает эту схему и строит свои запросы по ней.
- Система-заказчик отправляет запросы нам.
- Наша система проверяет запросы по XSD — если что-то не так, сразу отлуп.
- Если по XSD запрос проверку прошел — включаем бизнес-логику!
А теперь давайте посмотрим, как схема может выглядеть! Возьмем для примера метод doRegister в Users. Чтобы отправить запрос, мы должны передать email, name и password. Есть куча способов написать запрос правильно и неправильно:
Попробуем написать для него схему. В запросе должны быть 3 элемента (email, name, password) с типом «string» (строка). Пишем:
<xs:element name="doRegister ">
<xs:complexType>
<xs:sequence>
<xs:element name="email" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
А в WSDl сервиса она записана еще проще:
<message name="doRegisterRequest">
<part name="email" type="xsd:string"/>
<part name="name" type="xsd:string"/>
<part name="password" type="xsd:string"/>
</message>
Конечно, в схеме могут быть не только строковые элементы. Это могут быть числа, даты, boolean-значения и даже какие-то свои типы:
<xsd:complexType name="Test">
<xsd:sequence>
<xsd:element name="value" type="xsd:string"/>
<xsd:element name="include" type="xsd:boolean" minOccurs="0" default="true"/>
<xsd:element name="count" type="xsd:int" minOccurs="0" length="20"/>
<xsd:element name="user" type="USER" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
А еще в схеме можно ссылаться на другую схему, что упрощает написание кода — можно переиспользовать схемы для разных задач.
См также:
XSD — умный XML — полезная статья с хабра
Язык определения схем XSD — тут удобные таблички со значениями, которые можно использовать
Язык описания схем XSD (XML-Schema)
Пример XML схемы в учебнике
Официальный сайт w3.org
Практика: составляем свой запрос
Ок, теперь мы знаем, как «прочитать» запрос для API-метода в формате XML. Но как его составить по ТЗ? Давайте попробуем. Смотрим в документацию. И вот почему я даю пример из Дадаты — там классная документация!
Что, если я хочу, чтобы мне вернулись только женские ФИО, начинающиеся на «Ан»? Берем наш исходный пример:
<req>
<query>Виктор Иван</query>
<count>7</count>
</req>
В первую очередь меняем сам запрос. Теперь это уже не «Виктор Иван», а «Ан»:
<req>
<query>Ан</query>
<count>7</count>
</req>
Далее смотрим в ТЗ. Как вернуть только женские подсказки? Есть специальный параметр — gender. Название параметра — это название тегов. А внутри уже ставим пол. «Женский» по английски будет FEMALE, в документации также. Итого получили:
<req>
<query>Ан</query>
<count>7</count>
<gender>FEMALE</gender>
</req>
Ненужное можно удалить. Если нас не волнует количество подсказок, параметр count выкидываем. Ведь, согласно документации, он необязательный. Получили запрос:
<req>
<query>Ан</query>
<gender>FEMALE</gender>
</req>
Вот и все! Взяли за основу пример, поменяли одно значение, один параметр добавили, один удалили. Не так уж и сложно. Особенно, когда есть подробное ТЗ и пример )))
Попробуй сам!
Напишите запрос для метода MagicSearch в Users. Мы хотим найти всех Ивановых по полному совпадению, на которых висят актуальные задачи.
Well Formed XML
Разработчик сам решает, какой XML будет считаться правильным, а какой нет. Но есть общие правила, которые нельзя нарушать. XML должен быть well formed, то есть синтаксически корректный.
Чтобы проверить XML на синтаксис, можно использовать любой XML Validator (так и гуглите). Я рекомендую сайт w3schools. Там есть сам валидатор + описание типичных ошибок с примерами.
В готовый валидатор вы просто вставляете свой XML (например, запрос для сервера) и смотрите, всё ли с ним хорошо. Но можете проверить его и сами. Пройдитесь по правилам синтаксиса и посмотрите, следует ли им ваш запрос.
Правила well formed XML:
- Есть корневой элемент.
- У каждого элемента есть закрывающийся тег.
- Теги регистрозависимы!
- Соблюдается правильная вложенность элементов.
- Атрибуты оформлены в кавычках.
Давайте пройдемся по каждому правилу и обсудим, как нам применять их в тестировании. То есть как правильно «ломать» запрос, проверяя его на well-formed xml. Зачем это нужно? Посмотреть на фидбек от системы. Сможете ли вы по тексту ошибки понять, где именно облажались?
См также:
Сообщения об ошибках — тоже документация, тестируйте их! — зачем тестировать сообщения об ошибках
1. Есть корневой элемент
Нельзя просто положить рядышком 2 XML и полагать, что «система сама разберется, что это два запроса, а не один». Не разберется. Потому что не должна.
И если у вас будет лежать несколько тегов подряд без общего родителя — это плохой xml, не well formed. Всегда должен быть корневой элемент:
Что мы делаем для тестирования этого условия? Правильно, удаляем из нашего запроса корневые теги!
2. У каждого элемента есть закрывающийся тег
Тут все просто — если тег где-то открылся, он должен где-то закрыться. Хотите сломать? Удалите закрывающийся тег любого элемента.
Но тут стоит заметить, что тег может быть один. Если элемент пустой, мы можем обойтись одним тегом, закрыв его в конце:
<name/>
Это тоже самое, что передать в нем пустое значение
<name></name>
Аналогично сервер может вернуть нам пустое значение тега. Можно попробовать послать пустые поля в Users в методе FullUpdateUser. И в запросе это допустимо (я отправила пустым поле name1), и в ответе SOAP Ui нам именно так и отрисовывает пустые поля.
Итого — если есть открывающийся тег, должен быть закрывающийся. Либо это будет один тег со слешом в конце.
Для тестирования удаляем в запросе любой закрывающийся тег.
3. Теги регистрозависимы
Как написали открывающий — также пишем и закрывающий. ТОЧНО ТАК ЖЕ! А не так, как захотелось.
А вот для тестирования меняем регистр одной из частей. Такой XML будет невалидным
4. Правильная вложенность элементов
Элементы могут идти друг за другом
Один элемент может быть вложен в другой
Но накладываться друг на друга элементы НЕ могут!
5. Атрибуты оформлены в кавычках
Даже если вы считаете атрибут числом, он будет в кавычках:
<query attr1=“123”>Виктор Иван</query>
<query attr1=“атрибутик” attr2=“123” >Виктор Иван</query>
Для тестирования пробуем передать его без кавычек:
<query attr1=123>Виктор Иван</query>
Итого
XML (eXtensible Markup Language) используется для хранения и передачи данных.
Передача данных — это запросы и ответы в API-методах. Если вы отправляете SOAP-запрос, вы априори работаете именно с этим форматом. Потому что SOAP передает данные только в XML. Если вы используете REST, то там возможны варианты — или XML, или JSON.
Хранение данных — это когда XML встречается внутри кода. Его легко понимает как машина, так и человек. В формате XML можно описывать какие-то правила, которые будут применяться к данным, или что-то еще.
Вот пример использования XML в коде open-source проекта folks. Я не знаю, что именно делает JacksonJsonProvider, но могу «прочитать» этот код — есть функционал, который мы будем использовать (featuresToEnable), и есть тот, что нам не нужен(featuresToDisable).
Формат XML подчиняется стандартам. Синтаксически некорректный запрос даже на сервер не уйдет, его еще клиент порежет. Сначала проверка на well formed, потом уже бизнес-логика.
Правила well formed XML:
- Есть корневой элемент.
- У каждого элемента есть закрывающийся тег.
- Теги регистрозависимы!
- Соблюдается правильная вложенность элементов.
- Атрибуты оформлены в кавычках.
Если вы тестировщик, то при тестировании запросов в формате XML обязательно попробуйте нарушить каждое правило! Да, система должна уметь обрабатывать такие ошибки и возвращать адекватное сообщение об ошибке. Но далеко не всегда она это делает.
А если система публичная и возвращает пустой ответ на некорректный запрос — это плохо. Потому что разработчик другой системы налажает в запросе, а по пустому ответу даже не поймет, где именно. И будет приставать к поддержке: «Что же у меня не так?», кидая информацию по кусочкам и в виде скринов исходного кода. Оно вам надо? Нет? Тогда убедитесь, что система выдает понятное сообщение об ошибке!
См также:
Что такое XML
Учебник по XML
Изучаем XML. Эрик Рэй (книга по XML)
Заметки о XML и XLST
Что такое JSON — второй популярный формат
PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале
Расширение |
|
---|---|
MIME |
|
Разработан |
Консорциум Всемирной паутины |
Опубликован |
1998 |
Тип формата |
язык разметки |
Расширен из |
SGML |
Развит в |
XHTML, RSS, Atom, KML и множество других форматов |
Стандарт(ы) |
1.0 (Fifth Edition), 26 ноября 2008 года[4] |
Открытый формат? |
да |
XML (англ. eXtensible Markup Language — расширяемый язык разметки; произносится [экс-эм-э́л]) — рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML). XML является упрощённым подмножеством языка SGML.
Содержание
- 1 История
- 2 Правильно построенные и действительные документы XML
- 3 Синтаксис XML
- 3.1 Объявление XML
- 3.2 Корневой элемент
- 3.3 Комментарий
- 3.4 Теги
- 3.5 Спецсимволы
- 4 Сильные и слабые стороны
- 4.1 Достоинства
- 4.2 Недостатки
- 5 Отображение XML во Всемирной паутине
- 5.1 Применение стилей CSS
- 5.2 Применение XSL
- 6 Словари XML
- 7 Версии XML
- 8 См. также
- 9 Примечания
- 10 Литература
- 11 Ссылки
История
Годом рождения XML можно считать 1996 год, в конце которого появился черновой вариант спецификации языка, или 1998 год, когда эта спецификация была утверждена. А началось всё с появления в 1986 году языка SGML.
SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки) заявил о себе как гибкий, комплексный и всеохватывающий мета-язык для создания языков разметки. Несмотря на то, что понятие гипертекста появилось в 1965 году, SGML не имеет гипертекстовой модели. Создание SGML можно с уверенностью назвать попыткой объять необъятное, так как он объединяет в себе такие возможности, которые крайне редко используются все вместе. В этом и состоит его главный недостаток — сложность и, как следствие, дороговизна этого языка ограничивает его использование только крупными компаниями, которые могут позволить себе купить соответствующее программное обеспечение и нанять высокооплачиваемых специалистов. Кроме того, у небольших компаний редко возникают настолько сложные задачи, чтобы привлекать к их решению SGML.
Наиболее широко SGML применяется для создания других языков разметки, именно с его помощью был создан язык разметки гипертекстовых документов — HTML, спецификация которого была утверждена в 1992 году. Его появление было связано с необходимостью организации стремительно увеличивающегося массива документов в сети Интернет. Бурный рост количества подключений к Интернету и, соответственно, веб-серверов повлек за собой такую потребность в кодировке электронных документов, с которой не мог справиться SGML вследствие высокой трудности освоения. Появление HTML — очень простого языка разметки — быстро решило эту проблему: лёгкость в изучении и богатство средств оформления документов сделали его самым популярным языком для пользователей Интернет. Но, по мере роста количества и изменения качества документов в Сети, росли и предъявляемые к ним требования, и простота HTML превратилась в его главный недостаток. Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате на свет появился язык XML, сочетающий в себе простоту HTML, логику разметки SGML и удовлетворяющий требованиям Интернета.
Правильно построенные и действительные документы XML
Стандартом определены два уровня правильности документа XML:
- Правильно построенный (англ. well-formed). Правильно построенный документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML. Документ, который неправильно построен, не может считаться документом XML; XML-процессор (парсер) не должен обрабатывать его обычным образом и обязан классифицировать ситуацию как фатальная ошибка.
- Действительный (англ. valid). Действительный документ дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам, в целях минимизации количества ошибок, например, структуры и состава данного, конкретного документа или семейства документов. Эти правила могут быть разработаны как самим пользователем, так и сторонними разработчиками, например, разработчиками словарей или стандартов обмена данными. Обычно такие правила хранятся в специальных файлах — схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое. И если документ, например, содержит не определённое заранее в схемах название элемента, то XML-документ считается недействительным; проверяющий XML-процессор (валидатор) при проверке на соответствие правилам и схемам обязан (по выбору пользователя) сообщить об ошибке.
Данные два понятия не имеют достаточно устоявшегося стандартизированного перевода на русский язык, особенно понятие valid, которое можно также перевести, как имеющий силу, правомерный, надёжный, годный, или даже проверенный на соответствие правилам, стандартам, законам. Некоторые программисты применяют в обиходе устоявшуюся кальку «Валидный».
Синтаксис XML
В этом разделе рассматривается лишь правильное построение документов XML, то есть их синтаксис.
XML — это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых данных. Визуально структура может быть представлена как дерево элементов. Элементы XML описываются тегами.
Рассмотрим пример простого кулинарного рецепта, размеченного с помощью XML:
<?xml version="1.0" encoding="UTF-8"?> <recipe name="хлеб" preptime="5" cooktime="180"> <title>Простой хлеб</title> <composition> <ingredient amount="3" unit="стакан">Мука</ingredient> <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient> <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient> <ingredient amount="1" unit="чайная ложка">Соль</ingredient> </composition> <instructions> <step>Смешать все ингредиенты и тщательно замесить.</step> <step>Закрыть тканью и оставить на один час в тёплом помещении.</step> <!-- <step>Почитать вчерашнюю газету.</step> - это сомнительный шаг... --> <step>Замесить ещё раз, положить на противень и поставить в духовку.</step> </instructions> </recipe>
Объявление XML
Первая строка XML-документа называется объявление XML (англ. XML declaration) — это строка, указывающая версию XML. В версии 1.0 объявление XML может быть опущено, в версии 1.1 оно обязательно. Также здесь может быть указана кодировка символов и наличие внешних зависимостей.
<?xml version="1.0" encoding="UTF-8"?>
Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод-кодировки UTF-8 и UTF-16 (UTF-32 не обязателен). Признаются допустимыми, поддерживаются и широко используются (но не обязательны) другие кодировки, основанные на стандарте ISO/IEC 8859, также допустимы другие кодировки, например, русские Windows-1251, KOI-8. Часто в тегах принципиально не используют не-латинские буквы, в этом случае UTF-8 является очень удобной кодировкой — объём, как правило, меньше, чем при UTF-16; декодирование может быть выполнено как для всего документа, так и для конкретных атрибутов и текстов; весь документ не содержит запрещённых символов при попытке разбора с неправильной кодировкой.
Корневой элемент
Важнейшее обязательное синтаксическое требование заключается в том, что документ имеет только один корневой элемент (англ. root element) (также иногда называемый элемент документа (англ. document element)). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.
Следующий простейший пример — правильно построенный документ XML:
<book>Это книга: "Книжечка"</book>
Следующий пример не является корректным XML-документом, потому что имеет два корневых элемента:
<!-- ВНИМАНИЕ! Некорректный XML! --> <thing>Сущность №1</thing> <thing>Сущность №2</thing>
Комментарий
В любом месте дерева может быть размещен элемент-комментарий. XML-комментарии размещаются внутри специального тега, начинающегося с символов <!--
и заканчивающегося символами -->
. Два знака дефис (--
) внутри комментария присутствовать не могут.
<!-- Это комментарий. -->
Теги внутри комментария обрабатываться не должны.
Теги
Остальная часть этого XML-документа состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержимое. Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, <step>
, а закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, </step>
. Имена элементов, как и имена атрибутов, не могут содержать пробелы, но могут быть на любом языке, поддерживаемом кодировкой XML-документа. Имя может начинаться с буквы, подчёркивания, двоеточия. Остальными символами имени могут быть те же символы, а также цифры, дефис, точка.
Содержимым элемента (англ. content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы. Ниже приведён пример XML-элемента, который содержит открывающий тег, закрывающий тег и содержимое элемента:
<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
Кроме содержания у элемента могут быть атрибуты — пары имя-значение, добавляемые в открывающий тег после названия элемента. Значения атрибутов всегда заключаются в кавычки (одинарные или двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе. Не рекомендуется использовать разные типы кавычек для значений атрибутов одного тега.
<ingredient amount="3" unit="стакан">Мука</ingredient>
В приведённом примере у элемента «ingredient
» есть два атрибута: «amount
», имеющий значение «3», и «unit
», имеющий значение «стакан». С точки зрения XML-разметки, приведённые атрибуты не несут никакого смысла, а являются просто набором символов.
Кроме текста, элемент может содержать другие элементы:
<instructions> <step>Смешать все ингредиенты и тщательно замесить.</step> <step>Закрыть тканью и оставить на один час в тёплом помещении.</step> <step>Замесить ещё раз, положить на противень и поставить в духовку.</step> </instructions>
В данном случае элемент «instructions
» содержит три элемента «step
».
XML не допускает перекрывающихся элементов. Например, приведённый ниже фрагмент некорректен, так как элементы «em
» и «strong
» перекрываются.
<!-- ВНИМАНИЕ! Некорректный XML! --> <p>Обычный <em>акцентированный <strong>выделенный и акцентированный</em> выделенный</strong></p>
Для обозначения элемента без содержания, называемого пустым элементом, необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта. Если в DTD элемент не объявлен пустым, но в документе он не имеет содержания, для него допускается применять следующие (три) формы записи. Например:
<foo></foo> <foo /> <foo/>
Спецсимволы
В XML определены два метода записи специальных символов: ссылка на сущность и ссылка по номеру символа.
Сущностью (англ. entity) в XML называются именованные данные, обычно текстовые, в частности, спецсимволы. Ссылка на сущность (англ. entity references) указывается в том месте, где должна быть сущность и состоит из амперсанда (&
), имени сущности и точки с запятой (;
).
В XML есть несколько предопределённых сущностей, таких как lt
(ссылаться на неё можно написав <
) для левой угловой скобки и amp
(ссылка — &
) для амперсанда. Возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков.
Ниже приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:
<company-name>AT&T</company-name>
Полный список предопределённых сущностей состоит из &
(&
), <
(<
), >
(>
), '
('
) и "
("
) — последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD-документе.
Иногда бывает необходимо определить неразрывный пробел, который очень часто используется в HTML и обозначается как
. В XML такой предопределённой сущности нет, его записывают
, а использование
вызывает ошибку. Отсутствие этой весьма распространённой сущности у множества программистов зачастую вызывает удивление и это создаёт некоторые трудности при миграции своих HTML-разработок в XML.
Ссылка по номеру символа (англ. numeric character reference) выглядит как ссылка на сущность, но вместо имени сущности указывается символ #
и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод. Это обычно символы, которые невозможно закодировать напрямую, например, буква арабского алфавита в ASCII-кодированном документе. Амперсанд может быть представлен следующим образом:
<company-name>AT&T</company-name>
Существуют и другие правила, касающиеся составления корректного XML-документа.
Сильные и слабые стороны
Достоинства
- XML — язык разметки, позволяющий стандартизировать вид файлов-данных, используемых компьютерными программами, в виде текста, понятного человеку;
- XML поддерживает Юникод;
- в формате XML могут быть описаны такие структуры данных, как записи, списки, деревья, форматированный текст;
- XML — это самодокументируемый формат, который описывает структуру и имена полей так же как и значения полей;
- XML имеет строго определённый синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым. Одновременно с этим, разные разработчики не ограничены в выборе экспрессивных методов (например, можно моделировать данные, помещая значения в параметры тегов или в тело тегов, можно использовать различные языки и нотации для именования тегов и т. д.);
- XML — формат, основанный на международных стандартах;
- Иерархическая структура XML подходит для описания практически любых типов документов, кроме аудио и видео мультимедийных потоков, растровых изображений, сетевых структур данных и двоичных данных;
- XML представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
- XML не зависит от платформы;
- XML является подмножеством SGML (который используется с 1986 года). Уже накоплен большой опыт работы с языком и созданы специализированные приложения;
- XML не накладывает требований на порядок расположения атрибутов в элементе и вложенных элементов разных типов[6], что существенно облегчает выполнение требований обратной совместимости;
- В отличие от бинарных форматов, XML содержит метаданные об именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной структуры (например, для динамического построения интерфейсов[7]);
- XML имеет реализации парсеров для всех современных языков программирования;[8]
- Существует стандартный механизм преобразования XSLT, реализации которого встроены в браузеры, операционные системы, веб-серверы.
- XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях.[9]
Недостатки
- Синтаксис XML избыточен.[10]
-
- Размер XML-документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз).
- Размер XML-документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например, JSON[6], YAML, Protocol Buffers) и особенно в форматах данных, оптимизированных для конкретного случая использования.
- Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.
- XML содержит метаданные (об именах полей, классов, вложенности структур), и одновременно XML позиционируется как язык взаимодействия открытых систем. При передаче между системами большого количества объектов одного типа (одной структуры), передавать метаданные повторно нет смысла, хотя они содержатся в каждом экземпляре XML описания.
- Для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения.[11]
- Неоднозначность моделирования.
-
- Нет общепринятой методологии для моделирования данных в XML, в то время как для реляционной модели и объектно-ориентированной такие средства разработаны и базируются на реляционной алгебре, системном подходе и системном анализе.
- В природе есть множество объектов и явлений, для описания которых разные структуры данных (сетевая, реляционная, иерархическая) являются естественными, и отображение объекта в неестественную для него модель является болезненным для его сути. В случае с реляционной и иерархической моделями определены процедуры декомпозиции, обеспечивающие относительную однозначность, чего нельзя сказать о сетевой модели.[12]
- В результате большой гибкости языка и отсутствия строгих ограничений, одна и та же структура может быть представлена множеством способов (различными разработчиками), например, значение может быть записано как атрибут тега или как тело тега и т. д. Например:
<a b="1" c="1"/>
<a><b>1</b><c>1</c></a>
<a><b value="1"/><c value="1"/></a>
<a><fields b="1" c="1"/></a>
и т. д.[13]
- Поддержка многих языков в именовании тегов дает возможность назвать, например вес русским словом, в таком случае компьютер никак не сможет установить соответствия этого поля с полем weight в англоязычной версии программы и с полями в версиях модели объекта на множестве других языков.
- XML не содержит встроенной в язык поддержки типов данных. В нём нет строгой типизации, то есть понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
- Иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами и сетевой моделью данных.
-
- Выражение неиерархических данных (например графов) требует дополнительных усилий
- Кристофер Дейт, специалист в области реляционных баз данных, автор классического учебника «An Introduction to Database Systems», отмечал, что «…XML является попыткой заново изобрести иерархические базы данных…»[14].
- Пространства имён XML сложно использовать и их сложно реализовывать в XML-парсерах.
- Существуют другие, обладающие сходными с XML возможностями, текстовые форматы данных, которые обладают более высоким удобством чтения человеком (YAML, JSON, SweetXML[15], XF[16]).
Отображение XML во Всемирной паутине
Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:
- Применение стилей CSS;
- Применение XSL;
- Написание на каком-либо языке программирования обработчика XML-документа.
Без использования CSS или XSL XML-документ отображается как простой текст в большинстве веб-браузеров. Некоторые браузеры, такие как Internet Explorer, Mozilla Firefox и Opera (встроенный инструмент Opera Dragonfly) отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.
Применение стилей CSS
Процесс аналогичен применению CSS к HTML-документу для отображения.
Для применения CSS при отображении в браузере, XML-документ должен содержать специальную ссылку на таблицу стилей. Например:
<?xml-stylesheet type="text/css" href="myStyleSheet.css"?>
Это отличается от подхода HTML, где используется элемент <link>.
Применение XSL
XSL является семейством рекомендаций, описывающих языки преобразования и визуализации XML-документов. Документ трансформируется в формат, подходящий для отображения в браузере. Браузер — это наиболее частое использование XSL, но не стоит забывать, что с помощью XSL можно трансформировать XML в любой формат, например VRML, PDF, текст.
Для задания XSL трансформации (XSLT) на стороне клиента требуется наличие в XML инструкции следующего вида:
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
Словари XML
Так как XML является достаточно абстрактным языком, были разработаны словари XML.
Словарь позволяет разработчикам договориться о некотором конечном наборе имен тегов и атрибутов этих тегов. Одним из первых словарей является XHTML, который понимают большинство браузеров. XHTML часто используют для хранения и редактирования контента в CMS.
Были созданы более специализированные словари, например протокол передачи данных SOAP, который не является человеко-ориентированным и достаточно трудно читаем. Есть коммерческие словари, такие как CommerceML, xCBL и cXML которые используются для передачи данных, ориентированных на торговую деятельность, эти словари включают в себя описание системы заказов, поставщиков, продуктов и прочее.
Обычно, описывая какой-либо документ, человек для себя придумывает некоторый словарь, который потом описывается посредством DTD, XSD или просто объясняет «на пальцах» заинтересованным лицам.
Одним из словарей, получивших широкое распространение, является FB2 — словарь, описывающий формат книги, со всевозможными сносками, цитатами, даже картинками.
Версии XML
- XML 1.0
- XML 1.1
См. также
- DITA
- Редактор XML
- WDDX
- Apml
Примечания
- ↑ XML Media Types, RFC 3023 9–11. IETF (январь 2001). Архивировано из первоисточника 22 августа 2011. Проверено 4 января 2010.
- ↑ XML Media Types, RFC 3023 7–9. IETF (январь 2001). Архивировано из первоисточника 22 августа 2011. Проверено 4 января 2010.
- ↑ M. Murata, D. Kohn, and C. Lilley Internet Drafts: XML Media Types. IETF (24 сентября 2009). Архивировано из первоисточника 22 августа 2011. Проверено 10 июня 2010.
- ↑ Extensible Markup Language (XML) 1.0 (Fifth Edition)
- ↑ Extensible Markup Language (XML) 1.1 (Second Edition)
- ↑ 1 2 JSON: The Fat-Free Alternative to XML
- ↑ XML.com: Very Dynamic Web Interfaces
- ↑ XML Parsers
- ↑ Intel XML Accelerator
- ↑ David Megginson. Imperfect XML: Rants, Raves, Tips, and Tricks … from an Insider. Chapter 8
- ↑ Data File Metaformats
- ↑ Gustavo Alonso. Myths around Web Services Swiss Federal Institute of Technology, page 6
- ↑ Tim Bray. Using XML in Internet Protocols Sun Microsystems
- ↑ O’Reilly Network: An Interview with Chris Date
- ↑ SweetXML
- ↑ XFHome.org — формат обмена данными XF
Литература
- Дэвид Хантер, Джефф Рафтер, Джо Фаусетт, Эрик ван дер Влист, и др. XML. Работа с XML, 4-е издание = Beginning XML, 4th Edition. — М.: «Диалектика», 2009. — 1344 с. — ISBN 978-5-8459-1533-7
- Дэвид Хантер, Джефф Рафтер и др. XML. Базовый курс = Beginning XML. — М.: Вильямс, 2009. — 1344 с. — ISBN 978-5-8459-1533-7
- Роберт Тейбор. Реализация XML Web-служб на платформе Microsoft .NET = Microsoft .NET XML Web Services. — М.: Вильямс, 2002. — 464 с. — ISBN 0-672-32088-6
Ссылки
- XML на сайте Консорциума Всемирной паутины (W3C)
- Официальная спецификация стандарта XML 1.0 (англ.)
- Официальная спецификация стандарта XML 1.1 (англ.)
- Doug Tidwell. Введение в XML
- Новости XML и обзоры
- Документация по XML на сайте IBM статьи, форумы
Стандарты Консорциума Всемирной паутины | |
---|---|
Рекомендации |
Canonical XML • CDF • CSS • DOM • Geolocation API • HTML • ITS • MathML • OWL • P3P • PLS • RDF (Schema) • SISR • SKOS • SMIL • SOAP • SRGS • SSML • SVG • SPARQL • Timed Text • VoiceXML • WSDL • XForms • XHTML • XHTML+RDFa • XInclude • XLink • XML (Base • Encryption • Events • Information Set • namespace • Schema • Signature) • XPath / 1.0 / 2.0 • XPointer • XProc • XQuery • XSL • XSL-FO • XSLT (элементы) • XUP |
Примечания |
XAdES • XHTML+SMIL |
Рабочие проекты |
CCXML • CURIE • HTML5 • InkML • RIF • SCXML • SMIL Timesheets • sXBL • WICD • XFDL • XFrames • XBL • XHTML+MathML+SVG • XMLHttpRequest |
Guidelines |
Web Content Accessibility Guidelines |
Initiative |
Multimodal Interaction Activity • Markup Validation Service • Web Accessibility Initiative |
Deprecated |
CHTML • HDML • JSSS • PGML • VML |
Организации |
World Wide Web Foundation • SVG Working Group • WebOnt • Device Description Working Group • WHATWG |
ПО |
Agora • Argo • Arena • Amaya • CERN httpd • Libwww • Line Mode Browser |
Конференции |
IW3C2 • World Wide Web Conference • WWWC1 |
Семантическая паутина | |
---|---|
Основы | Всемирная паутина · Интернет · Гипертекст · Базы данных · Семантические сети · Онтологии · Дескрипционная логика |
Подразделы | Linked Data · Data Web · Hyperdata · Dereferenceable URIs · Rule bases · Data Spaces |
Приложения | Семантическая вики · Semantic publishing · Semantic search · Semantic computing · Semantic advertising · Semantic reasoner · Semantic matching · Semantic mapper · Semantic broker · Semantic analytics · Semantic service oriented architecture |
Связанные темы | Фолксономия · Библиотека 2.0 · Веб 2.0 Ссылки · Информационная архитектура · Управление знаниями · Коллективный интеллект · Тематические карты · Mindmapping · Метаданные · Geotagging · Web science |
Стандарты |
Синтаксис : RDF (RDF/XML · Нотация 3 · Turtle · N-Triples) · SPARQL · URI · HTTP · XML Схемы, онтологии : RDFS · OWL · Rule Interchange Format · Semantic Web Rule Language · Common Logic · Schema.org Семантическое аннотирование : RDFa · eRDF · GRDDL · Микроформаты · Микроданные Словари : FOAF · SIOC · Дублинское ядро · SKOS · UMBEL История: Plain Old Semantic HTML DAML+OIL |
Веб и веб-сайты | |
---|---|
Глобально |
Всемирная паутина (Веб 1.0 • Веб 2.0 • Web 3.0) • Семантическая паутина • Рунет |
Локально |
Сайт • Портал • Страница • Служба • Кольцо |
Виды сайтов и сервисов |
Виртуальный атлас • Баннерная сеть • Блог (платформа) • Видеохостинг • Вики (список движков • список сайтов) • Сайт-визитка • Вопрос-ответ • Закладки • Службы знакомств • Каталог ресурсов • Интернет-магазин • Микроблог • Тамблелог • Новостной сайт • Поисковая система (список) • Порносайт • Социальная сеть • BitTorrent-трекер • Файлообменник • Форум (Сервис • Имиджборд) • Фотохостинг • Чат |
Создание и обслуживание |
Разработка • Мастер • Дизайн • Вёрстка • Программирование • Юзабилити • Модератор • Системный администратор • Поисковая оптимизация (SEO) • Продвижение сайта • Опыт взаимодействия • Регистрация пользователя |
Типы макетов, страниц, сайтов |
Статический • Динамический • Фиксированный • Резиновый • Динамично эластичный • Адаптивный |
Техническое |
Веб-сервер (сравнение) • Браузер (список • сравнение) • CMF (список (англ.)) • CMS (список (англ.)) • HTTP (ответы • заголовки) • SPDY • CGI • HTML • XHTML • CSS • JavaScript • DHTML • DOM • XML • AJAX • JSON • Flash • RSS • Atom • Микроформат • favicon.ico • robots.txt • Sitemaps • Карта сайта • .htaccess |
Маркетинг |
Интернет-маркетинг • Интернет-реклама • Баннер • Контекстная реклама |
Социум и культура |
Блогосфера • Интернет-сообщество (районное) • Сетевая литература |
Документы в формате XML запускаются в любых текстовых редакторах, браузерах, а также в специальных онлайн-сервисах. Расскажем, как открыть файл XML: с тегами и без них, только для просмотра или для редактирования.
Содержание
- XML: что за формат и где часто используется
- Программы для просмотра и редактирования файлов XML
- Word
- Excel
- Стандартный «Блокнот»
- Через Google Chrome и другие браузеры
- NotePad++
- Онлайн-сервисы для редактирования файлов XML
- XmlGrid
- TutorialsPoint
XML – язык разметки. С помощью него пользователи группируют, структурируют данные, которые представлены в виде обычного текста или таблицы. Для создания структуры (иерархии) используют самописный синтаксис – теги. Их придумывает сам автор документа. На рисунке ниже показан текст, обернутый в произвольные теги: <to> (от кого послание), <from> (кому), <heading> (заголовок послания), <body> (само послание).
Язык XML используют для передачи данных между разными видами приложений без потери их структуры. Формат отличается надежностью. Повредить информацию в таких файлах сложнее, поэтому документы, которые публикуют в интернете, часто идут именно с этим расширением. Файлы xml встречаются на ГосУслугах, в Росреестре и на других государственных сайтах.
Документ xml можно открыть разными способами. Выбор программы или веб-сервиса зависит от того, в каком виде должен быть представлен текст: с тегами или без них, с возможностью редактирования или просто чтение.
Только просмотр текста/таблицы доступен в любом браузере, в Microsoft Word и Excel. Редактировать файл можно в онлайн-сервисах и в стандартном «Блокноте» в Windows.
Программы для просмотра и редактирования файлов XML
Программы Microsoft Office есть практически на каждом компьютере с Windows, поэтому часто для запуска xml не нужно ничего дополнительно устанавливать.
Если Офиса у вас нет, и вы не хотите скачивать целый пакет, чтобы открыть один единственный файл, воспользуйтесь «Блокнотом» или сторонним приложением NotePad++.
Word
Чтобы установить Word на ПК, нужно скачать целый пакет Microsoft Office, где будет сам текстовый редактор, Excel (для работы с таблицами) и Power Point (для создания презентаций).
Не все версии Microsoft Word умеют открывать документы xml без тегов. Подойдут варианты Word 2007 и выше. Версии ниже показывают информацию только с тегами.
В Word вы сможете просматривать текст, отправлять его на печать в принтер. Редактирование документа здесь недоступно.
Как открыть файл XML в Word:
- Нажмите правой кнопкой мыши на файл xml – при этом не важно, где он находится: на рабочем столе или в папке на жестком диске.
- Наведите стрелку на пункт «Открыть с помощью». Выберите программу Word. Если ее нет в списке, нажмите «Выбрать другое приложение».
- В появившемся меню нажмите на «Microsoft Word». При желании поставьте галочку под списком приложений, чтобы система открывала xml-файлы с помощью Word. Щелкните по «ОК».
- Подождите, пока запустится файл с текстом.
Excel
Если данные документа представлены в виде таблицы, используйте другую программу из пакета Microsoft Office – инструмент Excel.
Открыть документ в Excel можно таким же образом, как и в Word. Кликнуть по файлу правой клавишей, а затем в списке «Открыть с помощью» выбрать Excel.
Если Excel в списке не оказалось, используйте другой метод запуска:
- Если у вас Windows 10, нажмите на иконку в виде лупы справа от кнопки «Пуск». Вбейте в поисковую строку слово «excel».
- В верхней области панели появятся результаты поиска – нажмите на «Microsoft Excel», чтобы запустить программу.
- В интерфейсе приложения нажмите на «Файл». Выберите пункт «Открыть».
- В «Проводнике Windows» найдите документ xml. Выделите его левой кнопкой мыши и нажмите «Открыть».
- Выберите способ открытия файла, например, XML-таблица. Нажмите на «ОК».
- Подождите, пока загрузится таблица. Если она большая, процесс займет некоторое время.
Стандартный «Блокнот»
В «Блокноте» откроется текст, обернутый в теги. При необходимости вы сможете его отредактировать в окне.
Запустить файл можно через то же контекстное меню документа. Выбираете «Открыть с помощью», нажимаете на «Блокнот».
Если «Блокнота» в списке приложений не оказалось, используйте другой способ:
- Откройте пустое окно «Блокнота». Для этого найдите программу через поиск Windows 10. Введите название приложения в строке поиска – выберите «Блокнот» в результатах запроса.
- Теперь зажмите мышкой файл xml (на рабочем столе либо в папке в «Проводнике») и перетащите его на пустое окно «Блокнота».
- Подождите, пока документ откроется.
Через Google Chrome и другие браузеры
Для Google Chrome и любого другого браузера действует тот же способ запуска: через пункт «Открыть с помощью» в контекстном меню файла. Можно выбрать «Гугл Хром» или любой другой веб-обозреватель: Internet Explorer, Yandex, Opera и т. д.
Еще один способ – перетаскивание файла на окно браузера. Откройте новую пустую вкладку обозревателя (обычно это иконка в виде плюса на панели с вкладками). Перетащите файл xml мышкой на любую область пустой вкладки.
Подождите, пока браузер загрузит документ в свое окно.
NotePad++
В NotePad++ можно читать и редактировать готовые xml-документы, а также создавать новые. Приложение также работает с другими форматами веб-файлов, например, с YML.
При установке программы можно выбрать русский язык интерфейса. Плюс NotePad++ в том, что она выделяет корневую структуру кода, что упрощает работу с документом. В «Блокноте», к примеру, теги идут чуть ли не сплошным текстом.
Как открыть XML-файл в NotePad++:
- Запустите приложение и нажмите на раздел «File» («Файл»). В меню выберите «Open» («Открыть»).
- Либо сразу после запуска программы зажмите комбинации клавиш Ctrl + O. Также можно нажать на вторую иконку «Open» на панели инструментов, которая находится чуть ниже.
- В «Проводнике Windows» найдите документ xml. Выберите его левой кнопкой мыши и нажмите на «Открыть».
- Подождите, пока загрузится файл со структурой кода.
Онлайн-сервисы для редактирования файлов XML
Для работы онлайн-сервисов понадобится стабильный скоростной интернет. Рассмотрим два инструмента: XML Grid и TutorialsPoint.
XmlGrid
Сервис простой и функциональный. Здесь можно создавать свои файлы xml, редактировать готовые документы. Документ можно загрузить двумя способами: вставить ссылку на файл в интернете либо загрузить физический документ с жесткого диска ПК.
Интерфейс у сервиса на английском языке, но разобраться в нем сможет каждый:
- Откройте веб-сервис. Нажмите на «Open File», если документ находится на жестком диске вашего ПК. В «Проводнике Windows» найдите файл, выделите его левой кнопкой мыши – нажмите «Открыть».
- Кликните «Submit», чтобы система начала загрузку файла. Подождите некоторое время, пока она завершится.
- Если у вас есть ссылка на файл в интернете, кликните по «By URL». Вставьте скопированную ссылку в поле и нажмите «Submit».
- Подождите, пока откроется структура файла (список главных веток).
- Чтобы изменить название ветки, просто нажмите на ее название. Включится режим редактирования: удалите старую надпись и введите новую.
- Чтобы отредактировать текст, откройте ветку, в которой он находится. Для этого нажмите на стрелку слева от ее названия. Теперь выберите левой кнопкой синее поле для редактирования.
- Выберите пункт «Edit» в контекстном меню.
- Введите нужный текст в синее поле.
- Чтобы увидеть результат редактирования (структуру текста в целом), нажмите на стрелку над таблицей.
- В меню выберите «Show XML Source Code».
- Подождите, пока откроется дополнительное окно с текстом и тегами. Чтобы закрыть окно, нажмите на крестик в правом верхнем углу.
- Когда закончите редактирование, нажмите на иконку «Save» справа от кнопок «Validate» и «Textview». Выберите папку на жестком диске для сохранения файла.
TutorialsPoint
Сервис работает с множеством файлов: XML-документы, изображения, программные коды. Интерфейс тоже на английском языке.
Как работать в сервисе:
- Перейдите на сайт инструмента. Выберите кнопку «XML Editor».
- Нажмите на «Upload File». Выберите способ загрузки с помощью URL (ссылка на файл в интернете) либо загрузка документа с ПК («Upload from Computer»). В первом случае вставьте скопированную ранее ссылку и нажмите «Go». Во втором случае выберите файл в окне «Проводник Windows» и нажмите «Открыть».
- В разделе «Editable XML Code» появится содержимое файла xml. В нем можно менять текст и теги как в обычном редакторе.
- По мере редактирования в правой части окна «XML Tree» данные тоже меняются: вместо старого текста и тегов появляются новые. Этот режим удобно использовать для визуальной оценки файла.
- Когда закончите редактирование, нажмите на «Download» справа вверху, чтобы скачать измененный документ обратно на ПК.
Если вам нужно лишь прочитать содержимое файла xml, выбирайте браузер, Word или Excel (если документ представлен в виде таблицы, а не обычным текстом). Для редактирования можно использовать стандартный «Блокнот», стороннюю программу NotePad++ либо онлайн-сервисы: XML Grid или TutorialsPoint.
Расширение файла | .xml |
Категория файла | documents |
Программы |
Microsoft Visual Studio 2013 JAPISoft EditiX Wattle XMLwriter MacroMates TextMate |
Описание | XML — это формат файла, содержащий язык разметки. И люди, и компьютеры могут получить доступ к этому формату файла, который предназначен для хранения данных. Здесь вы можете независимо использовать языки и установить свой собственный тег. Он достаточно портативен и практически не зависит от поставщика, который представил этот формат как простой в использовании и сделал его очень популярным на онлайн-платформе. XML также важен как и HTML. |
Технические детали | Каждый XML-файл имеет корневую структуру, с помощью которой пользователи могут устанавливать свои собственные теги. Каждый отдельный XML-файл начинается с объявления XML. XML-декларация имеет свое имя, версии и кодировку этого конкретного файла. После этого определяется Базовый элемент, называемый корневым элементом. Корневой элемент может иметь дочерние элементы. Все теги имеют свой собственный конечный тег. XML-файлы могут содержать комментарии, ссылки на объекты и атрибуты. Приложения могут считывать значения и отображать нужные пользователям данные. |
MIME type |
application/xml application/x-xml text/xml |