XML (eXtensible Markup Language) — язык разметки для структурированного представления и обмена данными. Имена элементов определяет формат конкретного документа. В Joomla XML применяется, в частности, в манифестах расширений, описаниях форм и источниках обновлений.
Структура и синтаксис
XML-документ имеет один корневой элемент. Вложенные элементы должны быть правильно закрыты, имена чувствительны к регистру, а значения атрибутов заключают в кавычки. Специальные символы в текстовых данных экранируют: например, амперсанд записывают через соответствующую сущность.
Соблюдение синтаксиса делает документ well-formed. Это не означает, что он соответствует требованиям приложения. Допустимую структуру дополнительно может определять схема. Пространства имён позволяют различать одинаковые имена элементов разных форматов.
XML, HTML и JSON
HTML описывает веб-документ с определённой семантикой элементов. XML позволяет задавать собственную структуру данных. JSON представляет данные через объекты, массивы и значения. Выбор зависит от интерфейса обмена, а не от того, какой формат «новее».
Применение в Joomla
Манифест сообщает установщику Joomla тип расширения, его версию, файлы и параметры. Корневой элемент extension содержит сведения об устанавливаемом расширении, name задаёт название, а version — версию. Одного правильно оформленного XML недостаточно: пакет должен содержать соответствующие файлы.
Описания форм Joomla задают поля и их параметры, а XML источника обновлений помогает системе находить подходящие пакеты. Требования к каждому виду документа различаются. Современные формы не следует определять исключительно через старое имя класса JForm.
Проверка и безопасность
Проверяйте кодировку, вложенность и соответствие документа ожидаемому формату. При обработке чужого XML ограничивайте размер входа и возможности внешних сущностей, чтобы парсер не обращался к нежелательным файлам или сетевым ресурсам.
Итог
XML описывает структурированные данные и служебные документы Joomla. Важны и правильный синтаксис, и соответствие конкретному формату, который ожидает приложение.