Despre xmlns

Despre noi în general și despre forma lor nemodificată am vorbit ultima oară. Astăzi vom examina mai atent spațiul de nume cu un prefix. Nevoia de ele poate apărea atunci când există elemente în XML-ul de intrare care se află într-un fel de rețea. Să presupunem că avem o astfel de intrare XML:







Iar la ieșire obținem următoarele:

Pentru a depăși această mică problemă, trebuie să utilizați atributul exclude-rezultat-prefixe al elementului :

Totul, acum pe o ieșire primim HTML pur:

Și aici este o altă situație, când în XSL este posibil să doriți să folosiți spațiul de nume cu un prefix: vrem să folosim funcțiile unei extensii XSL (de exemplu, EXSLT) și pentru aceasta trebuie să o declarăm ca o rețea. Luați în considerare un exemplu de generare a unui număr aleatoriu:







Probabil că deja te-ai recunoscut ca un lepros - nenorocitul xmlns ne urmărește neîncetat. Pentru ao depăși, este posibilă metoda deja descrisă, prin intermediul prefixelor exclude-rezultat. Cu toate acestea, specificația XSL prevede pentru astfel de cazuri un alt atribut - prefixe de extensie-element. care este doar proiectat pentru a elimina extensiile prefixelor:

Din nou, rezultatul nostru a fost clar:

Dacă trebuie să eliminați nu unul, ci mai multe prefixe, atunci trebuie să le separați cu un spațiu:

Contabilul $ UTILS_ALPHABET este necesar doar pentru acest template utils.xsl, cu toate acestea, în ciuda prefixului său, acesta împiedică domeniul de aplicare global. Acest lucru poate fi corectat prin înlocuirea prefixului cu numele:

Să revenim la exemplul nostru. Am dat prefixul utils variabila, iar acesta a fost scopul principal. Acum, în orice șablon care importă utils.xsl, variabila $ utils: ALPHABET nu va fi vizibilă.

Același lucru se poate face și cu template-matches, precum și cu șabloanele numite, care în fișierul XSL sunt auxiliare și nu ar trebui folosite în afara:







Trimiteți-le prietenilor: