HTML als XML Anwendung
HTML Tidy
XHTML Basic 1.0
XHTML 1.1
HTML (3.2, 4.0) ist eine SGML Anwendung
XML ist der Standart fr erweiterbares Markup
HTML muss in XML reformuliert werden
Version 1.0, W3C Proposed Recommendation August 1999
HTML 4.01 enth„lt die notwendigen Anpassungen
im Januar 2000 als W3C Recommendation verabschiedet
August 2002 Revised Version, Second Edition
XHTML Dokumente sind XML konform.
Sie k”nnen mit XML Tools bearbeitet werden.
XHTML Dokumente k”nnen als text/html
von HTML 4.0 Browsern verwendet werden.
XHTML Dokumente k”nnen aber auch als text/xml
oder als application/xml
(mit geeigneten Style Sheets)
verwendet werden.
XHTML Dokumente k”nnen mit DOM bzw. XML-DOM verwendet werden, d.h. mit (Java)Scripts und Applets.
XHTML Dokumente verschiedener Autoren (Systeme, Umgebungen) werden besser zusammenpassen als HTML Dokumente.
Da XHTML eine XML Anwendung ist, k”nnen neue Markup-Elemente einfach hinzugefgt werden.
XHTML ist nicht mehr nur auf Browser beschr„nkt. Viele andere User-Agents (Handys, Sprachausgabe, etc.) werden damit umgehen k”nnen.
Sie mssen entsprechend der XML Definition wohlgeformte (well-formed) XML Dokumente sein.
Fr strikte Konformit„t mssen sie entsprechend einer XHTML DTD gltige (valid) XML Dokumente sein.
Das Root-Element muss <html>
sein.
Das Root-Element muss einen gltigen XHTML Namensraum bestimmen, der ein gltiger XML Namensraum sein muss.
Es muss eine XML DOCTYPE
Deklaration vor dem
Root-Element verhanden sein.
Die Internet Medien Typen (Mime Types) drfen
text/html
, text/xml
oder application/xml
sein.
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd"> <html xmlns="http://www.w3.org/TR/xhtml1"> <head> <title>Browser Titel</title> </head> <body> <h1>Dokument Titel</h1> <p> Ein Paragraph <br /> auf zwei Zeilen. </p> <math xmlns="http://www.w3.org/TR/REC-MathML"> ... Text in MathML ... </math> </body> </html>
XML-UAs mssen well-formedness feststellen.
Validierende UAs mssen das Dokument gegen alle DTDs validieren.
Bei unbekannten Elementen muss der Inhalt dargestellt werden (wie bei HTML, nicht bei XML).
Unbekannte Attribute mssen ignoriert werden (wie bei HTML, nicht bei XML).
Bei unbekannten Attribut-Werten muss der Defaultwert verwendet werden (wie bei HTML, nicht bei XML).
Unbekannte Entities mssen als Zeichenkette (&xyz;) dargestellt werden (wie bei HTML, nicht bei XML).
Unbekannte Zeichen (Characters) mssen so dargestellt werden, dass klar ist das sie nicht bekannt, aber erkennbar sind (nicht bei HTML, nicht bei XML).
Whitespace direkt nach einem Start-Tag und unmittelbar vor einem End-Tag muss ignoriert werden (falls nicht per XML etwas anderes bestimmt wurde).
XHTML Dokumente mssen well-formed sein, d.h. gltige Schachtelungsstruktur haben.
<p>Paragraph <em>Hervorhebung</em></p> statt <p>Paragraph <em>Hervorhebung</p></em>
Element- und Attribut-Namen mssen in Kleinbuchstaben geschrieben sein.
<li> statt <LI>
End-Tags mssen immer vorhanden sein
(falls nicht per XML das Element als EMPTY
deklariert wurde).
<p>Paragraph</p> <p> weiterer Paragraph</p> statt <p>Paragraph <p> weiterer Paragraph
Bei leeren Elementen ohne End-Tag muss das Start-Tag mit
"/>
" beendet werden.
<br />
Attributwerte mssen in Anfhrungszeichen eingeschlossen werden. Auch bei Zahlenwerten.
<img ... width="300" /> statt <img ... width=300 />
Attributwerte mssen immer angegeben werden.
<dl compact="compact" > statt <dl compact >
In Attributwerten wird Whitespace auf jeweils ein Blank verkrzt, bzw. am Beginn und Ende von Zeichenketten abgeschnitten.
alt=" Beschreibung eines Bildes " wird zu alt="Beschreibung eines Bildes"
Script-Texte mssen als CDATA
markiert werden,
falls sie < oder & enthalten.
<script> <![CDATA[ ... Inhalt des Scripts ]]> </script>
SGML Ausschluss-Definitionen sind nur informell festgelegt.
z.B. das a-Element darf kein weiteres a-Element enthalten.
Das name
Attribut von HTML muss als
XML id
Attribut angegeben werden.
<a name="section1" id="section1" ... >
Diese Datei in HTML als XHTML und als XML.
Processing Instructions und Zeichens„tze
werden nicht von allen UAs erkannt
<?... ?>
, UTF-8, UTF-16.
Benutze Blanks vor />
Benutze <br />
statt <br></br>
Benutze <p></p>
statt <p />
.
Benutze externe Scripte, falls "<
",
"&
" oder "]]>
" vorkommen.
Verwende keine Zeilenumbrche und mehrfache Leerzeichen in Attribut werten.
Benutze lang
und xml:lang
gleichzeitig als Attribute.
Benutze name="xyz"
und id="xyz"
gleichzeitig als Attribute fr die Bezeichnung von Elementen.
Benutze <?xml ... encoding="iso-8859-1">
und <meta http-equiv="Content-type" ... charset="iso-8859-1">
gleichzeitig fr die Bezeichnung von Zeichens„tzen.
Einige UAs haben Probleme mit Booleschen Attributen.
Problem bei DOMs:
HTML 4.0 DOM benutzt Grossbuchstaben,
XHTML 1.0 DOM benutzt Kleinbuchstaben,
XML 1.0 DOM benutzt Gross-/Klein-Buchstaben.
Problem mit "&" in Attributwerten, z.B.
href=".../script.pl?n1=w1&n2=w2"
Probleme mit Style Sheets (CSS):
Gross-/Klein-Schreibung von Elementen.
Transitional entspricht im Wesentlichen HTML 4.0
Strict enth„lt keine Elemente und Attribute, die durch CSS ersetzbar w„ren und in 'body' und 'form' drfen keine Inline-Elemente mehr enthalten sein.
Es fehlen die Elemente
applet
, basefont
, center
,
dir
, font
, iframe
,
isindex
, menue
, noframes
,
s
, strike
, u
Es fehlen unter Anderem die Attribute
background
, bgcolor
, border
,
align
,
name
(bei form, img), target
,
type
(bei li, ol, ul), value
(bei li).
In blockquote
, body
, form
und noscript
drfen unter Anderem folgende Elemente nicht mehr enthalten sein:
#PCDATA
, a
, b
,
br
, code
, small
,
strong
, em
, it
,
input
, select
, textarea
.
Frameset ist wie Transitional aber mit den Definitionen fr Frames
frame
, frameset
, noframes
und den zugeh”rigen Attributen.
Modularisierung von XHTML, d.h. zuschneiden auf bestimmte UAs
Formalisieren der Bildung von Teilmengen und Erweiterungen.
Dokument Profile
Stand im Herbst 2005
XHTML Basic, 2000 Dezember
XHTML 1.1 - Module based XHTML, 2001 Mai
XHTML 2.0, seventh Working Draft, 2005 Mai
XFrames, Working Draft, 2005 Oktober
Tool zur Fehlersuche in HTML
bietet auch Fehlerkorrektur
kann Mll von HTML-Editoren entfernen
kann HTML nach XHTML konvertieren
offizielles Tool des W3C
erkennt, prft und korrigiert Dokumenttyp
fr fast alle Plattformen verfgbar
Untersttzung von XML, ASP, PHP
Alternativen: http://validator.w3.org/, http://wave.webaim.org/.
Beispiel fr schlechtes HTML bad.html und das Ergebnis nach Bearbeitung mit HTML Tidy good.html.
> tidy exam/bad.html >exam/good.html Tidy (vers 19th October 1999) Parsing "exam/bad.html" line 3 column 1 - Warning: inserting missing 'title' element line 5 column 2 - Warning: replacing unexpected <h2> by </h1> line 5 column 37 - Warning: discarding unexpected </h3> line 7 column 42 - Warning: replacing unexpected </i> by </b> line 8 column 15 - Warning: replacing unexpected </b> by </i> line 10 column 45 - Warning: missing </i> before </h2> line 12 column 4 - Warning: inserting implicit <i> line 14 column 2 - Warning: missing </i> before <p> line 14 column 4 - Warning: inserting implicit <i> line 14 column 43 - Warning: discarding unexpected <a> line 16 column 2 - Warning: missing </a> before <li> line 16 column 2 - Warning: missing </i> before <li> line 16 column 2 - Warning: inserting implicit <ul> line 24 column 1 - Warning: unknown attribute "tidy" line 30 column 1 - Warning: <img> lacks "alt" attribute "exam/bad.html" appears to be HTML proprietary 15 warnings/errors were found! The alt attribute should be used to give a short description of an image; longer descriptions should be given with the longdesc attribute which takes a URL linked to the description. These measures are needed for people using non-graphical browsers. For further advice on how to make your pages accessible see "http://www.w3.org/WAI/GL". You may also want to try "http://www.cast.org/bobby/" which is a free Web-based service for checking URLs for accessibility. HTML & CSS specifications are available from http://www.w3.org/ To learn more about Tidy see http://www.w3.org/People/Raggett/tidy/ Please send bug reports to Dave Raggett care of <html-tidy@w3.org> Lobby your company to join W3C, see http://www.w3.org/Consortium
> tidy [[options] files]* tidy: file1 file2 ... Utility to clean up & pretty print html files see http://www.w3.org/People/Raggett/tidy/ options for tidy released on 19th October 1999 -config <file> set options from config file -indent or -i indent element content -omit or -o omit optional endtags -wrap 72 wrap text at column 72 (default is 68) -upper or -u force tags to upper case (default is lower) -clean or -c replace font, nobr & center tags by CSS -raw leave chars > 128 unchanged upon output -ascii use ASCII for output, Latin-1 for input -latin1 use Latin-1 for both input and output -iso2022 use ISO2022 for both input and output -utf8 use UTF-8 for both input and output -mac use the Apple MacRoman character set -numeric or -n output numeric rather than named entities -modify or -m to modify original files -errors or -e only show errors -quiet or -q suppress nonessential output -f <file> write errors to <file> -xml use this when input is wellformed xml -asxml to convert html to wellformed xml -slides to burst into slides on h2 elements -help or -h list command line options Input/Output default to stdin/stdout respectively Single letter options apart from -f may be combined as in: tidy -f errs.txt -imu foo.html For further info on HTML see http://www.w3.org/MarkUp
/* HTML Tidy configuration file */ markup: yes wrap: 0 doctype: strict break-before-br: yes logical-emphasis: yes enclose-text: yes /* eof */
Validierung aller Attribute
Verbesserter XML Support
Verbesserung der Zeichensatz Unterstzung
Verbesserung der ASP und PHP Unterstzung
Verbesserte Folien Erzeugung
Reduktion von XHTML 1.0 auf die Elemente und Attribute, die auch auf kleinen Ger„ten angezeigt werden k”nnen. Zum Beispiel
Die gemeinsame F„higkeiten dieser einfachen UAs erm”glichen folgende XHTML Elemente.
Elemente und Attribute, die nur auf aktuellen grafischen (PC-) Systemen funktionieren sind weggelassen.
Der Document Type ist
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
body, head, html, title
abbr, acronym, address, blockquote, br,
cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6,
kbd, p, pre, q, samp, span, strong, var
a
dl, dt, dd, ol, ul, li
form, input, label, select, option, textarea
caption, table, td, th, tr
img
object, param
meta
link
base
(*) = diese Module mssen bei XHTML Basic 1.0 mindestens untersttzt werden.
XHTML Basic 1.0 konformes Beispiel
Neuordnung von striktem XHTML 1.0 mit Hilfe von Modulen. Der Dokumenttyp ist
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
body, head, html, title
abbr, acronym, address, blockquote, br,
cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6,
kbd, p, pre, q, samp, span, strong, var
a
dl, dt, dd, ol, ul, li
object, param
b, big, hr, i, small, sub, sup, tt
del, ins
bdo
button, fieldset, form, input, label, legend,
select, optgroup, option, textarea
caption, col, colgroup, table, tbody,
td, tfoot, th, thead, tr
img
area, map
ismap
von img
meta
noscript, script
style
elementstyle
attributelink
base
ruby, rbc, rtc, rb, rt, rp
Weitere Žnderungen gegenber XHTML 1.0 Strict sind:
lang
wird ersetzt durch
xml:lang
und
name
wird ersetzt durch
id
.
© Universität Mannheim, Rechenzentrum, 1998-2005.
Heinz KredelLast modified: Mon Mar 31 12:57:05 CEST 2008