Relazione e differenze tra SGML, XML, HTML e XHTML


16
  1. Mi chiedevo cosa significa "profilo" in Wikipedia :

    XML è un profilo di uno SGML ISO standard e la maggior parte di XML proviene da SGML invariato.

  2. Secondo http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML è un sottoinsieme di SGML.

    XML è un sottoinsieme altamente funzionale di SGML.

    XHTML estende e sottopone HTML.

    "Uno è un sottoinsieme di un altro" significa che anche il codice nel primo è sintatticamente corretto e semanticamente uguale al secondo?

    Come nel senso della teoria dell'insieme elementare,

    • HTML, XML e XHTML sono tutti sottoinsiemi diversi di SGML?
    • XML e HTML quasi non si intersecano?
    • XHTML è un superset di XML e HTML?
  3. Posso aspettarmi un riassunto più conciso e chiaro delle differenze nelle finalità dei quattro e / o quando usare quale, rispetto al link sopra? Sono davvero confuso sulla linea chiara tra i loro scopi previsti.
  4. Secondo http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML non è un singolo linguaggio di markup. È un metalinguaggio per consentire agli utenti di progettare il proprio linguaggio di markup.

    Mi chiedevo come capire XML e HTML sono entrambi sottoinsiemi di SGML, ma HTML è un linguaggio di markup mentre XML non è un linguaggio di markup ma un metalinguaggio per la progettazione di linguaggi di markup?

    SGML e XHTML sono entrambi anche metalinguaggio per la progettazione del linguaggio di markup?

  5. Come in entrambi i link menzioniamo che HTML è un'applicazione di SGML e un sottoinsieme di SGML e XHTML è un'applicazione di XML. Mi chiedo quali siano le differenze tra dire che una lingua è un'applicazione di un'altra e una lingua è un sottoinsieme di un'altra?

Risposte:


8

HTML e XML sono entrambi linguaggi di markup (da qui il * ML). XML è un linguaggio di markup generico adatto a rappresentare dati arbitrari, mentre HTML è un linguaggio di markup specifico adatto solo a rappresentare pagine Web.

HTML e XHTML sono entrambi solo sottoinsiemi di SGML, tranne per il fatto che XHTML ha specifiche aggiuntive in modo che venga convalidato anche come XML. Pensa a XML come al padrino influente di XHTML.

A causa di questa relazione con SGML in tutte e 3 queste lingue, ci sono molte somiglianze, ma sono tutte considerate lingue diverse. Tuttavia, gran parte di ciò che definisce queste lingue sono le loro restrizioni su SGML.

  • HTML limita SGML definendo un elenco di tag che possono essere utilizzati.
  • XML limita SGML impedendo tag di inizio e fine non chiusi o vuoti e impone che gli attributi siano espliciti. XML ha anche un gran numero di restrizioni aggiuntive che non si trovano in SGML.
  • XHTML limita SGML con i tag da HTML (con alcune esclusioni, come frameset, et al) e con le restrizioni di tag e entità da XML.

Questo documento può essere utile, sebbene i termini tecnici possano essere difficili da digerire. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML non è un metalinguaggio per la definizione di linguaggi di markup. In realtà è solo SGML. XML è semplicemente un linguaggio di markup di formattazione dei dati. La tua fonte citata sta usando termini tecnici in modo impreciso, motivo per cui sono confusi.

Finalità

XML serve per definire il tuo formato dati. Se si desidera trasferire dati tra due sistemi, XML è spesso il modo di farlo.

Se, ad esempio, fosse necessario trasferire un ordine cliente dal proprio sito Web al proprio sistema di fatturazione, è possibile creare questo payload XML:

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

Il tuo sito Web invierebbe quindi tale XML al tuo sistema di fatturazione, che potrebbe quindi analizzare i dati da tale XML.

XHTML e HTML sono ovviamente solo per le pagine web. Lo scopo principale di XHTML è rimuovere molta dell'ambiguità che avevamo negli anni precedenti (decenni) di sviluppo web. Alla fine degli anni '90, quando ho iniziato, stavamo usando HTML 3.2 che permetteva un codice seriamente sciatto. HTML 4+ e XHTML cercano di porre rimedio a ciò suggerendo o applicando con forza tag di chiusura espliciti, attributi espliciti e tag non consentiti, il che rende più semplice sia il browser che l'uomo ed evita differenze inattese nel comportamento tra browser.


Grazie! (1) I sottoinsiemi XHTML sono sia HTML che XML? (2) È corretto che né HTML sia un sottoinsieme di XML, né XML sia un sottoinsieme di HTML? HTML e XML hanno intersezioni non vuote o totalmente separate l'una dall'altra?
StackExchange per tutto il

(3) Quali sono le differenze nel dire che una lingua è un'applicazione di un'altra, e una lingua è un sottoinsieme di un'altra?
StackExchange per tutto il

Esistono documenti conformi sia a XML che a HTML; ci sono documenti conformi a XML e non HTML, e ci sono documenti conformi a HTML e non XML. Quindi nessuno dei due è un sottoinsieme dell'altro, ma hanno un incrocio non vuoto.
Michael Kay,

@Tim: (1) HTML, XML e XHTML non sono sottoinsiemi di nulla tranne SGML. Sono tutti diversi. XML in realtà non ha praticamente nulla a che fare con HTML o XHTML ... serve a uno scopo diverso. XHTML può essere analizzato sia in HTML che in XML, ma è utilizzato solo dai browser come markup HTML. HTML e XML hanno entrambi un antenato comune di SGML, ma per il resto non sono correlati. A tutti gli effetti, sono separati perché SGML è così generico.
Giordania,

Onestamente penso che ti stai immergendo troppo nella terminologia con application vs subset. Non penso che ci sia una distinzione tra questi termini, o se esiste, dubito che sia ampiamente concordato. Basti pensare che XHTML prende in prestito concetti da XML e viene usato come un sottoinsieme rigoroso di HTML. L'HTML è arrivato per primo. XHTML è venuto dopo.
Giordania,

6

Inizierò dicendo che XML è un sottoinsieme di SGML, quindi XHTML è un sottoinsieme di XML.

L'HTML si basa su SGML ma con alcune regole diverse. XHTML è fondamentalmente una versione HTML aggiornata, ma con alcune regole lo colloca in modo che sia anche XML corretto.

Alcune note su come funziona HTML 5 Standard con altre specifiche. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

Non sono sicuro delle differenze tra SGML e XML o quando useresti l'uno rispetto all'altro. Sebbene XML sembra essere quello comunemente usato.

Per XHTML e HTML probabilmente stai meglio usando sempre XHTML. Gli errori sono più facili da trovare e come bonus sarà anche un XML valido.


Grazie! (1) Mi chiedevo come capire i due fatti apparentemente contrastanti: XML e HTML sono entrambi sottoinsiemi di SGML e HTML è un linguaggio di markup mentre XML non è un linguaggio di markup ma un metalinguaggio per la progettazione di linguaggi di markup? (2) Secondo la tua risposta, XHTML è un sottoinsieme di XML. XHTML è un superset di HTML come "sottoinsiemi XHTML HTML" citato da un link nel mio post. Quindi HTML è un sottoinsieme di XML? Non sono sicuro che sia vero.
StackExchange per tutto il

HTML infrange troppe regole per essere XML. HTML è più vicino a SGML credo. L'HTML è sciolto con i tag e c'è un determinato numero di diversi tipi di tag. XHTML solo la versione XML di HTML.
WalterJ89,

Grazie! Come in entrambi i link menzioniamo che HTML è un'applicazione di SGML e un sottoinsieme di SGML e XHTML è un'applicazione di XML. Mi chiedo quali siano le differenze tra dire che una lingua è un'applicazione di un'altra e una lingua è un sottoinsieme di un'altra?
StackExchange per tutto il

2

La storia di questi potrebbe illuminarti qui. Parlare semplicemente di meta-lingue, profili, sottoinsiemi e istanze è un po 'secco! Proverò a mantenerlo breve e semplice.

SGML si è evoluto da GML (Generalized Markup Language) che è stato ideato da 3 ingegneri IBM negli anni '60 come mezzo per conservare elaborati documenti legali, governativi, industriali e militari. Il GML è stato gradualmente perfezionato fino a quando non è stato standardizzato come SGML nel 1986.

GML / SGML non è un linguaggio in . È piuttosto una meta-lingua , cioè una lingua per definire lingue conformi o le "regole" in base alle quali la formattazione di una varietà di documenti elaborati potrebbe essere progettata in modo generalmente coerente. Ogni diverso tipo di documento definirebbe quindi il proprio insieme conforme SGML di nomi di tag più attributi associati, nonché qualsiasi identificatore / spazio dei nomi pubblico definito, schemi, ecc. Ogni formato definito in questo modo diventa quindi un linguaggio di archiviazione dei dati distinto per il documento tipo interessato. A causa della coerenza tra tutti i documenti conformi alle regole SGML, è possibile scrivere codice per raccogliere / elaborare dati all'interno di questi documenti e trasferire dati tra documenti che condividono un formato comune.

SGML è stato trovato eccessivamente elaborato per il documento numeroso ma di dimensioni inferiori. Quindi XML è stato sviluppato tra il 1996 e il 2006 come un sottoinsieme (il profilo della parola significa effettivamente lo stesso sottoinsieme) di SGML in grado di gestire sia documenti piccoli che grandi. Essendo un sottoinsieme di un meta-linguaggio, XML è esso stesso un meta-linguaggio, anche se più semplice. Si potrebbe dire che XML fornisce una base per la progettazione di formati di documenti adatti sia per l'archiviazione facile che per il trasferimento tra sistemi su una rete.

Dopo la standardizzazione di SGML, ma prima che fosse semplificata in XML, è emersa Internet e con essa è stata necessaria una formattazione del documento che consentisse un facile trasferimento e visualizzazione sia di documenti che di dati persi. Il risultato è stato il linguaggio HTML, un'istanza (a volte denominata un'applicazione ) di SGML con 18 tag predefiniti che forniscono un modo standardizzato per visualizzare una varietà di tipi di dati, ad esempio testo, immagini, audio, ecc. HTML sfruttato SGML che consente alcuni elementi per omettere i tag di inizio o fine. Le versioni successive di HTML hanno aggiunto nuovi tag e attributi e ne hanno rese obsolete alcune esistenti. Fino a HTML 5, sono state apportate modifiche all'HTML in modo che rimanga sempre un linguaggio figlio di SGML.

Dopo la standardizzazione di XML, ne è emersa un'istanza chiamata XHTML che ha combinato i nomi dei tag HTML esistenti con il rigore di XML nella chiusura dei tag, negli spazi dei nomi, negli schemi, ecc. All'inizio XHTML prometteva di essere utile per l'archiviazione, il trasferimento e la visualizzazione dei dati. Sembrava in procinto di sostituire l'HTML come il modo più comune per visualizzare il materiale Web - fino a quando non è uscito l'HTML 5. HTML 5 aveva alcune caratteristiche sintattiche che andavano oltre quelle definite in SGML in modo da fornire una visualizzazione dei dati più ricca, specialmente per i siti Web multimediali carichi. Con il passare del tempo, sono state aggiunte funzionalità aggiuntive all'HTML 5 che ne hanno arricchito ulteriormente l'utilizzo per la visualizzazione / l'utilizzo dei dati al punto che è improbabile che vengano mai sostituite dalle nuove versioni XHTML, almeno per quanto riguarda la visualizzazione dei dati in questione. Sebbene gli standard per HTML e XHTML siano stabiliti dai gruppi di lavoro del W3C, l'effettiva propagazione di questi linguaggi "sul campo" è fatta da web designer progressisti e non c'è nessuno di più progressivo di quelli che lavorano nel settore dei media (pubblicità / PR / marketing): basta guardare la creatività dei siti delle agenzie pubblicitarie rispetto ad altri siti. Questo settore è davvero arrivato al nuovo linguaggio HTML 5, felice di sfruttare la sua capacità di SVG, audio, video ele nuove API . La loro pronta adozione di HTML 5 ha portato rapidamente alla sua popolarità tra i web designer in generale, un processo accelerato dallo scambio online di competenze e trucchi su YouTube e vari altri siti. È emersa una versione XHTML aggiornata, XHTML5, ma in realtà non è un derivato XML rigoroso ma piuttosto una versione di HTML5 serializzata in XML. Solo una piccola parte dei siti sembra esserne utile.

Questa è la storia dietro questi linguaggi di dati. Spero che ti aiuti a distinguere il significato e lo scopo di tutti. Filosoficamente, questa storia mostra come uno strumento abilitante essenziale (SGML) per una nuova tecnologia (internet) possa, nel nuovo ambiente con esigenze sempre più diverse, superare i suoi limiti originali e diventare concettualmente più semplice, applicativamente più versatile e d'impatto più potente.


1

Generalmente nel mondo degli standard, un "profilo" di uno standard è una selezione di opzioni che offre lo standard: ad esempio, se lo standard consente la codifica dei documenti in UTF-8 o UTF-16, un profilo dello standard potrebbe richiedere per essere codificati in UTF-8. Il termine "sottoinsieme" ha un significato molto simile; anche se probabilmente il termine "profilo" è un po 'più ampio.


Grazie! (1) Che ne dici del significato e della differenza tra "applicazione", "sottoinsieme" e "profilo", come nella parte 5 delle mie domande? (2) In "XHTML è la base per una famiglia di futuri tipi di documenti che estendono e sottoinsieme HTML", significa che XHTML è un sottoinsieme di HTML o HTML è un sottoinsieme di XHTML?
StackExchange per tutto il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.