5.3

Sezione 5: Appendici

Q 5.3: Non il FAQ su XML

 

Questa è una lista di argomenti che la gente ha richiesto o ha cercato in relazione al FAQ su XML, che non sono necessariamente direttamente collegati a XML e la sua tecnologia, nè domande fatte frequentemente.  Include anche alcune definizioni su cui si può tornare per il beneficio dell’utente che è arrivato ad XML da radici differenti e potrebbe non essere stato esposto ad un background di pubblicazione di documenti.

I lettori potrebbero voler anche leggere ‘Non il FAQ su XML’ di Joe English suhttp://www.flightlab.com/~joe/sgml/faq-not.txt.

AJaX

HTTP Asincrono, Javascript, e XML. Una tecnica per migliorare l’interattività delle pagine web per cui lo scripting in browser individua l’attività dell’utente e fornisce in anticipo i dati richiesti in maniera asincrona da una memoria di dati in XML, anziché aspettare fino al click su un link da parte dell’utente e richiederli in modo sincrono dal server.

Attributi

Ci sono oggetti di metadati o metainformazioni (informazioni riguardo informazioni) che potrebbero essere aggiunte al tag di apertura di un elemento. Solitamente gli attributi sono un modo di rifinire il significato, funzione, o altre qualità di un elemento. Prendono la forma di un nome o un valore fra virgolette insieme a un segno uguale, ad es

 

<part xml:id="B22" catnum="51N1573R" level="App">Left-handed
      Screwdriver</part> 

 

I nomi di attributo devono seguire le regole XML per i Nomi (vedi le specifiche). Se la tua applicazione non usa un DTD o uno Schema, il valore di attributo sono trattati come semplice testo (CDATA) e non possono avere nessun significato speciale per XML (ad eccezione di  xml:id  e xml:lang, vedi sotto.). In un DTD o Schema, agli attributi può essere assegnato un datatype, il più comune (usando terminologia DTD per semplicità):

ID o IDREF

I valori di attributo ID devono essere Nomi XML (nessuno spazio; devono iniziare con una lettera) e devono essere unici in un documento) Un valore di attributo IDREF può verificarsi quante volte si voglia, ma deve essere il valore di un attributo ID in uno steso documento. ID e IDREF sono più frequentemente usati per il riferimento incrociato all’interno di documenti.

Nota che un attributo ID può avere qualsiasi nome: non deve per forza essere chiamato ‘ID’, anche se di frequente lo è. Al contrario – come miglior prassi – non dovresti mai chiamare ‘ID’ (‘id’) un attributo che non è di tipo ID semplicemente perché rende le cose confusionarie. Se la tua applicazione ha valori di identità unici che la comunità chiama ID, e che non sono Nomi XML, chiama l’attributo in un altro modo (ad es. ‘Product-ID’) o documenta in modo dettagliato che il valore non è un ID XML.

Esistono le Raccomandazioni che documentano come i type designer dovrebbero usare il nome di attributo xml:id, e questo può essere interpretato dai parser come ID unico senza la necessita di usare un DTD o Schema per il documento.

CDATA

Solo testo.

Token List

L’attributo deve avere uno fra un numero ristretto di valori (specificato in parentesi nella dichiarazione, separato da barre verticali), ad es.

 
<!ATTLIST part level (App|Jny|Mst) #REQUIRED> 
<!ATTLIST Q.27 resp  (Yes|No) "Yes">

Nel primo esempio non esiste default, e il valore è obbligatorio. Nel secondo, ‘Yes’ è il valore di default (se l’attributo viene omesso, il parser prenderà di default il valore dalla dichiarazione.

ENTITÀ

Il valore di attributo deve essere un’Entità dichiarata.

NMTOKEN

Un Nome Token XML è come un valore ID (nessuno spazio) ma può iniziare con qualcosa che non sia una lettera (ad esempio un numero o un’interpunzione).

Attributi speciali

In aggiunta a xml:id (menzionato sopra), ci sono altri due permessi dalle Specifiche XML:

xml:space

Per segnalare l’intenzione che in quell’elemento, gli spazi bianchi devono essere preservati dalle applicazioni;

xml:lang

per specificare il linguaggio usato nei valori di contenuto e attributo di qualsiasi elemento.

Vedi le sezioni 2.10 e 2.12 delle Specifiche per maggiori dettagli.

Negli Schemi una gamma molto più vasta di datatype sono disponibili rispetto ai DTD, e un criterio di validazione complesso può essere allegato ad ognuno.

Gli attributi in un DTD possono essere dichiarati come #REQUIRED (obbligatori), #IMPLIED (opzionali), o #FIXED(predefiniti e invariabili).

Non è inteso esserci alcun limite sula lunghezza i un valore di attributo, ma dovresti controllare che il tuo software di elaborazione possa gestire volumi di dati insoliti se intendi usare lunghezze molto estese.

BPEL

Il Business Process Execution Languageè una specifica in base XML di passi richiesti per attuare un processo aziendale cooperativo fra server consenzienti.

Byte Order Mark

Una firma a due byte (0xFEFF, definita in Unicode e ISO 10646) che deve essere preposta ad un documento XML quando si usa una codifica UCS-2, per permettere all’elaboratore di differenziare fra codifiche UCS-2 e UTF-8.

Colore

XML è fatto per identificare informazioni riguardo la struttura e il contenuto di documenti di testo, piuttosto che il loro aspetto. Anche se è perfettamente possibile identificare e memorizzare informazioni sull’aspetto, questa informazione è solitamente tenuta in fogli di stile CSS o XLS. Se hai bisogno di registrare informazioni riguardo la formattazione o l’aspetto di un documento esistente, ci sono caratteristiche nello Schema/DTD TEI su come fare.

Esportazione dati

Un requisito comune è il modello di dati piano usato in molti sistemi di e-commerce è l’esportazione di dati XML in formato di dati CSV (Comma-Separated Values) usato come input per i fogli di calcolo. Esiste un esempio più semplice di uno script breve da fare qui. Possono essere scritte facilmente routine più complesse e sofisticate usando XSLT o altri software di elaborazione XML. Gli utenti dovrebbero prendere nota che, anche se la conversione a CSV è adeguata per formati di dati semplici, è un formato inappropriato per documenti di testo XML normali che usano modelli a Contenuto Misto.

Importazione dati

Molti progetti XML richiedono l’importazione di documenti esistenti in formati non XML. L’importazione di documenti HTML esistenti viene spiegata in Come posso far funzionare i miei file HTML esistenti in XML?, e se puoi convertire i tuoi documenti in XHTML; questo è probabilmente il metodo più semplice.
OpenOffice salva file Open Document Format (ODF), che sono lo standard internazionale per documenti d’ufficio XML. I file Word possono essere salvati come WordML (2003) o Open Office XML (2007: alternativa Microsoft di ODF). In entrambi i casi una trasformazione XSLT può essere scritta per creare un formato di importazione XML adatto. Per documenti complessi in altri formati, tuttavia, sono necessari software di conversione specializzata. Alcuni editor XML stanno cominciando ad offrire conversioni incorporate di altri formati, e ci sono molti sistemi di conversione autonoma disponibili (alcuni molto cari) per formati che non sarebbero altrimenti accessibili facilmente alla macchina attraverso markup, come PDF, PostScrtipt, LATEX, Quark XPress, e la maggior parte di formati di documenti proprietari. Il punto critico è che quasi tutti i documenti non XML (no SGML) sono formattati per renderli leggibili dall’umano e carini, non per renderli leggibili dalla macchina. È dunque spesso il caso in cui l’informazione richiesta per rendere significativo il documento in XML semplicemente non esiste in questi formati L’unica alternativa per questa classe di documenti è di averli riscritti o riscannerizzati in XML da una delle molte compagnie del subcontinente Indiano o della costa del Pacifico.

Svantaggi

Il markup XML ha alcuni svantaggi:

  • Può essere prolisso a meno che nomi di attributi e nomi siano scelti con cura. In grandi documenti il markup in alto non ha bisogno di essere grande, ma in piccoli messaggi può essere molto più dei dati reali, specialmente quando i nomi di elemento o attributo sono creati da macchina.
  • Non sono permesse sovrapposizioni di markup (un elemento non può iniziare all’interno di un elemento e finire all’interno di un altro): i markup di elemento devono nidificare gerarchicamente.
  • La maggior parte delle applicazioni richiede che il documento venga caricato in memoria interamente prima che possa essere interpretato e processato. Questo può diventare un problema per documenti davvero grandi (più grandi della memoria disponibile di un sistema di computer). Probabilmente XML è lo strumento sbagliato da usare per file di questa grandezza, ma ci sono sistemi di streaming che permetteranno di processarli.
  • Alcuni di questi software sono davvero mediocri.

Editing

Per modificare (aprire) un file XML dovresti usare un editor XML. È possibile aprire un file XML usando qualsiasi editor di testo standard o addirittura un elaboratore di testo, ma fai attenzione perché potrebbero cercare di riformattare il file in modo scorretto in quanto non comprendono XML.

Entità

Un’entità è un unità di memoria in XML Può essere piccola quanto un carattere o grande quanto un intero documento. Quattro tipi di entità sono dichiarabili:

Entità generali

Che può essere come una macro di sostituzione di stringe:

<!ENTITY IBM "International Business Machines">

Queste possono essere usate per voci di dati  abbreviati o per garantire lo spelling uniforme come &IBM; e vengono rimpiazzate quando il file viene interpretato.

Possono anche rappresentare file esterni:

<!ENTITY chap5 SYSTEM "chapter5.xml">

Che possono essere usati come meccanismi di inclusione di file in un punto dove inserisci &chap5;. Le entità di file generali esterne non devono contenere Dichiarazioni XML o qualsiasi Dichiarazione di Tipo di Documento.

Entità di documento

Queste sono simili alle entità di file generali esterne eccetto il fatto che specificano il tipo di dato che contengono, usando una Annotazione dichiarata, in modo che il parser e l’applicazione possano decidere come gestirli (ad es. includerli o darli ad un altro programma specifico per il loro tipo di supporto):

 
<!ELEMENT link (#PCDATA)> <!ATTLIST link to ENTITY #REQUIRED>
... 
<!NOTATION PDF PUBLIC 
  "-//Adobe//NOTATION Portable Document Format//EN//PDF"
  "http://partners.adobe.com/public/developer/pdf/index_reference.html"> 
<!ENTITY pricelist SYSTEM "/sales/pricelist.pdf" NDATA PDF> 
... 
<para>Please refer to our <link to="pricelist">current price list</link>.</para>

Questo fornisce un metodo estremamente robusto di definire un entità esterna una volta e permettendo di fare riferimento ad esso più volte (se il nome del file esterno cambia, devi aggiornare solo la dichiarazione di entità).

Entità di carattere

come &aacute; per rappresentare caratteri che gli utenti senza le caratteristiche di tastiera richieste potrebbero voler inserire, come ‘á’;

Entità di parametro

sono come le Entità Generali ma si può fare riferimento ad esse solo all’interno di un DTD. Sono usate per il controllo di modelli di contenuti, inclusione ed esclusione di dichiarazioni, e modifiche di costrutti modulari:

<!ENTITY % local.qandaset.mix "|bibliodiv">

(per usare un esempio dal DTD di questo FAQ) dove il mix di tipi di elementi nel modello di contenuti per qandaset è specificato dalle entità qandaset.mix (definite da DocBook) e dalocal.qandaset.mix (definibile dall’utente [me]) in modo che il DTD possa essere regolato senza dover essere modificato.

I nomi di entità generale, fra cui le entità di documenti XML e le entità di carattere, iniziano sempre con un ampersand (&) e finiscono con un punto e virgola (;), e possono essere usati ovunque nel tuo documento. Le entità di carattere possono essere usate solo in un DTD: iniziano con un segno percentuale  (%) e finiscono con i due punti.

Enumerazione

Per contare i numeri di casi di un nodo in un documento XML, puoi usare la funzione count in XSL[T], ad es.

<xsl:value-of select="count(//chapter)"/>

Per applicare un contatore ad un tipo di elemento ripetitivo, usa l’elemento xsl:number, ad es.

<xsl:number select="appendix" level="any" format="A"/>

Per maggiori dettagli su XSLT, vedi Come controllo la formattazione di XML?.

Variabili ambientali

XML è un linguaggio di markup, non un linguaggio di programmazione, quindi non ha un concetto di variabili ambientali. Tuttavia, se stai usando un DTD, e accedi al tuo file XML sotto il controllo di un programma (ad es. in uno script anziché a mano) è possibile modificare i valori degli attributi o entità dichiarati (ad es. con uno stream-editor come sed) prima che il file venga aperto, e da qui passare i valori dall’ambiente esterno all’interno del documento. Un approccio simile sarebbe possibile con gli Schemi.

Escaping

Escaping significa cambiare temporaneamente il modo in cui il programma funziona per fare qualcosa di diverso con i dati.  Su SGML, era convenzionale usare solo caratteri ASCII nei documenti a causa del fatto che tastiere, schermi, e font per altri caratteri erano spesso non disponibili. Per evitare le limitazioni di questo formato di caratteri non ASCII come accenti e simboli di un set di nomi mnemonici era disponibile, prefisso da un ampersand (&) per attivare l’escapement, e seguito da il punto e virgola (;) per disattivarlo, per fare in modo che una á fosse scritta come &aacute;.

XML permette di usare Unicode, in modo che ogni carattere o simbolo di ogni linguaggio possa essere inserito come se stesso. Se stai usando una codifica UTF-8 nel tuo documento, non c’è bisogno di usare l’escaping eccetto per due simboli (< e &). Tuttavia, non tutti hanno un editor Unicode, e i font Unicode completi sono molto grandi, quindi è convenzione negli alfabeti linguistici scegliere una codifica che permette di usare la maggior parte dei caratteri di cui hai bisogno, e usare l’escaping per gli altri caratteri occasionali.

Floating-point

Non puoi dichiarare contenuti di dati di carattere o valori di attributo come floating-point (o molti altri tipi di dati) usando i DTD. Per fare questo devi usare uno Schema.

GTT

Il Gnome Time Tracker è un componente dell’interfaccia Gnome usata in modo estensivo sui sistemi Linux. Parte dei suoi dati interni sono configurati in XML.

Giochi

Non sono a conoscenza di alcun gioco scritto in XML, anche se XML viene usato in alcuni file di configurazione e controllo interno usati nei giochi.

Idempotenza

Un termine usato nelle specifiche HTTP per descrivere la natura della mancanza di effetti indesiderati delle richieste ripetute per una risorsa.

Javascript

ECMAscript (per dare il suo vero nome) non ha nulla a che fare con il linguaggio Java. È fatto per funzionare all’interno di finestre di browser, navigare o agire sul markup di una pagina per creare contenuti dinamici, validare schede, o istanziare oggetti in modi che non sono possibili con HTML statico. È creato anche per fare in modo di non poter scrivere sul filesystem locale dell’utente, per ovvi motivi di sicurezza, in modo da non potere essere facilmente usato per creare file XML a livello locale, anche se ci sono alcune scappatoie nel software Microsoft che permettono di salvare le pagine modificate sul disco.

Interruzioni di riga

I file XML possono essere creati usando uno dei tre standard di rappresentazione di una nuova riga. CR (Mac), LF (Unix), o CR/LF (Windows). L’uso di  qualsiasi altra cosa potrebbe portare a comportamenti non identificati (così i vecchi editor che usano LF/CR potrebbero creare file inutilizzabili).  I processori XML normalizzano tutte le linee di chiusura in LF.

Le interruzioni di riga nel tuo output sono governate dal tuo motore di rendering (ad es. un browser, un typesetter, ecc.) Il tuo DTD o Schema potrebbe definire elementi o entità speciali da essere usati in rare occasioni quando è necessaria un’interruzione di riga, ma questo non è normalmente qualcosa fatto in XML (eccezione: ricostruzione di documenti storici usando TEI).

Loop

Per elaborare alcuni XML ripetitivamente, devi usare un linguaggio di elaborazione che permetta il looping o la gestine ciclica di un gruppo di nodi definiti. Per esempio in XSLT, per ottenere tutti i titoli di capitolo per creare una tabella di contenuti (ovvero la posizione di documento naturale), potresti scrivere:

<xsl:for-each select="//chapter"> 
  <li> 
    <xsl:value-of select="title"/> 
  </li> 
</xsl:for-each>

Multimedia

Il Synchronized Multimedia Integration Language (SMIL) fornisce un vocabolario XML per la semplice modifica di presentazioni audiovisive interattive. SMIL è tipicamente usato per presentazioni multimediali/’a contenuto ricco’ che integrano streaming audio e video con immagini, testo, o altri tipi di media.

Brevetti, Copyright, e Proprietà Intellettuale

Non sono un avvocato, e questo non è un consiglio legale. Se hai qualche preoccupazione, visita prima uno psichiatra ☺

Dato che gli Stati Uniti (e, sempre di più, ovunque) hanno smesso di fare controlli sanitari sulle applicazioni di brevetti, più o meno chiunque può brevettare qualsiasi cosa in questi paesi, non importa che esista già o no. Se sei sufficientemente in bancarotta intellettuale, puoi iniziare a mandare fatture alle aziende e addirittura a individui chiedendo il pagamento della tassa di licenza per l’uso continuato.

XML è stato abbozzato durante il 1995 e pubblicato per la prima volta nel 1996, quindi se qualcuno afferma di aver inventato il markup strutturato nidificato gerarchicamente auto-definito a parentesi angolate dopo quel punto temporale, forse si parla di alcuni piccoli elementi di uno Schema. XML è basato su SGML, che è uno standard internazionale codificato come ISO 8879:1986, ed è stato preceduto da numerosi altri sistemi di markup strettamente correlati, quindi chiunque affermi di averlo inventato dopo questa data è altrettanto a conoscenza del markup.

Molte tecnologie derivate successive che devono la loro esistenza al lavoro di SGML e XML sono possibilmente brevetti validi, allo stesso modo in cui il fuoco non è stato brevettato in origine ma accendini e fiammiferi si.

I brevetti sono stati creati in origine per nuove invenzioni fisiche. Il loro utilizzo per metodologie e algoritmi ha esteso il concetto nel regno delle idee, che molte persone intendono come molto sospetto. Il brevetto di fenomeni naturali come geni (che sono parti preesistenti della Natura come i politici e la feccia), è insignificante e intellettualmente empio, anche se legalmente applicabile negli Stati Uniti e in qualsiasi altro luogo.

Il copyright sussiste automaticamente in qualsiasi cosa tu crei, ma in alcuni paesi (in particolare negli Stati Uniti e in Francia) non puoi applicarlo a meno che non registri il tuo interesse. Il copyright persiste per un numero di anni dopo la tua morte (EU: 75, diverso altrove) per fare in modo che i tuoi discendenti possano beneficiare della vendita dei tuoi lavori.

Il copyright riguarda cose fisiche o espressione intellettuale come libri, giornali, opere d’arte, siti web, o programmi per computer. Esiste per prevenire il furto del tuo lavoro e la rivendita. Puoi citare frammenti di lavori di altre persone senza permesso, come un verso di una poesia, o una strofa di una canzone, o una frase da un romanzo, a patto che precisi di chi è e da dove l’hai presa: altrimenti, dovrai prima chiedere il permesso. Il copyright fornisce già una protezione più che adeguata per programmi per computer, rendendo l’uso di brevetti una misura non necessaria.

La proprietà intellettuale ti identifica come proprietario dei pensieri e delle idee che possono trovarsi nelle manifestazioni fisiche di invenzioni brevettate o pubblicazioni sotto copyright. Anche se vendessi i tuoi brevetti, e dopo molto tempo dalla scadenza del copyright, puoi sempre essere identificato come persona che ha creato l’idea, e alcuni paesi (ad es. il Regno Unito) ti permettono di asserire formalmente il tuo diritto di tale identificazione, a dispetto di cosa possa succedere al libro o al congegno.

Dovresti sempre riconoscere la proprietà intellettuale di altri, specialmente quando la usi per portare avanti i tuoi scopi. Fare finta che le idee intelligenti di qualcun altro siano le tue è probabilmente un’offesa più grave di cercare di brevettare il fuoco, l’acqua, la ruota, o XML.

Pipelining

Tecnica per ridurre i requisiti complessi di elaborazione sequenziale e parallela in un gruppo di componenti che possono essere completati sotto il controllo del programma. Il termine deriva da una infrastruttura Unix per il reindirizzamento dell’output di un comando nell’input di un altro (chiamato ‘pipe’), creando a tutti gli effetti una catena o pipeline attraverso la quale il dati vengono trasferiti dalla fonte al risultato.

Le W3C hanno una Nota in attesa di invio di un Linguaggio di Definizione di Pipeline XML che potrebbe essere usato per definire un pipeline in maniera indipendente dal venditore e portatile.

RSS

Il formato Really Simple Syndicationè stato creato per permettere ai siti di notizie di processare gli aggiornamenti tramite macchina, e si è evoluto in un formato semi-standard per blog e altri siti in frequente cambiamento per notificare il mondo dei cambiamenti. Sfortunatamente non è mai stato propriamente definito, è ha molte versioni incompatibili e non documentate. Stava per essere rimpiazzato da un linguaggio molto migliore chiamato Atom, ma Microsoft ha recentemente annunciato il suo supporto per RSS, quindi sembra che potremo essere bloccati con un limone per gli anni a venire.

I ‘Newsreaders’ (lettori RSS ) sono disponibili per tutte le piattaforme, sia autonomi che come plugin per browser Non confonderli con i programmi dalla stessa descrizione creati per fornire accesso ai servizi Usenet New, che è una cosa completamente diversa (e di cui dovrai leggere su comp.text.xml).

Rendering

Usando XSLT o trasformazione XSL:FO (o altri sistemi di conversione simili), l’informazione marcata in XML può essere renderizzata più o meno in qualsiasi target: HTML, PDF, audio, Braille, e quasi tutti i formati di testo comune (ad es. LATEX). Il modo in cui appare (o si sente) è il risultato dell’utilizzo di fogli di stile o altre logiche di trasformazione attivate dal markup.

SML

La Spacecraft Markup Language è un’applicazione di XML.

Il linguaggio di programmazione Standard ML non lo è.

Vuoi dire SGML?

SOAP

Uno standard W3C per la ‘definizione di informazioni su base XML che può essere usata per lo scambio di informazioni strutturate e scritte fra pari in un ambiente decentralizzato e distribuito’. Usato per la maggior parte nei Servizi Web per il trasferimento di messaggi.

In origine il Simple Object Access Protocol, l’acronimo ora non è identificato, o espresso come il Service-Oriented Access Protocol. Guru99 ha un buon tutorial su SOAP.

Ricerca

Puoi cercare file XML individuali sulla base di una linea di comando non indicizzata, autonoma, e sequenziale usando programmi come lxgrep o lxprintf, parte degli strumenti di LTXML2. Molti editor includono anche un’infrastruttura di ricerca

XSLT permette un’infrastruttura di ricerca ristretta usando semplicemente funzioni come contains, starts-with, e ends-with. XSLT2 aggiunge Espressioni Regolari. XQuery è un linguaggio di ricerca a tutti gli effetti per XML.

L’elaboratore XSLT Saxon XSLT viene fornito con un implementazione di XQuery (vedi anche il FAQ su XQL), che può accettare richieste sia dalla linea di comando che da un file. Saxon può anche usare un file di controllo per specificare i gruppi di file XML da cercare assieme.

Per la ricerca indicizzata (per rapidità) avrai bisogno di uno strumento di ricerca XQuery che implementa un motore di indicizzazione che legge e capisce i markup. Questi sono solitamente implementati come parte di un sistema di database XML ‘nativo’ come eXist (e molti altri), che funzionano sia autonomamente che in parallelo con server XML come Cocoon.

I database di relazione tradizionale (MySQL, Oracle, ecc) tendono ad memorizzare XML come stringe indistinguibili o BLOB, usando backend XML bloccati per gestire il markup durante l’importazione e l’esportazione. I database XML ‘nativi’ hanno la gestione del XML incorporata, e possono essere configurati per il livello di dettaglio, rendendo la ricerca markup sensibile molto più efficace.

Servire XML

Vedi Devo cambiare i miei server di software per lavorare con XML?

Ordinamento

Per ordinare un set ripetitivo di elementi XML in XSL[T] usa l’elemento xsl:sort, ad es.

 
<xsl:for-each select="//acronym"> 
  <xsl:sort select="@abbrev"/>
  <xsl:value-of select="@abbrev"/> 
  <xsl:text>: </xsl:text> 
  <xsl:apply-templates/> 
</xsl:for-each>

Caratteri speciali

XML ha solo due caratteri markup speciali in documenti normali:

  • Le parentesi angolate o il segno minore (<) che fa partire il tag di apertura o il tag di chiusura come <report>o </table>;
  • Il carattere ampersand (&) che fa partire un riferimento di entitàcome &aacute; per á o &#x00A7; per §.

Diversamente dall’opinione comune, la parentesi angolare di chiusura o segno maggiore (>) e il punto e virgola (;) non sono caratteri speciali nel testo normale: acquisiscono semplicemente il loro significato temporaneo quando uno viene incontrato uno dei due caratteri markup.

Nei DTD, il segno percentuale (%) ha un significato speciale nelle dichiarazioni di entità: definisce l’entità come entità di parametro, che significa che può essere usato dentro il DTD, non nel testo di un documento, e solo per sostituzione di dati (un tipo di macro semplice)

Il punto escalamativo (!) assume un significato speciale subito dopo un segno minore: se seguito da una delle parole chiave di dichiarazione in un DTD segnala l’inizio della Dichiarazione; quando è seguito da due trattini segnala l’inizio di un commento (concluso da altri due trattini e un segno maggiore).

TMX

TMX è un metodo standard per descrivere dati di memoria di traduzione che viene trasferita fra strumenti e/o venditori di traduzioni per traduzione in linguaggio umano (parte del progetto OSCAR di LISA)

Tabelle

Puoi definire tabelle in qualsiasi modo desideri (vedi XML mi permette di creare i miei tag?) ma ci sono alcuni modelli di tabella esistenti che sono diventati di uso comune (e supportati da software) che necessiterebbero di una ragione molto importante per creare qualcosa di nuovo. Ci sono maggiori dettagli su (Flynn, 1998 § 2.3.7).

HTML

Le tabelle HTML sono state inventate da Mosaic (ora Netscape) e sono apparse per la prima volta nel DTD HTML2. In tutte le versioni di HTML e XHTML definiscono un modello molto semplice ma pratico, con pochi perfezionamenti, adatti per l’utilizzo su web e per stampa rudimentale. Il vantaggio principale è che in un browser l’altezza e la larghezza delle celle (e dunque la larghezza delle colonne) aumenta o diminuisce automaticamente per adattarsi alla quantità di testo contenuto al loro interno. La maggior parte degli altri modelli di tabelle suppongono che le larghezze delle colonne e l’altezza delle celle verranno specificate in anticipo (che puoi fare in HTML ma questo viene fatto raramente).

CALS

Computer-Aided Logistics and Support (e molti altri acronimi negli anni) era (è) parte del progetto militare statunitense per assicurare un markup consistente di tutta la documentazione, originariamente in SGML, ora in XML. Come parte di questa attività i modelli di tabella CALS sono diventati di uso comune nei documenti tecnici, specialmente per Manuali Tecnici Elettronici Interattivi (IETM), con supporto estensivo in tutti gli editori più importanti, ed è il modello di tabella di default nel DTD o Schema DocBook. Le definizioni CALS sono molto potenti ma piuttosto complesse, e possono gestire virtualmente tutti i requisiti per la calibrazione, regolazione, e allineamento.

SASOUT

Questo modello è stato usato in modo estensivo nelle scienze sociali e altrove per definire tabelle basate sulla semantica dei dati, anziché sull’apparenza. Ad un certo punto era un alternativa in DocBook (abilitato da un semplice interruttore di entità di parametro)

TEI

Il modello TEI è creato per permettere ai codificatori di rappresentare tabelle esistenti di essere trascritte da materiali storici, letterari, o di archivio, anziché dalla generazione di nuovi dati. Il markup è allo stesso livello di semplicità del modello HTML, ma è creato per permettere l’inclusione del markup molto più denso e dei metadati necessari nei testi di ricerca.

LATEX

Il modello LATEX non è di interesse diretto degli utenti XML eccetto il fatto che LATEX è un target comune per le trasformazioni da XML usando XSLT per poter creare PDF. Come CALS, le tabelle LATEX possono gestire quasi ogni formattazione, ma l’allineamento di default suppone che ogni formato di colonna sia definito all’inizio, e che ogni cella occuperà una riga di dati: è necessario un pacchetto aggiuntivo (array) per gestire celle multi-riga allo stesso modo di altri modelli.

Su XML, non è necessario usare tabelle per marcare le liste con la stessa frequenza degli elaboratori di testo, dato che le infrastrutture di elaborazione di linguaggi come XSLT permettono di trasformare il documento per usare metodi non tabulari (come i div di HTML). Il markup di tabella dovrebbe dunque essere limitato a tabelle ‘reali’ (dati sistemati in righe e colonne) e non abusato semplicemente perché vuoi qualcosa mostrato su un livello insieme a qualcos’altro: è meglio scegliere un markup creato per fare bene il suo lavoro piuttosto che distorcere infrastrutture esistenti.

Gli utenti di elaboratori di testo solitamente non sanno che molte strutture che attualmente usano tabelle di elaboratori di testo sono infatti liste segmentate, che gli elaboratori di testo non sono capaci di gestire correttamente. Una delle ragioni principali per farlo propriamente è che i dati possono essere poi rielaborati per avere senso quando vengono letti in ordine naturale.

Funzioni di formattazione di documenti di testo

Dato che XML è un metalinguaggio che permette di definire e dare nomi alle tue strutture di informazioni, non ha una conoscenza incorporata di ciò con cui parte. Dunque non ha nessuna comprensione inerente di alcuna specifica come liste puntate, sezioni, note a piè di pagina, o qualsiasi altra caratteristica online comune come menu a discesa, form (input, caselle di spunta, pulsanti a scelta singola, e aree di testo) script, passaggio del mouse, o altre cose – queste sono cose che devi definire usando XML, in uno Schema o DTD per la tua applicazione specifica. Contrariamente all’impressione data da alcuni produttori queste cose non sono incorporate in XML. Prima scegli o crea un tipo di documento ( (Schema o DTD) per rappresentare le tue informazioni accuratamente, poi puoi generare effetti come quelli elencati usando lo styling CSS, o scrivendo una trasformazione XSL[T] del tuo XML in HTML, Word,  LATEX, PDF, o qualsiasi altro formato in cui è capace di istanziarlo.

Ci sono proposte e raccomandazioni aggiuntive di XML nativo e sul W3C per gestione di Form XML, Linking XML, Sicurezza, e un sacco di altre caratteristiche, ma questi sono meccanismi di abilitazione a livello di architettura, non sostituzioni da inserire per HTML.

UML

Il Unified Modeling Language non ha nulla a che fare con XML, anche se ci sono molti punti in comune, e  alcuni software sono disponibili per esprimere alcune strutture UML in XML per la messaggistica all’interno del processo.

Errori di parsing URI

Vedi Punto e Virgola.

Variabili

XML non ha variabili o parametri, né campi o celle. Questi sono tutti termini per la programmazione e la tecnologia di database, e non abbiamo equivalenti esatti in XML.

XML identifica le tue informazioni con elementi e attributi.

WAP

Il Protocollo di Applicazione Wireless (WAP) è ora gestito dalla Open Mobile Alliance.

Buona forma

VediXML ben formato.

Spazi Bianchi

Vedi Come gestisco gli spazi bianchi nel mio documento?.

XLL

Il XML Linking Language incorpora le specifiche XLink e le specifiche XPointer. Per maggiori dettagli, vedi il Gruppo di Lavoro Linking XML sul W3C.

XLS

Il formato di file di fogli di calcolo proprietario di Microsoft scritto dai propri programmi di foglio di calcolo Excel. I file XLS non sono file XML, ma le versioni moderne di Excel salvano i loro dati in file .xlst in formato Open Office XML di Microsoft (OOXML).

Non confondere XLS con XSL (vedi Come controllo la formattazione di XML?).

XML

Questo è il FAQ su XML. Tutto ciò che c’è scritto riguarda XML. Per un’introduzione basilare, vedi Basi.

XML e standard di sicurezza privacy, e identità.

Eve

Protocollo XML

Ci sono Gruppi di Lavoro per Servizi Web sulla W3C, e parte dei loro compiti è lavorare su un Protocollo XML. Vedi http://www.w3.org/2000/xp/Group/ per maggiori dettagli.

XMLHTTP

Le caratteristiche implementate in MSXML e da altre parti permettono il recupero di pagine web, dati binari, o risposte preparate sotto controllo del programma (come usare curlwget o dog in uno script script). Usate in modo asincrono in applicazioni AJaX per dati pre-scaricati, risparmiando tempo per far apparire che un applicazione stia funzionando localmente.

XUL

La XML User Interface Language, creata per specificare l’interfaccia utente nei browser Mozilla.

asp.net

ASP (Active Server Pages) è un linguaggio Microsoft per servire pagine web dinamiche, simili in concetto a JSP, PHP, e altri. Da solo, ASP non ha nulla a che fare con XML, anche se come qualsiasi sistema server-side, può essere usato per servire XML proprio come altri tipi di file.

.NET in sé è una piattaforma di applicazione e metodologia per sviluppo di servizi web su server Microsoft. La maggior parte di servizi web sono predicati su XML come ‘corriere comune’ di messaggi all’interno di aziende, quindi .NET ha una componente XML significativa.

Marc Hadley scrive:

Ci sono molte alternative a ASP, la maggior parte delle quali usano un approccio basato su pagina simile. Fra le alternative basate su Java troviamo Java Server Pages (JSP), Java Server Faces (JSF) e Cocoon(che include eXtensible Server Pages — XSP). Fra le alternative di linguaggio di scripting famose troviamo Zope (Python) e Rails (Ruby) [che hanno tutte un supporto XML estensivo. — Ed.]

Leave a Comment

Your email address will not be published. Required fields are marked *