XHTML: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Marius~itwiki (discussione | contributi)
m +tag WIP
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(208 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{F|formati di file|Febbraio 2015}}
{{stub informatica}}
{{Formato file
{{WIP|1=[[Utente:Marius|Marius]] [[Discussioni_utente:Marius|@]]}}
| nome = XHTML
| estensione = .xhtml, .xht, .xml, .html, .htm
| uniform_type_identifier =public.XHTML
| sviluppatore = [[W3C]]
| data_pubblicazione= 26 gennaio 2000
| ultima_versione = 2.0
| data_ultima_versione = 2 luglio 2009
| aperto = Sì
| sito = www.w3.org/MarkUp/
}}
 
L{{'}}'''XHTML''' ([[acronimo]]sigla perdi '''ExtensibleeXtensible HyperText Markup Language'''), nasce''Linguaggio ufficialmentedi ilmarcatura 26di Gennaioipertesti estensibile'') è un [[2000linguaggio di markup|linguaggio di marcatura]] edche èassocia unaalcune riformulazione diproprietà dell'[[HTMLXML]] 4con comele applicazionecaratteristiche dell'[[XMLHTML]]: 1.0,un ovverofile comeXHTML linguaggioè definitouna apagina partireHTML dascritta in conformità con lo standard XML.
Il linguaggio prevede un uso più rigido dei tag [[HTML]] e solo la struttura della pagina è scritta in XHTML, mentre l'aspetto grafico della pagina web dovrebbe essere lasciato ai [[fogli di stile]] ([[CSS]]).
 
L'XHTML è nato ufficialmente il 26 gennaio [[2000]] come standard del [[World Wide Web Consortium]] (W3C), e può essere definito tecnicamente una riformulazione dell'HTML 4.01 in XML 1.0; è una sorta di "ponte" tra questi due linguaggi.
specifiche w3c: http://www.w3.org/MarkUp/ (in inglese)
 
== Caratteristiche generali ==
specifiche w3c: http://www.w3c.cnr.it/traduzioni/xhtml1-it.html (in italiano)
L'XHTML è il successore diretto dell'HTML 4.01. La necessità di un linguaggio dotato di una [[sintassi]] meglio definita rispetto a quella dell'HTML tradizionale cominciò ad essere avvertita quando si diffuse l'uso di inviare [[pagine web]] ai nuovi dispositivi apparsi sul mercato diversi dai tradizionali [[computer]], come ad esempio piccoli apparecchi portatili, dotati di risorse [[hardware]] e [[software]] non sufficienti ad interpretare il linguaggio HTML. Va tenuto presente che più generica è la sintassi di un [[linguaggio di markup]], più difficile risulta realizzare dispositivi in grado di interpretarlo correttamente. Una specifica [[Document Type Definition]] (DTD) definisce l'insieme di regole mediante le quali un dato documento può essere [[rendering|renderizzato]] (cioè ''rappresentato correttamente'') dall'XHTML.
 
;Struttura logica della pagina
[[Categoria:Linguaggi di markup]]
Il linguaggio prevede un uso più restrittivo dei [[tag HTML]] (sia in termini di validità che in termini di sintassi) per descrivere solo la struttura logica della pagina, mentre il [[Impaginazione|layout]] e la resa grafica sono imposti dai [[foglio di stile|fogli di stile a cascata]] (''Cascading Style Sheets'', CSS).
[[Categoria:Acronimi]]
 
;Visualizzazione grafica
[[ca:XHTML]]
Tutti i [[browser]] attualmente più diffusi sono in grado di renderizzare correttamente i documenti XHTML, ma anche i browser più vecchi sono solitamente in grado di interpretare i documenti XHTML, poiché questo linguaggio è in buona parte un sottoinsieme dell'HTML e le sue regole sintattiche sono compatibili anche a ritroso. Lo stesso vale anche in senso inverso: quasi tutti i browser compatibili con l'XHTML renderizzano correttamente anche i documenti HTML.
[[de:Extensible Hypertext Markup Language]]
[[en:XHTML]]
[[eo:XHTML]]
[[es:XHTML]]
[[fi:XHTML]]
[[fr:XHTML]]
[[ia:XHTML]]
[[ja:XHTML]]
[[nl:XHTML]]
[[pl:XHTML]]
[[sv:XHTML]]
 
L{{'}}'''XHTML Transitional''' (''XHTML di transizione'', vedi oltre) si distingue dall'HTML principalmente perché è più compatibile con le specifiche dell'[[XML]] e dall'XHTML stretto (''XHTML strict'') per una maggior tolleranza nei confronti di definizioni deprecate.
<!--
 
La differenza più importante è che tutti i [[tag HTML|tag]] devono essere ben strutturati, cioè obbedire ad una serie di regole che ne assicurino la coerenza reciproca, e devono essere ''terminati'', compresi quelli ''vuoti'' (ad esempio <code>img</code> e <code>br</code>). Per eseguire la terminazione in modo implicito si può aggiungere una "/" di chiusura al tag di apertura (es: <code>&lt;img … /></code> e <code>&lt;br /></code>). Altri tipi di abbreviazione non sono invece permessi (es: <code>&lt;option selected></code>).
 
La sintassi prevede inoltre che i tag debbano essere sempre scritti in lettere minuscole, convenzione in contrasto con l'abitudine invalsa a partire dalla versione 2.0 di HTML, quando la maggior parte dei programmatori preferiva le maiuscole.
'''Extensible Hypertext Markup Language''' ('''XHTML''') is a [[markup language]] that has the same expressive possibilities as [[HTML]], but a stricter syntax. Whereas [[HTML]] was an application of [[SGML]], a very flexible [[markup language]], [[XHTML]] is an application of [[XML]], a more restrictive subset of SGML. XHTML 1.0 became a [[World Wide Web Consortium]] (W3C) Recommendation on [[January 26]], [[2000]].
 
Nell'XHTML tutti gli attributi (compresi quelli numerici) devono essere scritti fra [[virgolette]], cosa facoltativa in SGML e HTML, in cui le virgolette possono essere omesse se il contenuto è una stringa alfanumerica o comprende alcuni altri caratteri speciali riservati. Per ulteriori dettagli si rinvia alle [https://www.w3.org/TR/xhtml1/#diffs specifiche W3C XHTML]. Le pagine di [[Wikipedia]] sono state scritte usando la versione 1.0 Transitional di XHTML.
==Overview==
 
== Validazione dei documenti XHTML ==
XHTML is the successor to, and the current version of, HTML. The need for a more strict version of HTML was felt primarily as now [[web]] content needs to be delivered to many devices (like [[mobile device]]s) apart from traditional [[computer]]s, where extra resources cannot be devoted to support the generosities of HTML. (The looser the [[syntax]] of a language, the harder it is to process.) A [[DTD]] defines the rules of XHTML, against which documents can be checked.
Un documento XHTML che risponde alle specifiche è definito ''documento valido'' ovvero ''well formed''. Teoricamente, tutti i browser dovrebbero essere conformi agli standard W3C, e quindi essere in grado di rendere i documenti su qualsiasi [[piattaforma (informatica)|piattaforma]]. La validazione (cioè il ''controllo sintattico'') dei documenti XHTML non assicura tuttavia al 100% la compatibilità con tutti i browser, principalmente per limiti di questi ultimi, ma è comunque fortemente consigliata. Uno strumento per controllare la validità dei documenti è disponibile presso il ''Markup Validation Service'' del W3C (vedi [https://validator.w3.org/]).
 
Come sopra accennato, perché un documento possa essere validato, deve contenere un elemento chiamato DTD ([[Document Type Definition]] o Document Type Declaration), da posizionare preferibilmente all'inizio del documento. I tipi più comuni di DTD, e le relative sintassi dichiarative, sono:
Most of the recent versions of popular [[web browser]]s render XHTML properly, and many older browsers will also render XHTML as it is mostly a subset of HTML and most browsers do not require valid HTML. Similarly, almost all web browsers that are compatible with XHTML also render HTML properly. Some say this is slowing the switch from HTML to XHTML.
 
;XHTML 1.0 Strict
XHTML's true power is realized when used in conjunction with [[Cascading Style Sheets]]. This makes the [[separation of style and content]] an integral part of the web page's code.
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></nowiki></code>
;XHTML 1.0 Transitional
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></nowiki></code>
;XHTML 1.0 Frameset
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></nowiki></code>
;XHTML 1.1
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"></nowiki></code>
 
Il tipo di codifica applicata (''character encoding'') deve essere sempre specificato all'inizio del documento. Ciò consente al [[Validatore (informatica)|validatore]], come ad esempio quello prima citato, messo a disposizione dal W3C, di controllare se il documento risponde allo standard. Il processo di validazione identifica e fornisce una descrizione degli errori rilevati (''error log'').
The changes from HTML to transitional XHTML are minor, and are mainly to increase conformance with XML. The most important change is the requirement that all [[HTML element|tag]]s be [[well-formed tag|well-formed]]. Additionally, in XHTML, all tags must be written in lowercase. This is in direct contrast to established traditions which began around the time of HTML 2.0, when most people preferred uppercase tags. In XHTML, all attributes, even numerical ones, must be quoted. (This is not mandatory in SGML (hence in HTML), where quotes are not required if the content consists only of alphanumeric and certain allowed special characters.) All elements must also be closed, including empty elements such as <code>img</code> and <code>br</code>. This can be done by adding a closing slash to the start tag: <code>&lt;img &hellip; /></code> and <code>&lt;br /></code>. Attribute minimization (e.g., <code>&lt;option selected></code>) is also prohibited. More differences are detailed at the [http://www.w3.org/TR/xhtml1/#diffs W3C XHTML specification].
 
Alcuni degli errori più comuni che gli sviluppatori commettono scrivendo codice XHTML sono:
[[Wikipedia]] pages currently use valid XHTML 1.0 Transitional.
 
* Elementi privi di terminatore (come sopra detto l'XHTML è molto più restrittivo dell'HTML sotto questo aspetto).
==Versions of XHTML==
* Omissione del testo da visualizzare in alternativa ad un'immagine (da usare mediante l'attributo <code>alt</code>, in modo da consentire la compatibilità con dispositivi il cui display non supporta immagini).
* Inserire testi direttamente nel corpo del documento.
* Annidare<ref>Per ''annidare'' si intende inserire un blocco di codice (o di attributi) all'interno di un altro blocco di livello superiore, e così via, secondo un ordine gerarchico del tipo ''a scatole cinesi''. Ciascun livello ''vede'' e ''tratta'' i blocchi ai livelli sottostanti come ''entità'' indivisibili.</ref> blocchi di codice all'interno di elementi inline.
* Dimenticare le virgolette per delimitare gli attributi.
* Annidare gli elementi in modo non valido.
* Usare in modo scorretto entità varie (ad esempio <span style="font-size: 120%;"><code>&amp;</code></span> anziché <span style="font-size: 120%;"><code>&amp;amp;</code></span>).
* Usare le maiuscole per i nomi dei tag e/o degli attributi.
 
Questo non è, ovviamente, un elenco esauriente degli errori, ma solo un'indicazione di quelli che i programmatori commettono più frequentemente. Quando una pagina è validata utilizzando il servizio di validazione del [[W3C]], il validatore restituisce una piccola [[Icona (informatica)|icona]] che può essere inserita nel documento per comprovarne la conformità allo standard. Il W3C fornisce lo stesso servizio anche per i fogli di stile [[Foglio di stile|CSS]] e per i documenti HTML.
XHTML is HTML reformulated as [[XML]]. There are three different versions, equal in scope to their respective HTML4.0 versions.
 
== Versioni ==
* ''XHTML 1.0 Transitional'': Intended for easy migration from HTML3.2, or for those using link targets or inline-frames
Come sopra accennato, XHTML è una riformulazione di HTML come linguaggio XML. Quindi, come è logico aspettarsi, ne esistono tre differenti DTD, corrispondenti ad altrettante DTD di HTML 4.01
* ''XHTML 1.0 Strict'': Separates content from layout (which now moves to [[Cascading Style Sheets|CSS]])
* ''XHTML 1.0 Frameset'': For splitting the browser window into several [[HTML_element#Frames|frames]]
* ''XHTML 1.1'': Module-based XHTML; authors can import additional features (such as framesets) into their markup. This version also allows for [[Ruby characters|ruby]] markup support, needed for Far-Eastern languages.
* [[XHTML Basic]]: A special "light" version of XHTML for devices which cannot use the full XHTML set, primarily used on handhelds such as [[mobile phone]]s. This is the intended replacement for [[Wireless Markup Language|WML]] and [[C-HTML]].
* XHTML Mobile Profile: Based on XHTML Basic, this [[Nokia]] effort targets hand phones specifically by adding mobile phone-specific elements to XHTML Basic.
 
=== XHTML 1.0 ===
Work on XHTML 2.0 is, as of [[2004]], still underway. The XHTML 2.0 draft is controversial because it breaks backwards compatibility with all previous versions, and is therefore in effect a new markup language inspired by [X]HTML rather than a true successor of it.
* ''XHTML 1.0 Transitional'': nato per favorire la migrazione dalla vecchia versione HTML 3.2 o per uso insieme a link e frame ''in-line''. Accetta come validi anche i tag HTML che sono stati definiti come ''deprecati'' in XHTML ed è tollerante rispetto ad alcune non conformità sintattiche.
* ''XHTML 1.0 Strict'': rispetto alla versione ''Transitional'' non accetta i tag HTML definiti deprecati, non è tollerante a non conformità sintattiche e prevede controlli più rigorosi anche rispetto al valore di alcuni attributi dei tag (per esempio, l'attributo ''id'' deve avere valori univoci all'interno dello stesso documento).
* ''XHTML 1.0 Frameset'': nato per motivi di compatibilità per suddividere la finestra visualizzata dal browser in diversi [[Elemento HTML#Frame|frame]] (''sottofinestre''), pratica un tempo diffusa ma ora deprecata dal World Wide Web Consortium.
 
==Validating= XHTML documents1.1 ===
L'ultima versione di XHTML è la ''XHTML 1.1'', che è una riformulazione dell'XHTML ''Strict'', quindi ha una sola DTD. Non accetta i tag e gli attributi più criticati della precedente versione (come la struttura a [[frameset]]). Questa versione invece supporta i tag del cosiddetto markup «ruby», che consente di visualizzare i set di caratteri delle lingue orientali.
An XHTML document that conforms to the XHTML specification is said to be a valid document. In a perfect world, all browsers would follow the web standards and valid documents would predictably render on every browser and platform. Although validating your XHTML does not ensure cross-browser compatibility, it is recommended. A document can be checked for validity at the [[W3C]] Markup Validation Service ([http://validator.w3.org/]).
 
=== XHTML 2.0 ===
For a document to validate, it must contain a [[Document Type Declaration]]. A [[DTD]] should be placed at the very beginning of an XHTML document. These are the most common XHTML DTDs:
'''''XHTML 2''''' è un linguaggio di progettazione per il web; il 2 luglio [[2009]] il [[World Wide Web Consortium]] ne ha decretato la cessazione dello sviluppo<ref>[https://www.w3.org/News/2009#entry-6601 XHTML 2 Working Group Expected to Stop Work End of 2009, W3C to Increase Resources on HTML 5]</ref>, mentre era ancora in fase di specifica, a favore dell'[[HTML5]]. Nelle intenzioni, doveva rappresentare l'evoluzione dell'XHTML 1.0.
 
Si caratterizza principalmente per una struttura modulare, in cui le regole per l'impostazione dei vari elementi di una pagina web (suddivisione del testo; moduli elettronici; dati tabellari eccetera) sono descritte in moduli separati, che possono evolvere indipendentemente tra loro.<br />Rispetto alla prima versione di XHTML, vengono rese più forti le caratteristiche [[XML]] per le regole sintattiche, inoltre vengono approfondite ed estese le possibilità di controllo sui moduli elettronici (''form''), introducendo strutture più complesse ed elementi di elaborazione.<br />La definizione procedeva in parallelo a quella dell'[[HTML5]], che veniva considerato dal World Wide Web Consortium come uno standard di markup complementare rispetto a XHTML 2, ma la fase di specifica si è arrestata di fronte a due problemi:
;XHTML 1.0 Strict
# la scarsa compatibilità;
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></nowiki></code>
# si sarebbe trattato a tutti gli effetti di un markup quasi completamente nuovo, piuttosto che di un'evoluzione dell'XHTML 1.1.
;XHTML 1.0 Transitional
Dunque si è preferito abbandonare l'XHTML 2 a favore dell'[[HTML5]], che riprende alcune delle definizioni e degli approcci concepiti per XHTML 2 ma adattati per garantire un funzionamento compatibile con gli attuali browser.
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></nowiki></code>
;XHTML 1.0 Frameset
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></nowiki></code>
;XHTML 1.1
:<code><nowiki><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"></nowiki></code>
 
=== XHTML 5 ===
A character encoding should also be specified at the beginning of an XHTML document. Once an XHTML document has a doctype and character encoding specified, it can be run through a validator (such as the W3C Markup Validation Service) to see if it meets the standard. Validation will locate and describe errors in XHTML markup.
Lo standard HTML 5 include delle direttive per scrivere codice HTML processato come XML, al quale ci si riferisce abitualmente come XHTML 5.
 
Le modifiche allo standard HTML 5 sono anche implicitamente applicate all'XHTML 5, ma non si tratta di due linguaggi differenti, quanto di due diverse ''sintassi'' dello stesso linguaggio.<ref>[https://www.w3.org/TR/html5/ A vocabulary and associated APIs for HTML and XHTML]</ref> Il W3C ha messo a disposizione un manuale per produrre documenti che producano lo stesso output indipendentemente se processati come HTML o XML.<ref>{{Cita web |url=https://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5 |titolo=Polyglot Markup: A robust profile of the HTML5 vocabulary |accesso=5 maggio 2019 |dataarchivio=17 aprile 2019 |urlarchivio=https://web.archive.org/web/20190417003328/https://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5 |urlmorto=sì }}</ref>
Some of the most common errors in XHTML are:
 
=== Versioni per dispositivi mobili ===
*Unclosed elements (XHTML, unlike HTML, requires all elements be closed)
Esistono altre versioni di XHTML, studiate per dispositivi portatili:
*Failing to specify alternate text for images (using the <code>alt</code> attribute, which helps make pages accessible for devices that don't load images or screen-readers for the blind)
*Putting text directly in the body of the document
*Nesting block-level elements within inline elements
*Forgetting to put quotation marks around attribute values
*Improperly nesting elements
*Improperly using entities (such as &amp; instead of &amp;amp;).
*Use of uppercase tag names and/or tag attributes
This is not an exhaustive list, but gives a general sense of errors that XHTML coders often make.
 
* ''[[XHTML Basic]]'': versione speciale semplificata dell'XHTML, per dispositivi le cui risorse non sono in grado di supportare il set completo di comandi e tag XHTML, come ad esempio i telefoni [[Telefono cellulare|cellulari]]. È da considerare come la controparte degli esistenti linguaggi [[Wireless Markup Language|WML]] e [[C-HTML]].
When a page is validated using the [[W3C Markup Validation Service]], the [[W3C]] returns a small icon that you may place on your document to show that it conforms to web standards. The W3C also offers validation for CSS and HTML documents.
* ''[[XHTML Mobile Profile]]'': basato sulla versione ''Basic'' di XHTML, sviluppato da [[Nokia]] per aggiungere all'XHTML Basic funzionalità specifiche dei terminali telefonici.
 
== See alsoNote ==
<references/>
 
== Voci correlate ==
* [[World Wide Web Consortium]]
* [[SGML]]
* [[HTML]]
* [[XML]]
* [[HTML5]]
 
== Altri progetti ==
==External links==
{{interprogetto|preposizione=sull'}}
*[http://www.w3.org/MarkUp/ W3C's HTML Home Page]
*[http://www.w3.org/TR/xhtml1/ XHTML 1.0 Specification]
*[http://www.w3.org/TR/xhtml11/ XHTML 1.1 Specification]
*[http://www.w3.org/TR/xhtml2/ Working Draft of XHTML 2.0]
*[http://validator.w3.org/ W3C MarkUp Validation Service (Including XHTML validation)]
*[http://validate.sf.net XHTML validator on SourceForge]
*[http://www.wikibooks.org/wiki/Programming:XHTML Wikibooks XHTML tutorial] &mdash; in progress
*[http://hixie.ch/advocacy/xhtml Sending XHTML as text/html Considered Harmful]
*[http://www.ultra-fluide.com/ressources/en/semark/presentation.htm Markup of XHTML pages] - an XSLT tool using external lexicons to provide semantic markups of web contents
 
 
== Collegamenti esterni ==
[[Category:Markup languages]]
* [http://www.w3c.cnr.it/traduzioni/xhtml1-it.html Specifica XHTML 1.0] {{Webarchive|url=https://web.archive.org/web/20030615133109/http://w3c.cnr.it/traduzioni/xhtml1-it.html |data=15 giugno 2003 }} (traduzione non normativa)
[[Category:W3C standards]]
* {{cita web | 1 = http://lau.csi.it/risorse/xhtml_tagxtag/index.shtml | 2 = Lista completa dei tag XHTML con descrizione delle funzionalità, supporto dei browser ed esempi pratici di applicazione | accesso = 4 febbraio 2006 | dataarchivio = 17 febbraio 2006 | urlarchivio = https://web.archive.org/web/20060217101723/http://lau.csi.it/risorse/xhtml_tagxtag/index.shtml | urlmorto = sì }}
[[Category:XML standards]]
* {{cita web|https://www.w3.org/MarkUp/|W3C's HTML Home Page|lingua=en}}
* {{en}}[https://www.w3.org/TR/xhtml1/ Specifica XHTML 1.0] (testo originale normativo)
* {{cita web|https://www.w3.org/TR/xhtml11/|Specifica XHTML 1.1|lingua=en}}
* {{cita web|https://www.w3.org/TR/xhtml2/|Working Draft della specifica XHTML 2.0|lingua=en}}
* {{en}}[[wikibooks:XHTML (XML)|XHTML tutorial]] su Wikibooks
 
{{Controllo di autorità}}
[[ca:XHTML]]
{{Portale|internet}}
[[de:Extensible Hypertext Markup Language]]
[[es:XHTML]]
[[eo:XHTML]]
[[fr:XHTML]]
[[ia:XHTML]]
[[it:XHTML]]
[[nl:XHTML]]
[[ja:XHTML]]
[[pl:XHTML]]
[[fi:XHTML]]
[[sv:XHTML]]
 
[[Categoria:Standard W3C]]
-->
[[Categoria:HTML]]