Введение в XML

XML — расширяемый язык разметки. Рекомендован Консорциумом Всемирной паутины. Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров.

XML (eXtensible Markup Language — расширяемый язык разметки; произносится [икс-эм-э́ль])- набор правил и соглашений о синтаксисе, с помощью которого можно создавать собственные наборы элементов разметки. Эти элементы, в свою очередь, можно использовать для описания содержимого. Своим появлением XML обязан невозможности применения HTML для описания данных самого разного рода, которые пользователи желают распространять через Web. Так, HTML практически невозможно использовать для описания финансовых данных, руководств по инсталляции программного обеспечения, математических выражений и множества данных других типов, которыми буквально наполнена сеть Интернет. Истинное назначение языка разметки XML - описывать части документа, не касаясь способов его визуализации и отображения. Разметка позволяет структурировать данные, а уже затем эти данные можно использовать по-разному.

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

  • *.XML -файл с данными
  • *.DTD - файл определения типа документа, используется для описания структуры XML-документа. Ожидается что эти файлы DTD заменяться схемами. Схемы по своей структуре являются XML-документом, а DTD файл составляется с использованием расширенной формы Бэкуса-Наура(EBNF). DTD - файлами нельзя манипулировать: осуществлять в них поиск информации, использовать их различные представления , например, в виде HTML.
  • *.XSD - файл схемы W3C XML Shema.
  • *.XSL - файл расширенный язык таблиц стилей. Служит для описания представления данных XML -документов. XML и XSL связаны между собой приблизительно также, как HTML с Основы работы с CSS.
  • *.XDR (XML-Data Reduced) которая является частью спецификации Microsoft XML-Dаta.

Правила XML:

  • Если документ содержит символы, выходящие за рамки ASCII: Расшифровка аббревиатуры, история и применение, необходимо указать кодировку
    <?xml version="1.0" encoding="UTF-8"?>
  • XML чувствителен к регистру символов
  • XML- документ состоит из вложенных элементов
  • Элемент состоит из открывающего и закрывающего тегов, а также содержимого:
    <name>John Smit</name>
  • Теги должны быть правильно вложены друг в друга
  • Все парные теги должны быть закрыты. Возможно формирование пустых элементов – без содержимого: <br/> - пробел не обязателен!. Некоторые элементы (например, пустые) не требуют соответствующих им закрывающих тегов (хотя в этом случае могут применяться атрибуты). Подобные теги лишены содержимого, состоящего из символьных данных и разметки. Эти элементы могут включать лишь один тег. При работе с XML- кодом пустые элементы всегда следует завершать символом /> (выполнение этого условия необходимо для выполнения условия формальной корректности).
  • Должен существовать только один корневой элемент, который содержит все остальные элементы. Пустой документ (без корневого элемента) – недопустим!
  • Элементы могут иметь атрибуты: <book id="1">…</book>
  • Значения атрибутов заключаются в одинарные или двойные кавычки
  • У каждого конкретного элемента не должно быть повторяющихся атрибутов

Интеграция XML в HTML

XML можно использовать внутри HTML документа. "Острова данных" - Data islands - это технология онлайновой вставки XML данных в HTML код, разработанная Microsoft и W3C. С позиции данной технологии XML код используется как источник данных, а HTML служит средством их визуализации.

XML код может храниться во внешнем .xml файле, или может быть вставлен непосредственно в HTML документ. Для объявления используется <XML id="YourID">; для связи таблицы и источника данных используется атрибут datasrc <table datаsrc="#YourID" … >; для вывода на страницу используется атрибут datafld.

Визуальное представление данных XML при помощи CSS

XML документы могут быть визуально представлены при помощи таблиц стилей - Основы работы с CSS.

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

Для указазания этой информации броузеру в CSS используется атрибут стиля display, который может принимать значения "block" - блочное форматирование или "inline" - линейное:

book {
	display: block;
	border-bottom: 1px solid;
	padding: 3px;
	...
}

title {
	display: inline;
	...
}

Для подключения стилей существует специальная инструкция xml:stylesheet

<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/css" href="URL" ?>
...

Атрибут type указывает используемый тип стилевых таблиц. При использовании таблиц стилей XSL значение атрибута type поменяется на "text/xsl". Атрибут href указывает расположение файла таблицы стилей.

XML Schema (XSD)

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

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

Список схем для описания XML документов:

  • Microsoft XDR (XML-Data Reduced) которая является частью спецификации XML-Dаta.
  • XSD - cхема консорциума W3C XML Sсhema.
  • RELAX NG (Regular Language Description for XML, New Generation)

Шаблон XSD документа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="ENTER_NAME_OF_ROOT_ELEMENT_HERE">
		<xs:annotation>
			<xs:documentation>Comments</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>

Семейство рекомендаций консорциума W3C языков XSL (eXtensible Stylesheet Language) служит для преобразования XML файлов для представления и печати. В него входят:

  • XSLT декларативный язык преобразования XML документов;
  • XSL-FO декларативный язык постраничной верстки. XSL-FO процессор преобразует XSL-FO документ в не-XML формат, например в PDF;
  • XPath язык для выбора данных в XML файле, является частью XQuery и XSLT.
  • XQuery язык запросов для структурирования и трансформации XML данных;

Средства для работы с XML

DOM (Document Object Model), SAX (Simple API for XML), Примеры использования SimpleXML, XSLT используются для обработки XML документов.

  • DOM требует построения дерева документа в оперативной памяти (так как все элементы документа находятся в памяти, то они извлекаются быстро). Синтаксические анализаторы, основанные на SAX, вызывают методы, определенные программистом, при появлении элементов разметки (т.е. открывающих, закрывающих тегов и т.д.). Метод SAX более производителен и требует меньше ресурсов памяти. Многие DOM анализаторы используют SAX анализатор для извлечения данных из XML документа перед построением дерева документа.
  • SAX (Simple API for XML) - только чтения документа, создавать и изменять XML- документы с помощью SAX нельзя. SAX основан на событиях. SAX понимает только три кодировки (encoding): ISO-8859-1, UTF-8 и US-ASCII (Windows-1251 не поддерживается). Homepage: SAX
  • Парсер Примеры использования SimpleXML присутствует только в PHP.

📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!