Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. XML - Teknopedia
XML - Teknopedia
Disambiguazione – Se stai cercando altri significati, vedi XML (disambigua).
XML
Estensione.xml
Magic number<?xml
Tipo MIMEapplication/xml
text/xml
Uniform Type Identifier (UTI)public.xml
SviluppatoreW3C
ProprietarioWorld Wide Web Consortium
1ª pubblicazione10 febbraio 1998
Ultima versione1.1 (2ª ed.) (29 settembre 2006)
TipoLinguaggio di markup
Estensione diSGML
Esteso aXHTML, RSS, Atom, KML e altri
Standard1.0, 5ª ed. (26 novembre 2008)
1.1, 2ª ed. (16 agosto 2006)
Formato aperto?Sì
Sito webwww.w3.org/XML
Modifica dati su Wikidata · Manuale

In informatica, l'XML (sigla di eXtensible Markup Language, lett. "linguaggio di marcatura estendibile") è un metalinguaggio per la definizione di linguaggi di markup, ovvero un linguaggio basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo.

Il nome indica che si tratta di un linguaggio estendibile, in quanto permette di creare tag personalizzati e costituisce il tentativo di produrre una versione semplificata dello Standard Generalized Markup Language (SGML), che consente di definire nuovi linguaggi di markup.

Storia

[modifica | modifica wikitesto]

Il World Wide Web Consortium (W3C), in seguito alla guerra dei browser (ovvero la situazione verificatasi negli anni novanta nella quale Microsoft e Netscape introducevano, con ogni nuova versione del proprio browser, un'estensione proprietaria all'HTML ufficiale), fu costretto a seguire le individuali estensioni al linguaggio HTML.[il nesso è poco chiaro]

Il W3C dovette scegliere quali caratteristiche standardizzare e quali lasciare fuori dalle specifiche ufficiali dell'HTML. Fu in questo contesto che iniziò a delinearsi la necessità di un linguaggio di markup che desse maggiore libertà nella definizione dei tag, pur rimanendo in uno standard.

Il "progetto XML", che ebbe inizio alla fine degli anni novanta nell'ambito della SGML Activity del W3C, suscitò un così forte interesse che il W3C creò un gruppo di lavoro, chiamato XML Working Group, composto da esperti mondiali delle tecnologie SGML, ed una commissione, XML Editorial Review Board, deputata alla redazione delle specifiche del progetto.

Nel febbraio del 1998 le specifiche divennero una raccomandazione ufficiale con il nome di Extensible Mark-up Language, versione 1.0. Ben presto ci si accorse che XML non era limitato al solo contesto web ma era qualcosa di più: uno strumento che permetteva di essere utilizzato nei più diversi contesti, dalla definizione della struttura di documenti, allo scambio delle informazioni tra sistemi diversi, dalla rappresentazione di immagini alla definizione di formati di dati.

Utilizzi

[modifica | modifica wikitesto]

Rispetto all'HTML, l'XML ha uno scopo ben diverso: mentre il primo definisce una grammatica per la descrizione e la formattazione di pagine web (layout) e, in generale, di ipertesti, il secondo è un metalinguaggio utilizzato per creare nuovi linguaggi, atti a descrivere documenti strutturati. Mentre l'HTML ha un insieme ben definito e ristretto di tag, con l'XML è invece possibile definirne di propri a seconda delle esigenze.

L'XML è oggi molto utilizzato anche come mezzo per l'esportazione di dati tra diversi DBMS. Diffuso è l'uso nei file di configurazione di applicazioni e sistemi operativi.

Molti standard industriali si basano su XML e sulla sua flessibilità. Tra questi annoveriamo Health Level 7, OpenTravel Alliance, FpML e MISMO. Nell'editoria, il DITA (Darwin Information Typing Architecture) è anch'esso uno standard industriale XML per i dati.

Una delle applicazioni in campo scientifico è la rappresentazione delle informazioni operative meteorologice basate sugli standard IWXXM.

Sintassi

[modifica | modifica wikitesto]

Ecco un esempio tipico di file XML, visualizzabile all'interno di un browser qualsiasi semplicemente salvando il testo in un file con estensione .xml.

<?xml version="1.0" encoding="UTF-8"?>
<utenti>
    <utente anni="20">
        <nome>Ema</nome>
        <cognome>Princi</cognome>
        <indirizzo>Torino</indirizzo>
    </utente>
    <utente anni="54">
        <nome>Max</nome>
        <cognome>Rossi</cognome>
        <indirizzo>Roma</indirizzo>
    </utente>
</utenti>

La prima riga indica la versione di XML in uso e specifica la codifica UTF-8 per la corretta interpretazione dei dati.

I caratteri speciali che renderebbero il documento mal formato vanno sostituiti con le rispettive entità XML:

Carattere Entità
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

Va fatto presente che solo le prime tre[o solo le prime 2?] entità sono sempre da rispettare, mentre l'ultima &apos; in alcuni casi non è gestita (come nell'iPhone iOS 3.1.3 e successive).

I tag o etichette

[modifica | modifica wikitesto]

L'XML, come l'HTML, utilizza dei marcatori, chiamati tag (etichette), per assegnare una semantica al testo. I tag possono contenere informazioni in due modi: attraverso dei parametri oppure racchiudendo del testo o altri tipi di informazioni. Segue che possono essere tag di apertura, necessariamente seguiti da tag di chiusura (tra i quali si può avere un contenuto) oppure tag che si aprono e chiudono, e possono quindi fornire informazioni solo attraverso i loro parametri.

Ogni etichetta inizia e finisce con delle parentesi uncinate (<>) (che in altri contesti sarebbero i segni di minore e maggiore), mentre la chiusura del tag o il tag di chiusura è rappresentato dalla barra (/). Ecco degli esempi di tag:

<tagEsempio parametro1="etichetta di apertura" caratteristiche="solo l'etichetta di apertura ha dei parametri">
    contenuto
</tagEsempio>
<tagAutochiudente parametro1="etichetta autochiudente" caratteristiche="non ha etichetta di chiusura" />

XML consente dei commenti racchiusi da <!-- --> Ad esempio:

<!-- Questo è un commento -->

XML è molto rigido sulla sintassi da seguire rispetto all'HTML ed è pertanto necessario rispettare alcune regole:

  1. i tag non possono iniziare con numeri o caratteri speciali e non possono contenere spazi;
  2. i tag devono essere bilanciati, ovvero non sono consentiti errori di annidamento, ad esempio:
<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi
</rubrica>

Il tag cognome non è stato chiuso, l'XML risulta quindi mal formato.

<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi
</rubrica></cognome>

Il tag cognome è stato chiuso dopo il tag rubrica, anche in questo caso l'XML non è ben formato.

<rubrica>
  <nome>Mario</nome>
  <cognome>Rossi</COGNOME>
</rubrica>

XML è case sensitive quindi il tag cognome e il tag COGNOME sono considerati come due tag diversi; l'XML ancora una volta non è ben formato.

È possibile anche definire tag vuoti che vengono aperti e immediatamente chiusi:

<rubrica></rubrica>

Oppure in maniera abbreviata:

<rubrica />

Per poter essere correttamente interpretato, un documento XML deve essere formattato correttamente, deve cioè possedere le seguenti caratteristiche:

  • Un prologo, che è la prima istruzione che appare scritta nel documento. Nel nostro caso: <?xml version="1.0" encoding="UTF-8"?>.
  • Un unico elemento radice (ovvero il nodo principale, chiamato root element) che contiene tutti gli altri nodi del documento. Nel nostro esempio: <utenti>.
  • All'interno del documento tutti i tag devono essere bilanciati.

Se il documento XML non contiene errori si dice well-formed ("ben formato"). Se il documento è well formed e in più rispetta i requisiti strutturali definiti nel file DTD o schema XML associato viene chiamato valid ("valido").

Vantaggi di XML

[modifica | modifica wikitesto]

I vantaggi dell’XML vengono solitamente riepilogati con l'acronimo SPEED, inteso anche con il significato della parola in lingua inglese (ovvero "velocità"). La velocità è innanzitutto la ragione principale che spinge molte aziende a passare al commercio elettronico: risposta più rapida alle esigenze dei clienti, pubblicazione più rapida di informazioni dirette ai clienti e ai partner della catena di approvvigionamento; elaborazione più rapida di ordini ricevuti via Internet. L'acronimo deriva da Storing, Publishing and Exchanging Electronic Documents ("memorizzazione, pubblicazione e scambio di documenti elettronici").

In XML le informazioni specifiche di un’applicazione sono contenute all’interno di "tag", marcati da parentesi < >, che descrivono il contenuto di un documento. Ogni tag definisce un tipo di elemento e, delimitando con tag ogni singolo dato, siamo in grado di comprenderne la struttura anche se non conosciamo l’applicazione che l’ha generata. Essendo poi i dati autodescrittivi, anche i partner saranno in grado di comprenderli ed elaborarli. Inoltre essi possono essere gestiti anche in futuro quando le applicazioni che li hanno generati saranno diventate obsolete.

L’estensibilità è un'altra caratteristica vincente di XML, in quanto è possibile per i programmatori riutilizzare i documenti XML esistenti semplicemente estendendoli con nuovi tag, lasciando che gli elementi chiave del documento originale rimangano comprensibili da tutti gli utilizzatori.

XML ha risposto al proverbiale motto americano: "adopt and adapt", ovvero, adotta uno standard vincente e affidabile e adattalo alle tue esigenze.

Un altro vantaggio non indifferente di XML è la possibilità di validarli mediante l'uso di XML Schema (XSD)[1].

Questa possibilità non è presente in tutti gli altri formati interscambiabili.

Per sintetizzare i vantaggi di XML, quindi, si può dire che XML richiede:

  • meno sforzi di manutenzione;
  • migliore riutilizzo;
  • maggiore capacità di mirare a dispositivi multipli;
  • possibilità di ridurre le risorse dedicate alla implementazione di progetti.

Tecnologie di supporto a XML

[modifica | modifica wikitesto]

Linguaggi schema (permettono di creare nuovi linguaggi XML):

  • DTD (acronimo di Document Type Definition): è un documento attraverso cui si specificano le caratteristiche strutturali di un documento XML attraverso una serie di "regole grammaticali". In particolare definisce l'insieme degli elementi del documento XML, le relazioni gerarchiche tra gli elementi, l'ordine di apparizione nel documento XML e quali elementi e quali attributi sono opzionali o meno.
  • XML Schema: come la DTD, serve a definire la struttura di un documento XML. Oggi il W3C consiglia di adottarlo al posto della DTD stessa, essendo una tecnica più recente ed avanzata. La sua sigla è XSD, acronimo di XML Schema Definition.

Altre tecnologie legate a XML:

  • XLink: serve a collegare in modo completo due documenti XML; al contrario dei classici collegamenti ipertestuali che conosciamo in HTML, XLink permette di creare link multidirezionali e semanticamente avanzati.
  • XSL (acronimo di eXtensible Stylesheet Language): è il linguaggio con cui si descrive il foglio di stile di un documento XML. La sua versione estesa è l'XSLT (dove la T sta per Transformations).
  • XPath: è un linguaggio con cui è possibile individuare porzioni di un documento XML e sta alla base di altri strumenti per l'XML come XQuery.
    A supporto di questo scopo principale, fornisce anche elementari funzionalità per trattare stringhe, numeri e dati booleani. Il suo funzionamento si basa sulla creazione di un albero a partire dal documento e la sintassi succinta permette di indirizzare una specifica parte attraverso i nodi dell'albero con la semplice parola path.
  • XPointer: serve ad identificare univocamente precise porzioni di un documento XML; consente poi il loro accesso ad altri linguaggi o oggetti di interfaccia.
  • XQuery: è un linguaggio di query concepito per essere applicabile a qualsiasi sorta di documento XML e si basa sull'utilizzo di XPath per la specificazione di percorsi all'interno di documenti. XQuery ha funzionalità che consentono di poter attingere da fonti di dati multiple per la ricerca, per filtrare i documenti o riunire i contenuti di interesse.
  • SAX (Simple API for XML): è un'interfaccia di programmazione, implementata in numerosi linguaggi, che permette di leggere e modificare i documenti XML. Attraverso SAX è possibile implementare dei parser XML specifici. SAX è event based, al contrario di DOM, e reagisce agli eventi di parsing facendo rapporto all'applicazione. È compito del programmatore implementare i metodi per reagire agli eventi di parsing.
  • DOM: è un'interfaccia di programmazione, come SAX, implementata in una moltitudine di linguaggi di programmazione, per la manipolazione di file XML. DOM costruisce partendo dal file XML un albero dove ogni nodo dell'albero corrisponde ad un elemento del file; per questo motivo è detta tree based.
  • VTD-XML: DOM è più facile ed immediata da utilizzare rispetto a SAX ed è pertanto preferita solitamente dai programmatori per manipolare un file XML; tuttavia l'albero generato da DOM va mantenuto completamente nella memoria RAM e di conseguenza non è possibile utilizzare questa interfaccia per manipolare file che siano più grandi della memoria disponibile sul computer.
  • RSS: è uno standard che serve a creare un documento con una struttura di tipo XML univoca, atta allo sviluppo di un semplice scambio dati tra pagine Web ed accessibile da qualsiasi linguaggio di scripting. In sostanza si tratta di un documento XML la cui struttura dei nodi ed i relativi tag hanno lo stesso nome.
  • SVG (Scalable Vector Graphics) e VML (Vector Markup Language) sono standard per la creazione di immagini vettoriali che sfrutta dei documenti formattati in XML. Serve inoltre a descrivere immagini bidimensionali, statiche e dinamiche. Leggendo le istruzioni contenute nel documento sorgente XML, l'interprete disegna le figure-base fino al completamento dell'immagine.
  • WDDX (Word Data Description Exchange): WDDX è una struttura per contenimento di dati con la stessa struttura di un database, creato dalla Allaire oggi Macromedia e pubblicato Open presso la WDDX Organization Archiviato il 30 novembre 2001 in Internet Archive.

Linguaggi XML più diffusi

[modifica | modifica wikitesto]
  • XForms: come il suo nome lascia intendere, è un linguaggio nato per creare moduli (forms) di tipo HTML all'interno di un documento XML.
  • SMIL (Synchronized Multimedia Integration Language): questo linguaggio definito in XML, viene utilizzato per descrivere il contenuto e gestire la tempistica di presentazioni multimediali che possono combinare insieme video, audio, immagini e testo.
  • MathML (Mathematical Markup Language): MathML è usato per la descrizione di notazioni matematiche, procedendo a fissarne contemporaneamente struttura e contenuti, così da poter essere riportate e processate sul Web.
  • X3D (eXtensible 3D): X3D è un linguaggio che permette di costruire modelli tridimensionali, siano essi semplici o sofisticati. Agli oggetti così creati possono applicarsi animazioni e meccanismi di interazione con l'utente. Come linguaggio, è costruito sul Virtual Reality Modeling Language (VRML), a sua volta assunto a standard internazionale nel 1997. A quest'ultimo, l'X3D acclude le capacità, tipiche dell'Extensible Markup Language (XML), di integrazione con le altre tecnologie del World Wide Web, di validazione dei contenuti e dell'aggiunta flessibile di nuove estensioni hardware qualora ve ne fosse necessità. In più, bisogna citare i vantaggi riguardanti la leggerezza del "profilo base" (Core Profile - Esistono sette profili, ognuno dei quali raggruppa un certo insieme di funzionalità comunemente utilizzate per differenti scopi. Questo permette agli sviluppatori di browser di raggiungere livelli intermedi di supporto dell'X3D, senza dover per forza implementare in una volta sola l'intera specifica) e dei browser componentizzati per un download più rapido.
  • XBRL (eXtensible Business Reporting Language): è un linguaggio usato per la comunicazione e lo scambio di dati finanziari e contabili in formato elettronico

XML e le pagine web: XHTML

[modifica | modifica wikitesto]

XHTML è un linguaggio di markup atto a visualizzare pagine Web tramite browser, come l'HTML, e, essendo XML, ne rispetta la semantica. Ad esempio in XHTML, al contrario che in HTML tradizionale, i tag vuoti vanno chiusi con uno slash (/) finale, gli attributi vuoti devono essere valorizzati con true o false, la chiusura dei tag dev'essere a specchio (se viene aperto un Tag e prima di chiuderlo ne viene aperto un altro, è necessario chiudere prima il secondo tag e poi il primo), alcuni Tag e attributi, rispetto all'HTML 4.0 sono scomparsi, ed esiste una DTD dedicata.

Il mime type riservato alle pagine XHTML è (application/xhtml+xml). Se si trasmette una pagina XHTML non valida ma come text/html può capitare che venga però visualizzata perché viene interpretata come html (con degli errori, quali i tag chiusi come <br />) solo che non rispetta lo standard e non gode dei suoi vantaggi, primo tra i quali la portabilità su browser e client differenti.[2] Il vero vantaggio di una pagina XHTML è che essendo XML ne trae tutti i pregi, quali facilità di validazione e interpretazione programmatica. Le pagine XHTML sono solitamente più facilmente accessibili, data la loro semantica XML.

Note

[modifica | modifica wikitesto]
  1. ^ Andrea Chiarelli, XML Schema e Documenti XML, su HTML.it. URL consultato il 16 ottobre 2020.
  2. ^ (EN) Sending XHTML as text/html Considered Harmful

Voci correlate

[modifica | modifica wikitesto]
  • Linguaggio di markup
  • Feed
  • FXG
  • SGML
  • XHTML
  • TM-XML
  • SDMX
  • papiNet
  • Unique Particle Attribution
  • EbXML
  • Extensible Stylesheet Language
  • XSLT

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikibooks
  • Wikizionario
  • Wikimedia Commons
  • Collabora a Wikibooks Wikibooks contiene testi o manuali su XML
  • Collabora a Wikizionario Wikizionario contiene il lemma di dizionario «XML»
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su XML

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su w3.org. Modifica su Wikidata
  • XML, su sapere.it, De Agostini. Modifica su Wikidata
  • XML, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013. Modifica su Wikidata
  • (EN) David Hemmendinger, XML, su Enciclopedia Britannica, Encyclopædia Britannica, Inc. Modifica su Wikidata
  • (EN) Denis Howe, Extensible Markup Language, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
  • (IT) Guida XML - HTML.it
  • (EN) Extensible Markup Language (XML) (sito ufficiale del W3C)
  • (EN) Parsing and serializing XML Archiviato l'11 maggio 2012 in Internet Archive. (Mozilla Developer center)
  • Guide e tutorial su XML - HTML.it
  • Validatore Ufficiale del W3C, su validator.w3.org.
  • XML Viewer - XML Tool
  • XML Formatter Online Archiviato il 31 gennaio 2021 in Internet Archive. - XML Online Tool
  • Xml Validation - YAMLto JSON,XML,BASE64
  • XML Validator - XML Lint
  • XML Formatter - Formattazione dei dati xml
V · D · M
Android
Sviluppo software
Strumenti di sviluppo ufficiali
UfficialiKit di sviluppo software (Android Debug Bridge · Fastboot · Android Package) · Android Native Development Kit · Kit di sviluppo Android Open Accessory · Bionic · RenderScript · Skia · Dalvik · Android Runtime · AdMob · Material Design · Font (Droid · Roboto · Noto) · Google Developers
AltriOpenBinder · Apache Harmony · OpenJDK · Gradle
Ambienti di sviluppo
integrati
(IDE)
Android Studio (IntelliJ IDEA) · Eclipse (Android Development Tools) · App Inventor
Linguaggi e databaseJava · Kotlin · XML · C · C++ · SQLite
Realtà virtualeCardboard · Daydream
Eventi e comunitàGoogle I/O · Developer Challenge · Android Open Source Project
Android logo
Versioni1.0 · 1.1 · Cupcake (1.5) · Donut (1.6) · Eclair (2.0–2.1) · Froyo (2.2) · Gingerbread (2.3) · Honeycomb (3.x) · Ice Cream Sandwich (4.0) · Jelly Bean (4.1–4.3) · KitKat (4.4) · Lollipop (5.x) · Marshmallow (6.0) · Nougat (7.x) · Oreo (8.x) · Pie (9) · 10 · 11 · 12 · 13 · 14 · 15
DerivatiAndroid Auto · Android Things · Android TV · Wear OS
Dispositivi mobili
PixelPixel e Pixel XL · 2 e 2 XL · 3 e 3 XL · 3a e 3a XL · C · 4 e 4 XL · 4a e 4a 5G · 5 · 5a · 6 · 7 · 8 · 9
NexusNexus One · Nexus S · Galaxy Nexus · Nexus 4 · Nexus 5 · Nexus 6 · Nexus 5X · Nexus 6P · Nexus 7 (2012 · 2013) · Nexus 10 · Nexus 9 · Nexus Q · Nexus Player
Play EditionHTC One (M7) · HTC One (M8) · LG G Pad 8.3 · Moto G · Samsung Galaxy S4 · Sony Xperia Z Ultra
AltroAndroid Go · Android One · Altri smartphone Android
Varianti personalizzate/e/ · Android-x86 · AOKP · Baidu Yi · Barnes & Noble Nook · ColorOS · CyanogenMod · Fire OS · Funtouch OS · Flyme OS · HyperOS · LineageOS · MIUI · Nokia X Software Platform · OmniROM · OxygenOS · Paranoid Android · Replicant · Ubuntu for Android · XobotOS
ApplicazioniAssistente (Google Now) · Earth (Sky) · Gmail · Google Chrome for Android · Goggles · Hangouts · Maps · Pay (Send) · Play (Giochi · Libri) · TV · Voice
APIGoogle Maps · Google Play Services · Google Search
Interfacce utente alternativeAsus ZenUI · HTC Sense · Google Pixel UI · LG UX (Optimus UI) · One UI (Experience · TouchWiz) · EMUI · MIUI
ElenchiApplicazioni per webmaster · Dispositivi Android · Distribuzioni derivate da Android AOSP · Servizi Google per Android · Servizi web di Google · Videogiochi per Android
Voci correlateGoogle · Chromecast · Java vs. Android API · Questioni giuridiche (Oracle contro Google · Guerra per i brevetti sugli smartphone) · XDA Developers · Rooting
Controllo di autoritàLCCN (EN) sh97007825 · GND (DE) 4501553-3 · BNE (ES) XX546216 (data) · BNF (FR) cb131774360 (data) · J9U (EN, HE) 987007549204605171
  Portale Internet: accedi alle voci di Teknopedia che trattano di internet
Estratto da "https://it.wikipedia.org/w/index.php?title=XML&oldid=146790904"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022