XSLT

XSLT er et sprog til at transformere XML-dokumenter til andre XML-dokumenter eller andre genstande såsom HTML for websider, almindelig tekst eller til XSL Formatering objekter, som derefter kan konverteres til PDF, PostScript og PNG.

Det originale dokument ændres ikke; snarere er et nyt dokument oprettes baseret på indholdet af en eksisterende. Typisk input dokumenter er XML-filer, men noget fra, som processoren kan bygge en XQuery og XPath Data Model kan bruges, for eksempel relationelle database tabeller eller geografiske informationssystemer.

XSLT er et Turing-komplet sprog, hvilket betyder at det kan angive nogen beregning, der kan udføres af en computer.

Historie

XSLT er påvirket af funktionelle sprog, og ved tekstbaserede mønstertilpasning sprog som SNOBOL og awk. Dens mest direkte forgænger er DSSSL, hvilket gjorde for SGML hvad XSLT gør for XML.

  • XSLT 1.0: XSLT var en del af World Wide Web Consortium 's Extensible Stylesheet Language udviklingsindsats af 1998-1999 et projekt, der også producerede XSL-FO og XPath. Nogle medlemmer af standarder udvalg, der udviklede XSLT, herunder James Clark, redaktør, havde tidligere arbejdet på DSSSL. XSLT 1.0 blev udgivet som en W3C anbefaling i november 1999.
  • XSLT 2.0: efter et mislykket forsøg på at skabe en version 1.1 i 2001, XSL arbejdsgruppen gået sammen med XQuery arbejdsgruppe til at skabe XPath 2.0, med en rigere datamodel og type system baseret på XML Schema. Den seneste version er XSLT 2.0, udviklet under editorship Michael Kay. Den nåede anbefaling status i januar 2007. Fra 2010, dog XSLT 1.0 stadig udbredt, da 2,0 ikke er understøttet indbygget i webbrowsere eller til miljøer som LAMP.
  • XSLT 3.0: havde en W3C Last Call Working Udkast status fra december 2013. De vigtigste nye funktioner er:
    • Streaming transformationer: i tidligere versioner hele input dokument skal læses ind i hukommelsen, før det kunne blive behandlet, og output kunne ikke være skrevet, før behandlingen var færdig. Arbejdsgruppen Udkastet giver XML-streaming, som vil være nyttige til behandling af dokumenter for store til at passe i hukommelsen, eller når transformationer er lænket i XML Rørledninger.
    • Forbedringer af modularitet af store stylesheets.
    • Forbedret håndtering af dynamiske fejl med, for eksempel en xsl: prøv instruktion.
    • Funktioner kan nu være argumenter til andre funktioner.

Design og forarbejdning model

XSLT processor tager en eller flere XML kildedokumenter, plus en eller flere XSLT stylesheets, og behandler dem til at producere et output-dokument. I modsætning til bredt implementeret tvingende programmeringssprog som C, XSLT er deklarativ. Dette gør en given XSLT program mere modstandsdygtig at skifte til indgangen er det sandsynligt at modtage, nyttigt på et sprog, der anvendes til informationsbehandling applikationer. Den basale behandling paradigme er mønstertilpasning. Snarere end notering en absolut nødvendighed sekvens af handlinger til at udføre i en stateful miljø, skabelon regler definerer kun, hvordan man håndterer en node der matcher en bestemt XPath-lignende mønster, hvis processoren skulle ske at støde en, og indholdet af skabelonerne effektivt omfatter funktionelle udtryk, der direkte repræsenterer deres evalueret formular: resultatet træet, som er grundlaget for processorens udgang.

Processoren følger en fast algoritme. Først under forudsætning af en stylesheet allerede er læst og forberedt, processoren bygger en kildetræ fra input XML-dokument. Den behandler derefter kilden træets rod node finder bedst matchende skabelon for at knudepunkt i stilarket, og evaluerer skabelonens indhold. Instruktioner i hver skabelon generelt direkte processoren til enten oprette knuder i resultatet træet, eller at behandle flere knuder i kilden træet på samme måde som root node. Output stammer fra resultatet træet.

Processor implementeringer

  • Altova RaptorXML Server: cross-platform motor, der understøtter XSLT 1,0 og 2,0, de fleste af XPath 3.0, og nogle funktioner fra XSLT 3.0 arbejder udkast; også XQuery. Lader kommandolinje drift og grænseflader til COM, Java, and.NET og omfatter også en indbygget server.
  • libxslt er en gratis bibliotek udgivet under MIT License, der kan genbruges i kommercielle applikationer. Den er baseret på libxml og implementeret i C for hastighed og portabilitet. Det understøtter XSLT 1.0 og EXSLT udvidelser.
    • Det kan bruges på kommandolinjen via xsltproc som er inkluderet i OS X og mange Linux-distributioner, og kan bruges på Windows via Cygwin
    • WebKit og Blink layout motorer, der anvendes for eksempel i Safari og Chrome browsere henholdsvis bruger libxslt biblioteket at gøre XSL transformationer.
    • Bindinger findes for Python, Perl, Ruby, PHP, Common Lisp, Tcl, og C ++.
  • MSXML and.NET. MSXML omfatter en XSLT 1.0 processor. Fra MSXML 4.0 omfatter kommandolinjen nytte.
  • Saxon: en XSLT og XQuery 3,0 processor med open source og proprietære versioner til stand-alone drift og for Java, JavaScript and.NET.
  • QuiXSLT: en XSLT 3,0 processor opleve streaming implementeret i Java ved Innovimax og INRIA
  • Xalan: en open source XSLT 1.0 processor fra Apache Software Foundation findes enkeltstående og Java og C ++.
  • Webbrowsere: Safari, Chrome, Firefox, Opera og Internet Explorer al støtte XSLT 1.0. Ingen understøtter XSLT 2.0 indbygget, selv om tredjeparts produkter som saksisk-CE og Frameless kan levere denne funktionalitet. Browsere kan udføre on-the-fly transformationer af XML-filer og vise omdannelsen output i browservinduet. Dette gøres enten ved at indlejre den XSL i XML-dokumentet eller ved at referere en fil, der indeholder XSL instrukser fra XML-dokumentet. Sidstnævnte kan ikke arbejde med Chrome på grund af sin sikkerhed model.
  • XMLStarlet er "et sæt af kommandolinje værktøjer, som kan bruges til at transformere, forespørgsel, validere og redigere XML-dokumenter". Det kan "anvende XSLT stylesheets for XML-dokumenter", og kræver ikke Java.
  • Xuriella og plexippus-XPath er XSLT 1.0 processorer skrevet i Common Lisp.

Præstation

De fleste tidlige XSLT processorer var tolke. For nylig, kodegenerering bliver stadig mere almindeligt, ved hjælp af bærbare mellemliggende sprog som målet. Men selv de fortolkende produkter generelt har separat analyse og udførelse faser, der tillader en optimeret udtryk træ, der skal oprettes i hukommelsen og genanvendes til at udføre flere transformationer. Dette giver betydelige ydelsesmæssige fordele i online publishing applikationer, hvor den samme transformation anvendes mange gange i sekundet til forskellige kildedokumenter. Denne adskillelse er afspejlet i udformningen af ​​XSLT forarbejdning API.

Tidlige XSLT processorer havde meget få optimeringer. Stylesheet dokumenter blev læst i Document Object Modeller og processoren vil handle på dem direkte. XPath motorer blev også ikke optimeret. I stigende grad dog XSLT processorer bruger optimering teknikker findes i funktionelle programmeringssprog og database forespørgsel sprog, såsom statisk omskrivning af et udtryk træet, og doven pipeline evaluering for at reducere hukommelse footprint mellemliggende resultater. Mange processorer bruger også træ repræsentationer, der er betydeligt mere effektive end generelle formål DOM implementeringer.

I juni 2014 Debbie Lockett og Michael Kay indført et open-source benchmarking ramme for XSLT processorer kaldet XT-Speedo.

XSLT og XPath

XSLT bruger XPath til at identificere undergrupper af kildedokumentet træet og udføre beregninger. XPath giver også en række funktioner, som XSLT selv yderligere øger.

XSLT 1.0 bruger XPath 1.0. XSLT 2.0 bruger XPath 2.0. Og XSLT 3.0 bruger XPath 3.0. I tilfælde af 1,0 og 2,0, blev specifikationerne offentliggjort på samme dato. Med 3,0, men de var ikke længere synkroniseret; XPath 3.0 blev en henstilling i april 2014 mens XSLT 3.0 stadig var igangværende arbejde.

XSLT og XQuery sammenlignet

XSLT funktionaliteter overlapper med de XQuery, der oprindeligt var tænkt som en forespørgsel sprog for store samlinger af XML-dokumenter.

XSLT 2.0 og XQuery 1.0 standarder blev udviklet af separate arbejdsgrupper inden for W3C, der arbejder sammen for at sikre en fælles tilgang, hvor det er relevant. De deler de samme data model, type-system, og funktion bibliotek, og begge omfatter XPath 2.0 som sublanguage.

De to sprog, men har rod i forskellige traditioner og tjene behovene i de forskellige fællesskaber. XSLT var primært tænkt som et stilark sprog, hvis primære mål var at gøre XML for den menneskelige læser på skærmen, på nettet eller på papir. XQuery var primært tænkt som en database forespørgsel sprog i traditionen fra SQL.

Fordi de to sprog har oprindelse i forskellige samfund, XSLT er stærkere i sin håndtering af narrative dokumenter med mere fleksibel struktur, mens XQuery er stærkere i sin håndtering af data, for eksempel når du udfører relationelle slutter.

XSLT medietyper

Elementet kan eventuelt tage attributten, som gør det muligt at indstille medietypen for den resulterende output, for eksempel :. XSLT 1.0 anbefaling anbefaler de mere generelle attribut typer, og da i lang tid var der ingen registreret medietype til XSLT. I denne periode blev de facto standard. I XSLT 1.0 blev det ikke angivet, hvordan værdierne skal bruges.

Med udgivelsen af ​​XSLT 2.0, W3C anbefalede registreringen af ​​MIME medietype og det blev senere registreret med internettet Assigned Numbers Authority

Pre-1.0 arbejdsudkast af XSLT bruges i deres indlejring eksempler og denne type blev gennemført, og fortsætter med at blive fremmet af Microsoft i Internet Explorer og MSXML. Det er også almindeligt anerkendt i behandling instruktion af andre browsere. I praksis derfor brugere, der ønsker at styre transformation i browseren ved hjælp af denne behandling instruktion er forpligtet til at bruge denne uregistreret medietype.

XSLT eksempler

Prøve af indkommende XML-dokument

Eksempel 1

Denne XSLT stylesheet indeholder skabeloner til at omdanne XML-dokumentet:

Sin evaluering resulterer i et nyt XML-dokument, har en anden struktur:

Eksempel 2

Behandling følgende eksempel XSLT fil

med XML inddatafil vist ovenfor resultater i følgende XHTML:

Denne XHTML genererer output nedenfor, når afsagt i en webbrowser.

For at en webbrowser for at være i stand til automatisk at anvende en XSL transformation til et XML-dokument på skærm, kan en XML typografiark behandlingsinstruktion indsættes i XML. Så for eksempel, hvis stylesheet i eksempel 2 ovenfor var tilgængelig som "example2.xsl", følgende instruktion kunne føjes til den oprindelige indkommende XML:

I dette eksempel er teknisk forkert ifølge W3C specifikationerne, men det er den eneste medietype, der er bred opbakning på tværs af browsere fra 2009.

  0   0
Forrige artikel Baratashvili
Næste artikel CCTV kanaler

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha