Extensible Stylesheet Language Transformations, або XSLT — функціональна повна за Тюрінгом мова програмування, яка використовується для програмування переробки XML-документів. При цьому вихідний документ не змінюється, натомість на основі результатів переробки створюється новий. Новий документ може бути серіалізовано (виведено) обробником в стандартний синтаксис XML, або інший формат, такий як HTML або простий текст. Найчастіше XSLT використовується для перетворення структурованих XML документів із однієї XML-схеми в іншу, або для перетворення у вебсторінки або PDF-документи.
Розширення файлу: | .xsl, .xslt |
---|---|
MIME-тип: | application/xslt+xml |
Розробник: | World Wide Web Consortium |
Тип формату: | мова для описання перетворень |
Розширений з: | XML |
Стандарт(и): | 1.0 (Recommendation), |
XSLT з'явився як результат розвитку технології Extensible Stylesheet Language (XSL) в W3C протягом 1998–1999 років. Також було створено XSL Formatting Objects (XSL-FO) та XML Path Language (XPath). Головним редактором першої версії (та, як наслідок, головним розробником мови програмування) був Джеймс Кларк. Найпоширенішою сьогодні версією є XSLT 1.0, яку було опубліковано як Recommendation (рекомендацію) W3C 16 листопада 1999 року. Значно розширена і доповнена версія 2.0, за редакцією [en], отримала статус Candidate Recommendation від W3C 3 листопада 2005 року.
Принципи роботи
Програма на мові програмування XSLT складається із послідовного описання шаблонів (англ. template rules). В кожному шаблоні вказується, що слід додати до результуючого дерева коли XSLT-інтерпретатор, обходячи, відповідно до фіксованого алгоритму, вихідне дерево, натрапляє на вершину, яка відповідає умовам шаблону. Інструкції в правилах шаблону обробляються ніби послідовно, але фактично вони утворюють функціональні вирази, які представляють результати їхнього виконання — наприклад, вершини, які слід додати до результуючого дерева.
В специфікації XSLT перетворення визначаються в термінах вихідного та результуючого дерева, для уникнення обмеження реалізацій специфічними для кожної системи прикладними програмними інтерфейсами, проблемами виділення пам'яті, мережевих ресурсів, вводу-виведення даних.
В XSLT використовується мова XPath для визначення підмножин вершин вихідного дерева та для виконання обчислень. XPath також надає низку функцій, які XSLT розширює. Такий зв'язок із XPath додає потужності та гнучкості мові програмування XSLT.
Інтерпретація правил перетворень
Кожен інтерпретатор XSLT-програм має поводитись так, наче він виконав такі кроки перед перетворенням:
- Прочитати XSLT-програму XML-аналізатором та перетворити його вміст на дерево з вершинами (англ. stylesheet tree), відповідно до моделі даних XPath. Програми XSLT можуть бути модульними, тому всі інструкції включення (
xsl:include
,xsl:import
) також мають бути оброблені на цьому етапі, для того, аби підставити шаблони і правила із інших XSLT-документів в дерево програми. - Прочитати вихідний XML-документ XML-аналізатором, та перетворити його вміст на дерево (вихідне дерево), відповідно до моделі даних XPath. Програма XSLT може посилатись і на інші XML-документи, викликаючи підпрограму
document()
. Вони, як правило, обробляються під час виконання програми, оскільки їх знаходження, можливо, має бути обчислено, або ці виклики не будуть взагалі виконуватись. - Видалити всі вершини, які містять лише пробіли із дерева програми, за виключенням тих вершин, які є підвершинами елементів
xsl:text
. Це дозволяє розставляти пробіли та відступи у вихідних текстах XSLT-програм, не створюючи побічні ефекти. - Видалити вершини, які містять лише пробіли із вихідного дерева, якщо є інструкції
xsl:strip-space
в програмі. Це дозволяє обробляти XML-документи, ігноруючи додаткові відступи. - Доповнити дерево програми трьома вбудованими правилами шаблонів які визначають стандартну поведінку для будь-якого типу вершин, які можуть трапитись під час переробки. Перше правило додається для обробки корневої вершини, або довільної вершини елемента; це правило вказує інтерпретатору на продовження роботи, та необхідність обробки кожної підвершини дерева. Друге правило додається для будь-якої текстової вершини або вершини атрибута; воно вказує інтерпретатору зробити копію цієї вершини до результуючого дерева. Третє правило вказується для будь-якої вершини коментаря або вершини інструкції інтерпретації; це правило нічого не робить. Шаблони, явно вказані в програмах, можуть перекривати деякі, або всі ці правила. Якщо в XSLT програмі не вказано жодних явних шаблонів, обробка вбудованими шаблонами призведе до рекурсивного обходу дерева, та тільки текстові вершини будуть скопійовані до результуючого дерева (атрибутні вершини не буде скопійовано, тому що вони не є підвершинами своїх елементів). Як правило, такий результат не є корисним, оскільки він є всього лише конкатенацією всіх символів, які не належать до розмітки.
Після цього інтерпретатор виконує такі операції для побудови та серіалізації результуючого дерева:
- Створити вершину-корінь результуючого дерева.
- Обробити корінь вихідного дерева. Процедуру обробки вершин описано далі.
- Серіалізувати результуюче дерево, якщо необхідно, відповідно до вказівок в інструкції
xsl:output
.
При обробці вершини виконуються такі кроки:
- Шукається шаблон, з умовою якого найкраще збігається поточна вершина. Цьому сприяє атрибут «match» кожного шаблона, та вказаний в ньому зразок (подібний до XPath вираз), який вказує вершини, до яких можна застосовувати цей шаблон. Кожному шаблону надається інтерпретатором відносний пріоритет, або порядок імпортування для полегшення розв'язання конфліктів. Порядок розташування шаблонів в вихідному тексті програми також може полегшити розв'язання конфліктів між шаблонами, яким збігаються однакові вершини, але це не впливає на порядок, в якому обробляються вершини.
- Починається виконання інструкцій із тіла шаблону. Інструкціями вважається елементи, які знаходяться в XSLT (як правило, ці елементи мають префікс
xsl:
). Ці інструкції мають спеціальну семантику, яка вказує на те, які їх слід інтерпретувати. Деякі із інструкцій вказують на додавання нових елементів до результуючого дерева; інші впливають на виконання програми. Елементи та символи, які не належать до XSLT та знаходяться в тілі шаблону, переносяться без змін в результуюче дерево. Коментарі, а також інструкції інтерпретації ігноруються.
Виконання XSLT-інструкції xsl:apply-templates
призводить до того, що для обробки обирається нова множина вершин. Вершини визначаються із допомогою XPath-виразів. Кожна вершина обробляється у відносному порядку появи у вихідному документі.
XSLT розширює бібліотеку функцій XPath та дозволяє визначати змінні в виразах. Ці змінні мають різні області видимості в XSLT-програмі, в залежності від того, де їх визначено, а їхні значення можуть походи з-за меж програми. Значення змінної не може змінюватись під час інтерпретації.
Джерела
- . Архів оригіналу за 13 червня 2006. Процитовано 21 липня 2006.
- Kepser, Stephan (2004), (англ.), International Digital Enterprise Alliance, архів оригіналу за 27 вересня 2007, процитовано 2 квітня 2008
- . Архів оригіналу за 9 січня 2019. Процитовано 2 квітня 2008.
- . Архів оригіналу за 11 травня 2008. Процитовано 2 квітня 2008.
Див. також
- [en], будь-яка мова програмування, яку створено спеціально для перетворення одних XML-документів на інші.
- XSLT належить до сімейства мов Extensible Stylesheet Language (XSL).
- Послідовне Перетворення XML — альтернативний спосіб перетворення XML-документів.
- XML pipeline
Посилання
- Документація
-
- XSLT 1.0 W3C Recommendation [ 13 серпня 2017 у Wayback Machine.]
- XSLT 2.0 W3C Candidate Recommendation [ 13 червня 2006 у Wayback Machine.]
- Zvon XSLT 1.0 Reference [ 15 липня 2006 у Wayback Machine.]
- XSL Concepts and Practical Use [ 19 липня 2006 у Wayback Machine.] від
- Zvon XSLT Tutorial [ 17 липня 2006 у Wayback Machine.]
- Бібліотеки
-
- EXSLT [ 19 липня 2006 у Wayback Machine.] — популярна спроба спільноти розробити розширення для XSLT.
- FXSL — бібліотека, яка реалізує підтримку функцій вищого рівня в XSLT. FXSL написано на XSLT.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Extensible Stylesheet Language Transformations abo XSLT funkcionalna povna za Tyuringom mova programuvannya yaka vikoristovuyetsya dlya programuvannya pererobki XML dokumentiv Pri comu vihidnij dokument ne zminyuyetsya natomist na osnovi rezultativ pererobki stvoryuyetsya novij Novij dokument mozhe buti serializovano vivedeno obrobnikom v standartnij sintaksis XML abo inshij format takij yak HTML abo prostij tekst Najchastishe XSLT vikoristovuyetsya dlya peretvorennya strukturovanih XML dokumentiv iz odniyeyi XML shemi v inshu abo dlya peretvorennya u vebstorinki abo PDF dokumenti XSL TransformationsRozshirennya fajlu xsl span style font family sans serif span xsltMIME tip application xslt xmlRozrobnik World Wide Web ConsortiumTip formatu mova dlya opisannya peretvorenRozshirenij z XMLStandart i 1 0 Recommendation 2 0 Recommendation XSLT z yavivsya yak rezultat rozvitku tehnologiyi Extensible Stylesheet Language XSL v W3C protyagom 1998 1999 rokiv Takozh bulo stvoreno XSL Formatting Objects XSL FO ta XML Path Language XPath Golovnim redaktorom pershoyi versiyi ta yak naslidok golovnim rozrobnikom movi programuvannya buv Dzhejms Klark Najposhirenishoyu sogodni versiyeyu ye XSLT 1 0 yaku bulo opublikovano yak Recommendation rekomendaciyu W3C 16 listopada 1999 roku Znachno rozshirena i dopovnena versiya 2 0 za redakciyeyu en otrimala status Candidate Recommendation vid W3C 3 listopada 2005 roku Principi robotiShema bazovih elementiv ta krokiv XSLT peretvorennya Programa na movi programuvannya XSLT skladayetsya iz poslidovnogo opisannya shabloniv angl template rules V kozhnomu shabloni vkazuyetsya sho slid dodati do rezultuyuchogo dereva koli XSLT interpretator obhodyachi vidpovidno do fiksovanogo algoritmu vihidne derevo natraplyaye na vershinu yaka vidpovidaye umovam shablonu Instrukciyi v pravilah shablonu obroblyayutsya nibi poslidovno ale faktichno voni utvoryuyut funkcionalni virazi yaki predstavlyayut rezultati yihnogo vikonannya napriklad vershini yaki slid dodati do rezultuyuchogo dereva V specifikaciyi XSLT peretvorennya viznachayutsya v terminah vihidnogo ta rezultuyuchogo dereva dlya uniknennya obmezhennya realizacij specifichnimi dlya kozhnoyi sistemi prikladnimi programnimi interfejsami problemami vidilennya pam yati merezhevih resursiv vvodu vivedennya danih V XSLT vikoristovuyetsya mova XPath dlya viznachennya pidmnozhin vershin vihidnogo dereva ta dlya vikonannya obchislen XPath takozh nadaye nizku funkcij yaki XSLT rozshiryuye Takij zv yazok iz XPath dodaye potuzhnosti ta gnuchkosti movi programuvannya XSLT Interpretaciya pravil peretvoren Kozhen interpretator XSLT program maye povoditis tak nache vin vikonav taki kroki pered peretvorennyam Prochitati XSLT programu XML analizatorom ta peretvoriti jogo vmist na derevo z vershinami angl stylesheet tree vidpovidno do modeli danih XPath Programi XSLT mozhut buti modulnimi tomu vsi instrukciyi vklyuchennya xsl include xsl import takozh mayut buti obrobleni na comu etapi dlya togo abi pidstaviti shabloni i pravila iz inshih XSLT dokumentiv v derevo programi Prochitati vihidnij XML dokument XML analizatorom ta peretvoriti jogo vmist na derevo vihidne derevo vidpovidno do modeli danih XPath Programa XSLT mozhe posilatis i na inshi XML dokumenti viklikayuchi pidprogramu document Voni yak pravilo obroblyayutsya pid chas vikonannya programi oskilki yih znahodzhennya mozhlivo maye buti obchisleno abo ci vikliki ne budut vzagali vikonuvatis Vidaliti vsi vershini yaki mistyat lishe probili iz dereva programi za viklyuchennyam tih vershin yaki ye pidvershinami elementiv xsl text Ce dozvolyaye rozstavlyati probili ta vidstupi u vihidnih tekstah XSLT program ne stvoryuyuchi pobichni efekti Vidaliti vershini yaki mistyat lishe probili iz vihidnogo dereva yaksho ye instrukciyi xsl strip space v programi Ce dozvolyaye obroblyati XML dokumenti ignoruyuchi dodatkovi vidstupi Dopovniti derevo programi troma vbudovanimi pravilami shabloniv yaki viznachayut standartnu povedinku dlya bud yakogo tipu vershin yaki mozhut trapitis pid chas pererobki Pershe pravilo dodayetsya dlya obrobki kornevoyi vershini abo dovilnoyi vershini elementa ce pravilo vkazuye interpretatoru na prodovzhennya roboti ta neobhidnist obrobki kozhnoyi pidvershini dereva Druge pravilo dodayetsya dlya bud yakoyi tekstovoyi vershini abo vershini atributa vono vkazuye interpretatoru zrobiti kopiyu ciyeyi vershini do rezultuyuchogo dereva Tretye pravilo vkazuyetsya dlya bud yakoyi vershini komentarya abo vershini instrukciyi interpretaciyi ce pravilo nichogo ne robit Shabloni yavno vkazani v programah mozhut perekrivati deyaki abo vsi ci pravila Yaksho v XSLT programi ne vkazano zhodnih yavnih shabloniv obrobka vbudovanimi shablonami prizvede do rekursivnogo obhodu dereva ta tilki tekstovi vershini budut skopijovani do rezultuyuchogo dereva atributni vershini ne bude skopijovano tomu sho voni ne ye pidvershinami svoyih elementiv Yak pravilo takij rezultat ne ye korisnim oskilki vin ye vsogo lishe konkatenaciyeyu vsih simvoliv yaki ne nalezhat do rozmitki Pislya cogo interpretator vikonuye taki operaciyi dlya pobudovi ta serializaciyi rezultuyuchogo dereva Stvoriti vershinu korin rezultuyuchogo dereva Obrobiti korin vihidnogo dereva Proceduru obrobki vershin opisano dali Serializuvati rezultuyuche derevo yaksho neobhidno vidpovidno do vkazivok v instrukciyi xsl output Pri obrobci vershini vikonuyutsya taki kroki Shukayetsya shablon z umovoyu yakogo najkrashe zbigayetsya potochna vershina Comu spriyaye atribut match kozhnogo shablona ta vkazanij v nomu zrazok podibnij do XPath viraz yakij vkazuye vershini do yakih mozhna zastosovuvati cej shablon Kozhnomu shablonu nadayetsya interpretatorom vidnosnij prioritet abo poryadok importuvannya dlya polegshennya rozv yazannya konfliktiv Poryadok roztashuvannya shabloniv v vihidnomu teksti programi takozh mozhe polegshiti rozv yazannya konfliktiv mizh shablonami yakim zbigayutsya odnakovi vershini ale ce ne vplivaye na poryadok v yakomu obroblyayutsya vershini Pochinayetsya vikonannya instrukcij iz tila shablonu Instrukciyami vvazhayetsya elementi yaki znahodyatsya v XSLT yak pravilo ci elementi mayut prefiks xsl Ci instrukciyi mayut specialnu semantiku yaka vkazuye na te yaki yih slid interpretuvati Deyaki iz instrukcij vkazuyut na dodavannya novih elementiv do rezultuyuchogo dereva inshi vplivayut na vikonannya programi Elementi ta simvoli yaki ne nalezhat do XSLT ta znahodyatsya v tili shablonu perenosyatsya bez zmin v rezultuyuche derevo Komentari a takozh instrukciyi interpretaciyi ignoruyutsya Vikonannya XSLT instrukciyi xsl apply templates prizvodit do togo sho dlya obrobki obirayetsya nova mnozhina vershin Vershini viznachayutsya iz dopomogoyu XPath viraziv Kozhna vershina obroblyayetsya u vidnosnomu poryadku poyavi u vihidnomu dokumenti XSLT rozshiryuye biblioteku funkcij XPath ta dozvolyaye viznachati zminni v virazah Ci zminni mayut rizni oblasti vidimosti v XSLT programi v zalezhnosti vid togo de yih viznacheno a yihni znachennya mozhut pohodi z za mezh programi Znachennya zminnoyi ne mozhe zminyuvatis pid chas interpretaciyi Dzherela Arhiv originalu za 13 chervnya 2006 Procitovano 21 lipnya 2006 Kepser Stephan 2004 angl International Digital Enterprise Alliance arhiv originalu za 27 veresnya 2007 procitovano 2 kvitnya 2008 Arhiv originalu za 9 sichnya 2019 Procitovano 2 kvitnya 2008 Arhiv originalu za 11 travnya 2008 Procitovano 2 kvitnya 2008 Div takozh en bud yaka mova programuvannya yaku stvoreno specialno dlya peretvorennya odnih XML dokumentiv na inshi XSLT nalezhit do simejstva mov Extensible Stylesheet Language XSL Poslidovne Peretvorennya XML alternativnij sposib peretvorennya XML dokumentiv XML pipelinePosilannyaDokumentaciya XSLT 1 0 W3C Recommendation 13 serpnya 2017 u Wayback Machine XSLT 2 0 W3C Candidate Recommendation 13 chervnya 2006 u Wayback Machine Zvon XSLT 1 0 Reference 15 lipnya 2006 u Wayback Machine XSL Concepts and Practical Use 19 lipnya 2006 u Wayback Machine vid Zvon XSLT Tutorial 17 lipnya 2006 u Wayback Machine Biblioteki EXSLT 19 lipnya 2006 u Wayback Machine populyarna sproba spilnoti rozrobiti rozshirennya dlya XSLT FXSL biblioteka yaka realizuye pidtrimku funkcij vishogo rivnya v XSLT FXSL napisano na XSLT