La prima regola corrisponde l'elemento radice (/), e costruisce un quadro di documento XHTML, proprio come nell'esempio precedente. In questo caso, tuttavia, la norma aggiunge un elemento di tabella e comprende una xsl: applytemplates regola per lasciare che il processore XSL costruire la tabella dal resto del documento. La seconda regola corrisponde a qualsiasi articolo di elementi che incontra e costruisce le righe della tabella (tr elementi ) per contenere il loro contenuto. Ancora una volta, xsl: apply-templates permette al processore di continuare a lavorare sui contenuti dell'elemento articolo. L'ultima regola corrisponde a qualsiasi elemento figlio di un elemento articolo (articolo / *) e consente di evitare il compito di creare regole per l'autore , titolo, pubyear, e altri elementi in particolare. Queste diventano le celle della tabella (elementi TD), e xsl: apply-templates viene applicato ancora una volta. Il XSL-generated XHTML così come appare in un browser Web:

Questo esempio è abbastanza semplice, perché non ha bisogno di creare o accedere a qualsiasi attributi. Per rendere queste voci referenceable, utilizzare il codice ISBN di ogni articolo per creare un attributo id sulla riga della tabella. Hai solo bisogno di cambiare la regola che gestisce l'elemento articolo, anche se si raggiunge l'elemento in isbn per creare l'attributo.

   
Xsl: element attributo consente di aggiungere attributi l'elemento corrente - in questo caso l'elemento tr. Xsl: value-of elemento riempie il contenuto in base al valore del suo attributo select. Il valore dell'attributo select è ". / ISBN", nel senso di partire dal nodo corrente sorgenti e di trovare un elemento ISBN bambino. Xsl: apply-templates elemento, allora lascia il resto della trasformazione continua come al solito. Le nuove voci nella tabella di apparire come segue:
Allo stesso modo, si può raggiungere in attributi per i loro valori utilizzando XPath's @ sintassi di nome per gli attributi di riferimento. Ricordate, i valori degli attributi vengono aggiunti per impostazione predefinita per il contenuto a causa delle regole predefinite incorporato in XSLT. Si consiglia di ignorare questo comportamento, come illustrato di seguito:

   
Ciò consente la regola di default per il testo si applicano, ma impedisce la visualizzazione di attributi. XSLT offre un enorme numero di opzioni che si basano su queste strutture di base e consentono di ordinare, ricombinare, si separano, o modificare il contenuto.
un articolo presentato da Albert Lichtblau


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo è "Moving Forward in XML utilizzando XSL per generare XHTML" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.

Moving Forward in XML utilizzando XSL per generare XHTML

Mentre XML ha ereditato una quantità enorme di infrastrutture comuni al mondo dello sviluppo Web, la sua ascendenza SGML ha portato con sé alcuni strumenti e le innovazioni che possono sembrare sorprendentemente familiare agli sviluppatori web. Extensible Stylesheet Language (XSL) e Extensible Stylesheet Language Transformations (XSLT) sono stati originariamente sviluppati come industriale strumenti di formattazione di forza, ma hanno applicazione XHTML lavoro, come pure. XSLT è probabilmente più interessante per gli sviluppatori che vogliono lavorare con il linguaggio HTML XSL, perché è in gran parte sulla creazione di un vocabolario di markup per sostituire HTML per la formattazione.

  

NotaIn questo articolo si mostra cosa ha XSL per offrire agli sviluppatori XHTML, ma non è una vera e XSL scala tutorial. XSL, anche solo XSLT, è un tema enorme degno di un proprio articolo il trattamento di lunghezza. Potreste voler esplorare Elliotte Rusty Harold's XMLBible (Articoli da IDG, 1999) per un'approfondita introduzione a XPath e XSLT. Ken Holman ha una serie completa di materiali di formazione disponibili attraverso http://www.cranesoftwrights.com/training/index.htm: il primo e gli ultimi due articoli sono disponibili come download gratuiti. XSL La specifica è disponibile all'indirizzo http://www .w3.org/TR/xsl /. La specifica XSLT, che si applica in questo articolo, è disponibile all'indirizzo http://www.w3.org/TR/xslt. La specifica XPath, XSLT che utilizza, è disponibile all'indirizzo http://www.w3.org/TR/xpath. Se hai bisogno di aiuto XSL, XSL-List (a http://www.mulberrytech.com/xsl/xsl-list/index.html) è un ottimo punto di partenza.

Introduzione a XSLXSL, mentre è stato molto più lento in fase di sviluppo di XML, le idee dietro di esso si fusero intorno allo stesso tempo come XML stesso. Radici XML sono in SGML, XSL, mentre le radici sono in un linguaggio di stile per SGML - l' Document Style Semantics and Specification Language (DSSSL). Mentre XML è stato in gran parte una semplificazione di SGML, XSL ha dimostrato più di un erede e reinterpreter di DSSSL. In effetti, XSL fa alcuni aspetti del DSSSL che non aveva ricevuto un uso molto (trasformazioni) più centrale per il progetto e concilia il modello DSSSL per la formattazione dei documenti, in qualche misura con fogli di stile CSS del W3C. XSL è in qualche modo ad un concorrente di CSS , anche se i suoi fautori li considerano abbastanza differente che non competono ufficialmente. Mentre descrive CSS per la formattazione particolari strutture all'interno di un documento, descrive una trasformazione XSL del documento originale per una serie di oggetti di formattazione - forse la riorganizzazione, il filtraggio, o addirittura eliminando le strutture originali lungo la strada. Mentre CSS è annotativi, XSL è trasformativo. CSS funziona bene in ambienti in cui i documenti sono statici o generati da codice che non è formato-specifici; XSL, d'altra parte, presuppone che è molto più lavoro da fare nella costruzione di un documento. Extensible Stylesheet Language Transformations (XSLT ) processori prendere un documento XML come input, l'albero di origine, e creare una struttura risultato basato sul modello norme previste nel foglio di stile. Quell'albero risultato può contenere XSL Formatting Objects (spesso chiamato XSL-Fos) O può contenere altre informazioni, di solito HTML o XHTML. L'uscita è già un albero, e il processore XSLT deve reserialize comunque, in modo da convertirlo in XHTML è facile. Efficace, XSLT fornisce un modo semplice per convertire i documenti XML in XHTML, rendendo più semplice per presentare il contenuto di documenti XML per i browser che non sanno nulla di XML stesso. (Documenti in ingresso devono essere XSLT XML - non è possibile utilizzare questo strumento in HTML che non è conforme alle regole di XHTML.)

NotaXSL Formatting Objects fornisce un vocabolario XML per descrivere esplicitamente il testo formattato. Fos XSL-sono ancora in fase di sviluppo presso il W3C e non hanno ricevuto attuazione a livello (almeno nei browser) ancora. Per le specifiche più recenti, vedi http://www.w3.org/TR/xsl/. Quando sono pronti, XSL fornirà una soluzione completa per la formattazione, utilizzando le trasformazioni XSLT per convertire documenti in formato oggetti che descrivono la presentazione delle informazioni. L'altra possibilità che XSLT si apre, ma che non è ancora ampiamente attuato, è l'invio di informazioni XML ai clienti. I clienti quindi eseguire la trasformazione XSLT a livello locale. Maggior parte dei server processi multipli, richieste simultanee, mentre la maggior parte dei browser più o meno sono inattivi. Questo ridistribuisce il trattamento per una migliore risposta del server. Finora, tuttavia, Microsoft è l'unico fornitore attivamente perseguendo questa strategia, la vecchia versione di XSLT che attualmente supporta Microsoft è decisamente diversa da quella standard. (Il progetto Mozilla sta portando avanti il supporto XSLT standard, anche se ciò che rimane nelle fasi iniziali.) Per ora, la maggior parte di trasformazione XSLT deve avvenire sul server in cui gli sviluppatori hanno maggiore controllo sull'ambiente.

Trasformazione XSLT è abbastanza resource-intensive, che richiedono la costruzione di alberi di oggetti in memoria. Questo può diventare un onere per i server che un numero elevato di richieste di processo o di un processo documenti voluminosi. Ci sono diverse strategie per evitare questo collo di bottiglia - di comprare più hardware, per l'invio di trasformazione per il cliente, quando possibile, di modo aggressivo il caching dei documenti risultato prodotto da trasformazioni al fine di evitare l'elaborazione del documento stesso e le combinazioni di foglio di stile ripetutamente. In alcuni casi, l'elaborazione batch è possibile effettuare conversioni prima che gli utenti effettivamente recuperare i file e mantenere il carico del server minimo.

NotaXSLT è abbastanza nuova che non è una caratteristica standard di ambienti server più ancora, anche se questo sta cambiando lentamente. Ci sono un certo numero di processori XSLT diversa disposizione, la maggior parte dei quali sono conformi alla raccomandazione W3C vicino. Molti di loro sono distribuiti liberamente o open source, che richiede solo una certa integrazione con l'ambiente di elaborazione. Per un elenco di processori XSLT, vedere http://www.xslinfo.com/. Notizie sui recenti sviluppi in XSLT è disponibile presso http://xmlhack.com/list.php?cat=2.

Principi di base per la trasformazioneFogli di stile XSLT sono documenti XML che combinano un vocabolario XSLT con il vocabolario che l'informazione si trasforma in - in questo caso, XHTML. (In alcuni casi, un vocabolario di estensione per un processore particolare anche può apparire.) Il vocabolario XSLT definisce le regole per il trattamento, mentre il vocabolario fornisce altre parti e le strutture che vengono assemblati nel documento risultato.

Preliminari

Un xsl: stylesheet possono contenere l'intero foglio di stile:


    ... foglio di stile ...
Xsl: trasformare elemento utilizzato allo stesso modo può essere sostituito da xsl: stylesheet, tecnicamente, nessuno di questi elementi è necessario. E 'anche una buona idea per definire eventuali spazi dei nomi si prevede di utilizzare nel documento risultato qui. Un foglio di stile XSLT può essere un qualsiasi documento XML, e solo gli elementi utilizzando il namespace XSL vengono elaborati. Nonostante che la flessibilità incredibile, let's stick ad un approccio più conservatore. Il pezzo successivo è necessario per la creazione di XHTML è l'elemento xsl: output, che consente di specificare il tipo di output che si sta creando e consente di accedere alla dichiarazione DOCTYPE. Mentre la maggior parte processori XSLT fornire un metodo di output HTML, questo lascia fuori fine tag (o etichette vuote) per gli elementi vuoti e possono lasciare fuori i tag di fine per alcuni elementi di contenuto. Utilizzando il metodo di output xml deve bastare fino a quando gli sviluppatori di iniziare a sostenere XHTML esplicitamente.
  

AttenzioneMentre i processori XSL produrre XHTML valido utilizzando l'impostazione XML, che non fanno le cose come inserire lo spazio prima della /> di un tag vuoto per produrre
invece di
. È possibile fare una ricerca e sostituzione, dopo la trasformazione di aggiungere lo spazio, o aggiungere attributi fittizi (come la class = "") per mantenere i browser più vecchi di soffocamento per i tag vuoti. Se stai facendo l'elaborazione in batch, piuttosto che la generazione dei file al volo, è anche possibile utilizzare il programma Tidy (di cui all'articolo 10) sui risultati di aggiungere lo spazio necessario. Trattino L'attributo è utile se si vuole produrre più leggibile markup, ma non hanno un grosso effetto sulla produzione visto nella finestra del browser a causa del modo HTML e XHTML scartare spazi extra. I prossimi due attributi, doctype-sistema pubblico e doctype-, sono fondamentali se si sta creando strettamente conforme XHTML, perché consentono di specificare il pubblico e gli identificatori di sistema del vocabolario di XHTML si sta utilizzando. L'esempio qui riportato utilizza il identificatori per l'XHTML 1.0 DTD rigorosa, ma si può sostituire con questi valori per la DTD di transizione o frameset o con XHTML 1.1 (e al di là di identificatori quando saranno disponibili).

L'ultimo attributo, omettere l'opzione-xml-dichiarazione, mantiene la dichiarazione XML di apparire nella parte anteriore del documento, quando il suo valore è impostato su yes. Se si genera XHTML che deve andare a una vasta gamma di browser, i browser in particolare anziani che a volte visualizzare la dichiarazione XML nella parte superiore dello schermo, questo è probabilmente una buona idea. Se siete meno interessati a garantire la compatibilità e più interessati a trasmettere la compatibilità con le codifiche di caratteri più per l'internazionalizzazione, è necessario impostare questo valore a nessuno.

Creazione del documento di risultatoOra che avete specificato la forma complessiva del documento di risultato, è necessario iniziare a descrivere il suo contenuto. XSLT consente di specificare il contenuto utilizzando un mix di documento di risultato e XSLT elementi e attributi specifici che costruiscono il documento dalle informazioni nel documento di origine. XSLT fornisce alcuni comportamento predefinito che imposta il processore di esplorare l'albero del documento fino a quando non trova una corrispondenza, e di una regola che copia il testo di nodi. Per il primo esempio, si esegue l'override di queste regole e di creare un foglio di stile che ignora completamente il contenuto delle sorgenti e produce solo XHTML:

 Ciao a tutti! 

Ciao a tutti!

Ciao a tutti!

L'output è simile al seguente:

Ciao a tutti!

Ciao a tutti!

Mentre questo semplice esempio, non è convincente, si prevede una fondazione per il lavoro futuro. L'uscita è notevole per molte cose, compresa la gestione corretta della dichiarazione XML (che hai detto che non si vuole) e il DOCTYPE, che si imposta. Notevole è anche il cambiamento nella sequenza degli attributi per l'elemento html - per l'attributo non è considerato importante in XML, HTML o XHTML, XSLT e non mantiene nemmeno. Xsl: template elemento fa il vero lavoro, ma specifica sia il contenuto a cui devono essere applicate e dei risultati che dovrebbero essere incluse. Perché hai appena sostituito l'intero documento, è partita con l'elemento radice (/, un'espressione XPath). Questo pezzo di codice quindi sostituisce l'elemento principale e l'uscita è generato. Anche se non appaiono nel foglio di stile, ci sono anche regole predefinite incorporato in XSLT (nella sezione 5.8) che fare il test - ma solo se nessuna delle esplicite regole di match. La prima è questa:


   
 

L'attributo match utilizza la notazione XPath per dire che il modello dovrebbe essere applicato a qualsiasi elemento (*) o (|) dell'elemento radice (/) del documento. Xsl: apply-templates elemento all'interno della xsl: template elemento racconta il processore XSLT per controllare il resto del documento per possibili modelli che si applicano al contenuto del documento. Ciò consente l'elaborazione ricorsiva dei documenti, perché le regole esplicite previste nel foglio di stile può iniziare con ulteriori contenuti nel documento che l'elemento principale, e alcuni contenuti possono essere ignorati. La seconda regola è normalmente presente:


   
 

Per impostazione predefinita, questo vale per tutti i nodi di testo (text ()) e il contenuto di tutti gli attributi (@ *) e comprende il loro contenuto nel documento. Xsl: value-of elemento che recupera le informazioni, utilizzando il valore dell'attributo select (.) Per ottenere il contenuto dal nodo corrente. (Vi è anche una regola di default che scende le istruzioni di elaborazione e di osservazioni da parte del documento originale.)

NotaL'attuazione XSLT in Internet Explorer 5.5, oltre a usare una sintassi leggermente diversa, anche non supporta queste regole predefinite. Le versioni future possono fornire un supporto migliore. Proprio su questo piccola fondazione, è possibile creare alcuni fogli di stile XSLT che fanno il lavoro reale. Si può prendere un documento XML semplice e convertirlo in una tabella di XHTML. Inizia con un documento XML che descrive una serie di articoli:

Il foglio di stile contiene una regola per costruire il documento HTML nel suo complesso, compreso un elemento di tabella, e quindi le regole per costruire le righe e le celle:

 Catalogo 

Articoli

Simon St. Laurent Elementi XML di Stile 2000 McGraw-Hill 0-07-212220-X 29,99 $

Online: 168 users browsing the articles directory   


  

|