Язык преобразования XML
Преобразование данных |
---|
Концепции |
Языки трансформации |
Техники и трансформации |
Приложения |
Связанный |
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2011 г. ) |
Язык преобразования XML — это язык программирования, разработанный специально для преобразования входного XML- документа в выходной документ, который удовлетворяет некоторой конкретной цели.
Есть два особых случая трансформации:
- XML в XML : выходной документ является документом XML.
- XML в данные : выходной документ представляет собой поток байтов .
XML в XML
[ редактировать ]Поскольку преобразование XML в XML выводит документ XML, XML в XML цепочки преобразования образуют конвейеры XML .
XML в данные
[ редактировать ]Преобразование XML (расширяемый язык разметки) в данные содержит несколько важных случаев. Наиболее примечательным из них является преобразование XML в HTML (язык разметки гипертекста) , поскольку HTML документ не является документом XML.
Истоки SGML
[ редактировать ]Самые ранние языки преобразования появились еще до появления XML как профиля SGML и, таким образом, принимали входные данные в произвольном SGML, а не в конкретном XML. SGML-SGML К ним относятся формат определения процесса соединения (LPD), определенный как часть самого стандарта SGML; в SGML (но не XML) на файл LPD можно ссылаться из самого документа с помощью LINKTYPE
декларация, аналогично DOCTYPE
объявление, используемое для DTD . [1] Другие подобные языки преобразования, устраняющие некоторые недостатки LPD, включают язык семантики и спецификации стиля документа (DSSSL) и OmniMark . [2] Новые языки преобразования, как правило, ориентированы конкретно на XML и поэтому принимают только XML, а не произвольный SGML.
Существующие языки
[ редактировать ]- XSLT : XSLT — самый известный язык преобразования XML. Рекомендация W3C XSLT 1.0 была опубликована в 1999 году вместе с XPath 1.0 и с тех пор широко применяется. XSLT 2.0 стал рекомендацией W3C с января 2007 года, и реализации спецификации, такие как Saxon 8, уже доступны.
- XQuery : XQuery — полнофункциональный язык, несмотря на то, что в названии есть слово «query». Это стандарт де-факто, используемый Microsoft, Oracle, DB2, MarkLogic и т. д., он является основой модели веб-программирования XRX и имеет рекомендации W3C для версий 1.0. XQuery не написан на XML, как XSLT, поэтому его синтаксис намного проще. Язык основан на XPath 2.0 . Программы XQuery не могут иметь побочных эффектов , как и XSLT, и предоставляют почти те же возможности (например: объявление переменных и функций, перебор последовательностей, использование типов схем W3C), хотя синтаксис программ совершенно другой. XQuery управляется логикой и использует FOR, WHERE и композицию функций (например, fn:concat("<html>",generate-body(), "</html>")). Напротив, XSLT управляется данными (модель принудительной обработки), где определенные условия входного документа запускают выполнение шаблонов, а не выполнение кода в том порядке, в котором он написан.
- XProc : XPoc — это язык конвейера XML. Рекомендации XProc 1.0 W3C были опубликованы в мае 2010 года.
- Преобразование XML-документа : стандарт Microsoft для выполнения простых преобразований XML-документов. В первую очередь для создания файлов IIS Web.config (преобразования конфигурации), другие реализации позволяют использовать его для общих файлов конфигурации во время сборки (Slow Cheetah) или из командной строки (CTT).
- STX : STX (Streaming Transformations for XML) основан на XSLT, но был разработан для обеспечения однопроходного процесса преобразования, который никогда не препятствует потоковой передаче. Реализации доступны на Java ( Joost ) и Perl ( XML::STX ).
- XML Script : XML Script — это императивный язык сценариев, созданный на основе Perl и использующий синтаксис XML. XML Script поддерживает XPath и собственный DSLPath для выбора узлов из входного дерева.
- FXT : FXT — это функциональный инструмент преобразования XML, реализованный в Standard ML .
- XDuce : XDuce — это типизированный язык с упрощенным синтаксисом по сравнению с XSLT. Написано на МЛ.
- CDuce : CDuce расширяет XDuce общего назначения до функционального языка программирования , см. домашнюю страницу CDuce .
- XACT : XACT — это система на основе Java для программирования преобразований XML. Примечательные функции включают шаблоны XML в качестве неизменяемых значений и статический анализ для обеспечения безопасности типов с использованием типов XML-схемы ( домашняя страница XACT ).
- XFun : XFun — это функциональный язык X-Fun для определения преобразований между деревьями данных XML, предоставляющий инструкции по уничтожению. Фриша X-Fun можно понимать как расширение языка XStream с уничтожением выходных данных, тогда как сопоставление с образцом заменяется навигацией по дереву с выражениями XPath. ( [1] )
- XStream : XStream — это простой функциональный язык преобразования XML-документов, основанный на CAML. Преобразования XML, написанные в XStream, оцениваются в потоковом режиме: если это возможно, части вывода вычисляются и создаются, пока входной документ еще анализируется. Таким образом, некоторые преобразования можно применять к огромным XML-документам, которые даже не помещаются в памяти. Компилятор XStream распространяется на условиях CeCILL лицензии свободного программного обеспечения .
- Xtatic : Xtatic применяет методы из XDuce в C# , см. домашнюю страницу Xtatic .
- HaXml : HaXml — это библиотека и набор инструментов для написания преобразований XML в Haskell . См. также эту статью о HaXml, опубликованную в 1999 году , и эту статью IBM DeveloperWorks . См. также более позднюю версию HXML и Haskell XML Toolbox ( HXT ), которая основана на идеях HaXml и HXML, но использует более общий подход к обработке XML.
- XMLambda : XMLambda (XMλ) описан в статье 1999 года Эрика Мейера и Марка Шилдса . Никакой реализации нет. См. домашнюю страницу XMLambda .
- FleXML : FleXML — это язык обработки XML, впервые реализованный Кристофером Роузом. Его подход заключается в добавлении действий в XML DTD, определяющих инструкции обработки для любого подмножества правил DTD.
- Scala : Scala — это функциональный и объектно-ориентированный язык общего назначения со специальной поддержкой преобразования XML в форме сопоставления шаблонов XML, литералов и выражений, а также стандартных библиотек XML. [3]
- LINQ to XML : LINQ to XML — это синтаксис .NET 3.5 и API программирования, доступные на C#, VB и некоторых других языках .NET. LINQ в первую очередь разработан как язык запросов, но он также поддерживает преобразования XML.
См. также
[ редактировать ]- Фильтры (программное обеспечение)
- Фильтр (Unix)
- Веб-шаблон
- Система веб-шаблонов
- Шаблонизатор (веб)
- Тритий (язык программирования)
Ссылки
[ редактировать ]- ^ Гольдфарб, Чарльз Ф. (1990). Раздел 12 — Объявления разметки: определение процесса связи . Оксфорд : Кларендон Пресс . стр. 433–449. ISBN 0-19-853737-9 .
{{cite book}}
:|work=
игнорируется ( помогите ) - ^ Кимбер, В. Элиот. «Почему мне нужна функция SGML LINK» . CoverPages.org .
- ^ Фанчеллу, Дино; Нармонтас, Уильям (июнь 2014 г.). «Обработка XML в Scala». XML Лондон 2014 : 63–75. doi : 10.14337/XMLLondon14.Narmontas01 (неактивен 22 июня 2024 г.). ISBN 978-0-9926471-1-7 .
{{cite journal}}
: CS1 maint: DOI неактивен по состоянию на июнь 2024 г. ( ссылка )