XML (eXtensible Markup Language — расширяемый язык разметки) — это язык программирования для создания логической структуры данных, их хранения и передачи в виде, удобном и для компьютера, и для человека. Отличается простотой синтаксиса и универсальностью. XML позволяет описывать документы с помощью тегов, которые можно задавать самостоятельно.
Где применяется XML
XML используется везде, где требуется выделить логическое содержимое документа для обработки. Формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому применяется в API, когда ответ от сервера поступает в виде XML-файлов.
XML позволяет:
- записывать иерархию — «один подчиняется другому»;
- размечать текст по смыслу от важного к второстепенному;
- хранить типовые данные — скрипты, настройки программ, названия чего-либо;
- размечать текст для машинного обучения;
- хранить результаты работы текстовых редакторов.
Иерархии с данными XML могут использоваться в разных языках программирования:
- XHTML — при отображении страниц в интернете;
- OWL и RDF — при описании структуры и ресурсов каталогов;
- SVG — при описании изображений в векторном формате;
- WSDL — при обращении к удаленным веб-сервисам и программам;
- XAML — при описании интерфейса приложений.
Структура XML
У XML-файлов древовидная структура. Это значит, что в них используется набор тегов, внутри которых могут находиться другие теги со своими значениями. Самый верхнеуровневый узел называется корнем, а все, что находится внизу, — листьями. Теги заключены в скобки <>.
Пример:
<?xml version=»1.0″ encoding=»UTF-8″?> <claim> <from>ООО Ромашка</from> <title>Справка</title> <body>Прошу предоставить справку…</body> </claim> <claim> <text>Прислали некачественный товар</text> <author>XXX@mail.ru</author> </claim>
XML-документ создается по правилам.
- В нем может быть элемент «пролог». Если он есть, то находится в начале документа. В примере: <?xml version=»1.0″ encoding=»UTF-8″?>. Это означает, что используется XML версии 1.0 и кодировка UTF-8. Может быть полезно, если в файле есть текст на разных языках.
- Документ обязательно должен иметь корневой элемент. Его еще называют «root». В примере: <claim>.
- У всех элементов должны быть закрывающие теги. У них есть дополнительный символ — /. В примере: </claim>, </from>, </title>, </body>.
- Все теги являются регистро-чувствительными. Это значит, что если, например, тег <claim> закрыт </Claim>, документ будет оформлен некорректно.
- Значения атрибутов должны быть заключены в кавычки. Атрибут — характеристика тега. Любые теги могут иметь атрибуты. В «прологе» это version и encoding, а «1.0» и «UTF-8» — значения.
- Вложенность тегов контролируется, поэтому важно следить за порядком открывающих и закрывающих тегов.
- В XML-коде учитываются все символы форматирования, включая переводы строк, пробелы, табуляцию.
Что такое пространство имен XML
Иногда в коде могут использоваться одинаковые по написанию объекты. Например, Claim — и жалоба, и обращение. Необходимо рассказать системе, какие правила обработки применить к первому, а какие — ко второму объекту.
<?xml version=»1.0″ encoding=»UTF-8″?> <claim> <from>ООО Ромашка</from> <title>Справка</title> <body>Прошу предоставить справку…</body> </claim> <claim> <text> Прислали некачественный товар </text> <author> XXX@mail.ru </author> </claim>
Для этого используется пространство имен — метод избежания конфликтов наименования элементов. Оно задается в виде атрибутов к тегу. Например, у нас есть корневой элемент root, который имеет два атрибута.
В первом случае мы указываем системе, что xmlns_rst=»http://www.example.org/request» — это обращения, а xmlns_clm=»http://www.example.org/claim» — жалобы, и добавляем префиксы в соответствующие части кода. Так система-обработчик сможет выдать корректный результат.
<?xml version=»1.0″ encoding=»UTF-8″?><rootxmlns_rst=»http://www.example.org/request»xmlns_clm=»http://www.example.org/claim»><rst:claim><from>ООО Ромашка</from><title>Справка</title><body>Прошу предоставить справку…</body></rst:claim><clm:claim><text> Прислали некачественный товар </text> <author> XXX@mail.ru </author></clm:claim></root>
Чем XML отличается от HTML
XML и HTML — это два взаимодополняющих друг друга языка, которые различаются назначением. Первый предназначен для хранения и передачи данных, а второй — для их отображения.
Теги HTML предопределены. Современные браузеры знают о них и могут соответствующим образом отобразить информацию, заключенную в тегах HTML. Теги XML не предопределены, они задаются разработчиком, браузеры о них не знают.
Документ XML легко преобразуется в формат HTML. Когда данные с сервера передаются в браузер, процесс выполняется автоматически. Для ручной конвертации нужно использовать инструменты, например Fconvert, Aconvert, BeautifyConverter.
Особенности XML
- Большинство приложений продолжают работать, даже если добавить или удалить часть данных. Поэтому XML и переводится как «расширяемый язык разметки». Он хорошо приспособлен для создания новых версий файлов и объектов.
- Данные хранятся в виде текста, что позволяет им быть программно- и машинно-независимыми.
- Язык понятен и людям, и машинам. Главное преимущество — читаемость. Например, для обозначения выделения текста жирным в xml достаточно написать <Жирный></Жирный>, а синтаксис HTML будет выглядеть так: <b></b>.
- Размер XML-документа больше бинарного представления тех же самых данных.
- Большинство задач можно решить с помощью простых и производительных решений, все возможности синтаксиса XML требуются редко.
- Большая гибкость и отсутствие жестких ограничений позволяют одной и той же структуре быть представленной множеством различных способов.
Как отобразить код XML
Текстовый документ с расширением .xml можно открыть с помощью следующих инструментов:
- Microsoft Excel;
- Microsoft Word;
- блокнота Windows;
- любого интернет-браузера;
- редакторов XML (например, XML Editor, Code Beautify).
Основные стандарты XML
Стандарты XML — это расширения, дающие дополнительные возможности при работе с XML-файлами. Вот некоторые из них:
- XPath — для навигации по документам XML;
- XSLT — для преобразования XML-документов в другие форматы (например, в HTML);
- XQuery — для обработки данных в XML-формате и др.;
- AJAX — для изменения содержимого веб-страницы без ее перезагрузки;
- XML DOM — для получения, изменения, добавления или удаления отдельных элементов из XML-файла;
- DTD — для определения списка разрешенных элементов для сущности в XML-файле.
Важно помнить, что XML-документ — это просто информация, заключенная в теги. Поэтому пользователь должен написать программу обработки XML-документов — их отправки, получения, хранения и отображения.
0 комментариев