Что такое формат файла XSL?
Файл .xsl - это XSLT-стиль - обычный текстовый XML-документ, содержащий правила преобразования, написанные на языке XSLT. XSLT (Extensible Stylesheet Language Transformations) был стандартизирован W3C в ноябре 1999 года; текущая версия, XSLT 3.0, появилась в 2017 году. Стиль не является данными и не является готовым документом: это программа, к которой XSLT-процессор применяет входной XML-файл для создания HTML, обычного текста или другого XML-вывода.
Внутри файла .xsl корневым элементом является <xsl:stylesheet> или <xsl:transform>, объявленный в пространстве имен http://www.w3.org/1999/XSL/Transform. Правила шаблонов (<xsl:template match="...">) выбирают узлы из исходного дерева; инструкции вывода, такие как <xsl:value-of>, <xsl:for-each> и <xsl:apply-templates>, формируют результат. Атрибут version на корневом элементе - 1.0, 2.0 или 3.0 - сообщает процессору, какой уровень языка применять.
.xsl и .xslt относятся к одному и тому же типу файлов; .xsl - это более старая, эпохи XSLT 1.0, раскладка, тогда как .xslt стала более распространенной с появлением XSLT 2.0 и 3.0. Исторически расширение .xsl также охватывало XSL-FO (объекты форматирования для вывода PDF), отдельную ветвь семейства XSL, которая теперь связана с файлами .fo.
Наиболее распространенные варианты использования включают преобразование XML-каналов данных в читаемые веб-страницы, преобразование конфигурационных файлов между схемами и создание PDF-файлов с помощью XSL-FO-процессоров, таких как Apache FOP.
Безопасность и защита
РИСК: LOW.xsl - это обычный текстовый XML и не содержит скомпилированного кода, поэтому чтение или редактирование его безопасно. Реалистичные риски возникают при работе с НЕДОСТОВЕРНЫМ стилем/входными данными на ПРОЦЕССОРЕ: XSLT 2.0/3.0 и некоторые расширения могут читать/писать файлы или делать сетевые вызовы (document(), unparsed-text(), расширения), а обработка XML может подвергнуться атакам XXE/расширения сущностей. Поэтому не запускайте стили из недоверенных источников с включенными расширениями/внешними сущностями. Для конечного пользователя, просто открывающего .xsl для чтения, опасности нет.
Детали формата
в двух словахПрограммы, открывающие файлы XSL
Технические подробности
глубокая спецификация| MIME-тип | application/xslt+xml (также принимается: text/xsl, application/xml, text/xml) |
| Кодировка файла | UTF-8 по умолчанию; UTF-16 и другие кодировки, объявленные в XML, разрешены; UTF-8 BOM (EF BB BF) может предшествовать объявлению XML |
| Формат контейнера | Корректный XML-документ |
| Корневой элемент | <xsl:stylesheet> или <xsl:transform> в пространстве имен http://www.w3.org/1999/XSL/Transform |
| Сигнализация версии | Атрибут version на корневом элементе: 1.0, 2.0 или 3.0 - выбирает уровень языка XSLT, который применяет процессор |
| Сигнатура файла (магические байты) | 3C 3F 78 6D 6C («<?xml») по смещению 0; для окончательной идентификации требуется корневой элемент XSLT и пространство имен, а не фиксированное магическое число |
| Типичный размер файла | 1 КБ - 200 КБ; большие корпоративные стилили могут быть больше |
| Режимы вывода | HTML, XHTML, обычный текст или XML - выбирается через объявление <xsl:output method="..."> внутри стиля |
| Базовые элементы инструкций | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| Зависимость XPath | Использует выражения XPath для адресации и выбора узлов: XPath 1.0 с XSLT 1.0, XPath 2.0 с XSLT 2.0, XPath 3.1 с XSLT 3.0 |
| URI пространства имен | http://www.w3.org/1999/XSL/Transform (обычно привязывается к префиксу xsl:) |
| Сжатие | Встроенного сжатия нет; обычный текст, может передаваться сжатым gzip на уровне HTTP |
| Поддержка процессора | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, встроенные движки браузера (XSLT 1.0) |
| Поддержка платформы | Кроссплатформенная: Windows, macOS, Linux и любая среда с соответствующим XSLT-процессором |
| Организация стандартизации | W3C (World Wide Web Consortium) |
| Выпущен | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Последняя версия | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.w3.org |
Конвертации XSL
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах XSL.