HTML / XHTML / WML / XML Validator |
||||||||||||||||||
| de | en | ||||||||||||||||||
|
||||||||||||||||||
Die Zeichensatzkodierung von XML und XHTML-Dokumenten können anhand von folgenden
Quellen ermittelt werden:
| |||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=ISO-8859-1 1: <?xml version="1.0" encoding="ISO-8859-1"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>no error</title> 8: </head> 9: <body/> 10: </html> | Keine Fehler vorhanden. Es wird der Zeichensatz aus dem HTTP-Header benutzt. | ||||||||||
HTTP-Header: Content-Type: text/xml 1: <!DOCTYPE root [ 2: <!ELEMENT foo (#PCDATA)> 3: <!ELEMENT root (foo)> 4: ]> 5: <root> 6: <foo>foo</foo> 7: </root> | Wenn keine Zeichensatzkodierung ermittelt werden kann, gibt es ein Fallback zu US-ASCII. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: EF BB BF<?xml version="1.0"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>BOM-Charset</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| Die Zeichensatzangabe ist nur am Byte Order Mark zu ermitteln, da sonst keine diesbezügliche Angaben existieren. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: <?xml version="1.0"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>automatic</title> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Dieses in UTF-16 kodierte Dokument enthält keine Zeichensatzkodierung in der XML-Deklaration. Weiterhin wird auch keine Zeichensatzkodierung im HTTP-Header übergeben. Da die Zeichensatzkodierung des Dokumentes aber anhand des binären Musters von UTF-16 zu erkennen ist, wird diese Zeichensatzkodierung verwendet. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: <?xml version="1.0" encoding="UTF-8"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>XML-Charset</title> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Da in diesem Dokument nur in der XML-Deklaration eine Zeichensatzkodierung (UTF-8) angegeben ist und im HTTP-Header keine Zeichensatzinformation übertragen wird, kommt diese zur Anwendung. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: <?xml version="1.0"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>no XML-Declaration</title> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Bei XHTML-Dokumenten führt Validome ein Fallback zu UTF-8 aus wenn keine Zeichensatzkodierungen gefunden wurden. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: <?xml version="1.0" encoding="ISO-8859-1"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 5: <head> 6: <title>XML-Charset</title> 7: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Wenn die Zeichensatzangabe der XML-Deklaration von der Zeichensatzangabe eines Meta-Tags abweicht, sollte dies gemeldet werden. | ||||||||||
Ab hier folgen einige Beispiele mit UTF-32-Kodierten Dokumenten. | |||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=UTF-32 1: 00 00 FE FF<?xml version="1.0" encoding="UTF-32"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>UTF-32 (1234)</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| Validome kann auch in UTF-32 kodierte Dokumente verarbeiten. Bei UTF-32 besteht jedes Zeichen aus 4 Byte, wobei es 4 verschiedene Reihenfolgen dieser Byte geben kann. Nachfolgend werden zur Demonstration 4 Dokumente mit diesen Reihenfolgen angeboten. 1. Byte-Reihenfolge 1234 | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=UTF-32 1: FF FE 00 00<?xml version="1.0" encoding="UTF-32"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>UTF-32 (4321)</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| 2. Byte-Reihenfolge 4321 | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=UTF-32 1: 00 00 FF FE<?xml version="1.0" encoding="UTF-32"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>UTF-32 (4321)</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| 3. Byte-Reihenfolge 2143 | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=UTF-32 1: FE FF 00 00<?xml version="1.0" encoding="UTF-32"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>UTF-32 (3412)</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| 4. Byte-Reihenfolge 3412 | ||||||||||
Ab hier folgen Beispiele mit Konflikte zwischen den möglichen Zeichensatzquellen. | |||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: FF FE<?xml version="1.0" encoding="UTF-8"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>BOM != XML</title> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Die Zeichensatzkodierung des Byte Order Mark (in diesem Fall UTF-16) weicht von der Zeichensatzkodierung der XML-Deklaration ab (UTF-8). Es muss die Zeichensatzkodierung aus dem Byte Order Mark verwendet werden. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: EF BB BF<?xml version="1.0" encoding="UTF-16"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>BOM != XML-AUTO</title>
8: </head>
9: <body />
10: </html>
| Dieses Dokument ist in UTF-16 kodiert, der Byte Order Mark "sagt" jedoch UTF-8. Da dieses Dokument mit UTF-8 validiert werden muss, sollten diverse Fehlermeldungen erscheinen. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml 1: <?xml version="1.0" encoding="UTF-8"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>XML != XML-Auto</title>
8: </head>
9: <body />
10: </html>
| Die Zeichensatzangabe der XML-Deklaration, dieses in UTF-16 kodierten Dokuments, behauptet das dieses in UTF-8 kodiert ist. Da dieses Dokument mit UTF-16 validiert werden muss, sollten diverse Fehlermeldungen erscheinen. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=UTF-8 1: <?xml version="1.0" encoding="ISO-8859-1"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>HTTP != XML</title>
8: </head>
9: <body>äöüÄÖÜß</body>
10: </html>
| Dieses Dokument ist in UTF-8 kodiert, die Zeichensatzkodierung aus dem HTTP-Header weicht jedoch von der Zeichensatzkodierung der XML-Deklaration ab. Es muss UTF-8 verwendet werden und es sollte ein entsprechender Hinweis ausgegeben werden. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=ISO-8859-11: <?xml version="1.0"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 6: <head> 7: <title>HTTP != AUTO</title> 8: </head> 9: <body>äöüÄÖÜß</body> 10: </html> | Die im HTTP-Header übergebene Zeichensatzkodierung (ISO-8859-1) weicht von der tatsächlichen Kodierung (UTF-16) des Dokumentes ab. Da ISO-8859-1 verwendet werden muss, sollten diverse Fehlermeldungen erscheinen. | ||||||||||
HTTP-Header: Content-Type: application/xhtml+xml; charset=ISO-8859-1 1: EF BB BF<?xml version="1.0"?>
2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4:
5: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
6: <head>
7: <title>HTTP != BOM</title>
8: </head>
9: <body />
10: </html>
| Während im HTTP-Header ISO-8859-1 als Zeichensatzkodierung angegeben wird, "sagt" der Byte Order Mark UTF-8. Da ISO-8859-1 verwendet werden muss, sollten diverse Fehlermeldungen erscheinen. | ||||||||||
| Datenschutzerklärung | |