Ricerca…


Osservazioni

XML è un linguaggio di markup utilizzato per archiviare dati gerarchici in file di testo. È anche noto come dati semi-strutturati, come JSON. XML è leggibile dalla macchina, ma può anche essere letto e prodotto da persone.

L'XML è costituito da elementi, a volte casualmente definiti come zuppa di tag , che possono essi stessi contenere altri elementi e / o testo. Gli elementi possono anche contenere attributi.

XML viene spesso utilizzato per lo scambio di dati tra piattaforme, soprattutto su Internet. Inoltre, viene sempre più utilizzato per la memorizzazione di dati semi-strutturati negli archivi dati NoSQL (database XML / archivi di documenti). Inoltre, ha la flessibilità di gestire i dati orientati ai documenti (testo con markup), che lo rende molto popolare nel settore dell'editoria. XML è anche ampiamente usato per i file di configurazione.

Uno dei motivi principali per cui XML è così ampiamente utilizzato è che è standardizzato, con molti parser disponibili, incluso l'open source. Ciò rende il costo dell'uso di XML inferiore all'invenzione della propria nuova sintassi.

Ulteriori informazioni sull'origine e gli obiettivi di XML sono disponibili nella Raccomandazione W3C ufficiale.

Esistono due versioni di XML, mostrate nella tabella seguente. Le edizioni di ogni versione sono solo revisioni dei documenti originali e non modifiche degli standard.

La prima versione di XML è 1.0 . XML 1.1 è stato modificato principalmente a causa della modifica della versione Unicode da 2.0 a 3.1 e specifica un insieme di nuove regole per l'uso e l'interpretazione di nuovi caratteri Unicode.

Versioni

Versione Data di rilascio
1.0 1998/02/10
1.1 2001/12/13

Installazione o configurazione

XML è una sintassi, il che significa che un semplice editor di testo è sufficiente per iniziare.

Tuttavia, avere un editor specifico per XML che ti mostra quando e dove il tuo documento non è ben formato è quasi indispensabile per la produttività. Tali editor possono anche consentire di convalidare documenti XML contro uno schema XML, o anche di generare schemi XML da documenti XML (e viceversa).

Alcuni esempi di editor sono oXygen, Atom, Eclipse e Altova XMLSpy. Una soluzione alternativa consiste nell'utilizzare un parser XML da riga di comando come Apache Xerces.

I blocchi di base

XML è composto da blocchi elementari, che sono:

  • elemento
  • testo
  • attributi
  • Commenti
  • istruzioni di elaborazione

Un elemento ha parentesi angolari:

<element/>

<element>some content</element>

Un attributo appare in un tag dell'elemento di apertura:

<element
  attribute-name="attribute value"
  other-attribute='single-quoted value'>
  ...
</element>

Il testo può apparire ovunque all'interno o tra gli elementi:

<element>some more <b>bold</b> text</element>

I commenti utilizzano la seguente sintassi. È importante sapere che i commenti XML, a differenza dei linguaggi di programmazione, fanno parte del modello e saranno visibili all'applicazione sopra il parser.

<!-- this is a comment -->

Le istruzioni di elaborazione consentono di inviare messaggi all'applicazione che consuma (ad esempio, come visualizzare o un foglio di stile, ecc.). XML non limita il formato delle istruzioni di elaborazione.

<?target-application these are some instructions?>

Maggiori dettagli sui blocchi di costruzione sono disponibili in questo argomento

Ben formati

Un documento XML è un file di testo conforme alle regole di ben formata della specifica XML. Tale documento conforme è detto di essere ben formato (da non confondere con valido ). L'XML è molto severo con una buona formazione rispetto ad altri linguaggi come l'HTML. Un file di testo non ben formato non è considerato XML e non può essere utilizzato dal consumo di applicazioni.

Ecco alcune regole che si applicano ai documenti XML:

  1. XML utilizza una sintassi molto auto-descrittiva. Un prolog definisce la versione XML e la codifica dei caratteri:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. Deve esserci esattamente un elemento di livello superiore.

    Tuttavia, i commenti, le istruzioni di elaborazione e la dichiarazione XML iniziale sono consentiti anche al livello più alto. Il testo e gli attributi non lo sono.

    <?xml version="1.0"?>
    <!-- some comments -->
    <?app a processing instruction?>
    <root/>
    <!-- some more comments -->
    
  3. Gli elementi possono nidificare, ma devono essere "nidificati correttamente":

    <name>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
    </name>
    

    I tag di inizio e fine di un elemento incorporato devono essere compresi tra i tag di inizio e di fine del suo elemento contenitore. Una sovrapposizione di elementi è illegale. In particolare, questo XML non è ben formato: <foo><bar></foo></bar>

  4. Gli attributi possono apparire solo nei tag di apertura dell'elemento o nei tag di elemento vuoti, non nei tag di chiusura dell'elemento. Se la sintassi degli attributi viene visualizzata tra gli elementi, non ha alcun significato e viene analizzata come testo.

    <person first-name="John" last-name="Doe"/>
    

    Questo non è ben formato: <person></person first-name="John"/>

  5. Commenti, istruzioni di elaborazione, testo e altri elementi possono apparire ovunque all'interno di un elemento (ad esempio, tra il suo tag di apertura e di chiusura) ma non all'interno dei tag.

    <element>
        This is some <b>bold</b> text.
        <!-- the b tag has no particular meaning in XML -->
    </element>
    

    Questo esempio non è ben formato: <element <-- comment --> />

  6. Il carattere < potrebbe non apparire nel testo o nei valori degli attributi.

  7. Il " carattere potrebbe non apparire nei valori degli attributi citati con " . Il carattere ' potrebbe non apparire nei valori degli attributi citati con ' .

  8. La sequenza di caratteri -- potrebbe non apparire in un commento.

  9. I caratteri < e & letterali devono essere sfuggiti dalle rispettive entità &lt; e &amp; .

Ciao mondo

<?xml version="1.0"?>
<?speech-generator voice="Siri"?>
<root xmlns:vocabulary="http://www.example.com/vocabulary">
  <!-- These are the standard greetings -->
  <vocabulary:greetings>
    <vocabulary:greeting xml:lang="en-US" type="informal">
      Hi!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="intermediate">
      Hello!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="formal">
      Good morning to <b>you</b>!
    </vocabulary:greeting> 
  </vocabulary:greetings>
</root>

Namespace

I nomi di elementi e attributi vivono in spazi dei nomi che sono URI. Gli spazi dei nomi sono legati ai prefissi che vengono utilizzati nell'attuale elemento e nei nomi degli attributi, che sono chiamati QNames.

Questo documento lega uno spazio dei nomi al prefisso prefix e definisce uno spazio dei nomi predefinito, associato all'assenza di prefisso.

<?xml version="1.0"?>
<document
    xmlns="http://www.example.com/default-namespace"
    xmlns:prefix="http://www.example.com/another-namespace">
  <prefix:element/>
</document>

Maggiori dettagli sugli spazi dei nomi sono disponibili in questo argomento



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow