• XML
  • HTML
  • SAML
  • trasferimento di dati

Che cos'è l'XML?

XML è un linguaggio di markup versatile per strutturare e trasferire dati. Presenta tag personalizzabili, struttura gerarchica e definizioni di schema. A differenza di HTML, XML si concentra sulla rappresentazione dei dati piuttosto che sulla visualizzazione. È ampiamente utilizzato in varie applicazioni, incluse le configurazioni SSO come l'implementazione SAML di Logto.

Darcy Ye
Darcy Ye
Developer

Extensible Markup Language (XML) utilizza tag per indicare come il testo nei file di dati dovrebbe essere strutturato, memorizzato e trasmesso. XML è progettato per essere leggibile sia dagli esseri umani che dalle macchine, rendendolo uno strumento di markup potente e altamente personalizzabile.

XML è stato creato dal World Wide Web Consortium (W3C) nel 1996. L'obiettivo del W3C era creare un linguaggio che potesse aiutare a definire tipi di documenti e fornire la possibilità di creare tag personalizzati. Il tipo risultante di linguaggio di markup consente di definire come i dati su una pagina vengono contrassegnati prima di condividerli come file XML con un altro sistema. Finché due sistemi usano lo stesso linguaggio XML (con tag che entrambi possono interpretare), entrambi i sistemi possono "comprendere" il formato del file XML. Quando XML viene distribuito correttamente, questo assicura che qualsiasi file di dati possa essere memorizzato, trasmesso e quindi utilizzato, riproducendo esattamente gli stessi dati e la stessa struttura ogni volta che viene accesso.

Esempio di contenuto XML

I dati XML consistono in testo in un file digitale. Simile a HTML, si crea il "codice" necessario per i file XML inserendo tag per indicare come il testo dovrebbe essere interpretato. Per esempio:

Questo esempio mostra tre utenti. Il contenuto XML include nome, nome utente, email e livello utente.

Questo crea un documento XML che può essere condiviso e letto tra fornitori di identità e fornitori di risorse.

È importante notare che l'esempio sopra dimostra la natura gerarchica dei documenti XML. Per esempio:

  • Il contenuto della prima riga <?xml version="1.0" encoding="UTF-8"?> è la dichiarazione XML, che specifica la versione e la codifica
  • In un documento XML, ci deve essere un elemento radice, che in questo esempio è <users>
  • Tutti gli altri elementi contenuti all'interno dell'elemento radice sono chiamati "elementi figli"
  • Nell'esempio sopra, ci sono 3 elementi figli, contrassegnati con il tag <user>
  • All'interno degli elementi figli <user>, ci sono diversi altri elementi figli, come <name>, <username>, <email> e <level>
  • Sul tag <user>, c'è anche un id, che è chiamato attributo XML. Un elemento non può contenere più attributi con lo stesso nome

I tag utilizzati mostrano che cos'è ciascun tipo di dato, con il testo semplice che funge da dato stesso. Nota anche come il contenuto è rientrato. Questo non è per aiutare i sistemi a elaborare il file XML, ma per aiutare gli esseri umani a sfogliare più facilmente il file XML e il suo ordine gerarchico per scoprire e risolvere eventuali errori o omissioni.

Che cos'è lo schema XML?

Uno schema funge da "definizione" per un documento XML. Questo significa che descrive le regole chiave e le restrizioni della struttura del file XML, oltre a controlli sul contenuto e sui tipi di dati—controllando come interagiscono tra loro nel documento. Questo assicura che l'integrità dei dati dell'XML sia protetta in ogni momento, anche quando viene gestito tra diverse applicazioni o perfino sistemi.

I due principali linguaggi di schema sono Document Type Definition (DTD) e XML Schema Definition (XSD). XSD è il linguaggio più comunemente usato nei documenti XML grazie al suo ricco set di funzionalità, alle potenti capacità di tipo di dato e altro ancora.

Che cos'è la sintassi XML?

Se gli schemi XML come XSD riguardano specifiche dettagliate per documenti XML per garantirne la validità, allora la sintassi XML fornisce un insieme di regole che governano e controllano la struttura complessiva dei file XML. Per esempio, la sintassi XML può coprire il contenuto di testo, come elementi auto-chiusi (singoli pezzi di informazioni che non richiedono contenuto aggiuntivo) o dichiarazioni XML (utilizzate all'inizio dei documenti per descrivere informazioni chiave, come la codifica dei caratteri), così come la versione XML utilizzata dal documento.

XML vs HTML

Se sei familiare con HTML, il modo in cui i file XML distribuiscono il markup sembrerà molto familiare—ma c'è una differenza chiave tra questi due linguaggi di markup—i loro casi d'uso e scopi differiscono:

  • HTML è un linguaggio di markup utilizzato per aiutare i browser a comprendere come visualizzare i contenuti sullo schermo
  • XML è un linguaggio di markup utilizzato per memorizzare, visualizzare e trasferire dati

Oltre a questo, hanno alcune altre differenze:

  1. Poiché HTML è per il rendering del contenuto della pagina per i browser, i suoi tipi di tag sono predefiniti, mentre i tag XML possono essere personalizzati a seconda delle situazioni effettive
  2. HTML è spesso statico poiché è usato per visualizzare contenuti; XML è dinamico poiché è usato per trasferire dati
  3. HTML non supporta gli spazi dei nomi, mentre XML può utilizzare spazi dei nomi per distinguere i tag che potrebbero avere lo stesso nome ma contesti diversi per evitare confusioni

In questo esempio:

  • tech:title utilizza <http://www.example.com/tech> come spazio dei nomi, indicando che questo elemento <title> appartiene allo spazio dei nomi tech
  • bio:author utilizza <http://www.example.com/bio> come spazio dei nomi, indicando che questo elemento <author> appartiene allo spazio dei nomi bio

Come si usa l'XML in Logto?

Logto supporta il protocollo SAML per SSO. Quando si configura SSO, il fornitore di identità fornisce un file di configurazione in formato XML che include configurazioni importanti come certificati e URL di autenticazione unica.

Quando si configura SAML SSO, Logto consente il caricamento diretto del file di configurazione XML ottenuto dal fornitore di identità, eliminando la necessità di compilare manualmente ogni elemento di configurazione.