Richtige Meta Angaben für XML

Carrear

Erfahrenes Mitglied
Hi Leute,

ich verzweifle gerade an diesen sch*** Metaangaben. Habe es im Moment so:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

und so finde ich es auch überall beschrieben, aber es ist falsch. Ich hatte es zuerst so mit drin, aber da unten gehört es eigentlich nicht hin, zumindest bei XML und es wird von gewissen Validatoren auch nicht erkannt.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <title> Lewis &amp; Partner - Ihr Berater und Partner f&uuml;r Finanzfragen und
<html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />

Bei der ersten Variante rasten die Validatoren dann allerdings komplett aus und schreiben nur noch "schwerer Fehler"

Wie bekomme ich denn sowas hin: HTTP-Header:

Content-Type: application/xhtml+xml; charset=ISO-8859-1

Ich habe es von hier: http://www.validome.org/lang/ge/errors/XML-DECLARATION aber ich weiß nicht wo ich es so deklarieren kann. Wie man es macht, ist es falsch.

Wer kennt die Lösung auf mein Problem?

Gruß
Carrear
 
Hi.
Hi Leute,

ich verzweifle gerade an diesen sch*** Metaangaben. Habe es im Moment so:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

und so finde ich es auch überall beschrieben, aber es ist falsch.
Warum? Irgendwelche Fehlermeldungen?
Bei der ersten Variante rasten die Validatoren dann allerdings komplett aus und schreiben nur noch "schwerer Fehler"

Wie bekomme ich denn sowas hin: HTTP-Header:

Content-Type: application/xhtml+xml; charset=ISO-8859-1
Das kann man nur im Web Server einstellen oder wenn man server-seitiges Skripting (PHP, Python, Perl etc.) verwendet.

Ist der verwendete Zeichensatz wirklich ISO-8859-1?

Gruß
 
Also ich habe an einigen Stellen Umlaute benutzt. Größtenteils habe ich diese zwar auch schon wieder durch Entities ersetzt, aber ich finde OFFENSICHTLICH nicht alle. Also würde ich einfach gerne auf ISO umstellen, dann ergibt sich dieses Problem ja.
 
Also ich habe an einigen Stellen Umlaute benutzt. Größtenteils habe ich diese zwar auch schon wieder durch Entities ersetzt, aber ich finde OFFENSICHTLICH nicht alle. Also würde ich einfach gerne auf ISO umstellen, dann ergibt sich dieses Problem ja.
Du hast leider keine meiner Fragen beantwortet.

Welche Fehlermeldungen bekommst du?

Verwendest du tatsächlich den ISO-8859-1 Zeichensatz?

Gruß
 
Hä? Ich verstehe gar nicht was du meinst. du siehst doch was ich verwende. Und ich habe geschrieben, was für eine Fehlermeldung kommt. Wenn ich Zeichenkodierung lasse wie im zweiten Beispiel in meinem ersten Beitrag, schreibt er "schwerer Fehler" weil da irgendwo ein Zeichen sein soll, dass nicht den Entities entspricht und wenn ich die XML Deklaration drüber mache schreibt er nur noch "schwerer Fehler" ohen irgendwas.
 
Hä? Ich verstehe gar nicht was du meinst. du siehst doch was ich verwende.
Nein, das sehe ich nicht. Ich sehe das du ISO-8859-1 als encoding angegeben hast. Und deshalb habe ich dich gefragt, ob du die Datei auch mit diesem Zeichensatz gespeichert hast?!
Und ich habe geschrieben, was für eine Fehlermeldung kommt. Wenn ich Zeichenkodierung lasse wie im zweiten Beispiel in meinem ersten Beitrag, schreibt er "schwerer Fehler" weil da irgendwo ein Zeichen sein soll, dass nicht den Entities entspricht und wenn ich die XML Deklaration drüber mache schreibt er nur noch "schwerer Fehler" ohen irgendwas.
Du solltest unbedingt versuchen dich deutlicher auszudrücken. In deinem ersten Beitrag hast du noch nichts von Character Entities geschrieben. Und warum beschreibst du mit eigenen Worten das was der Validator als Fehler ausgegeben hat? Poste doch einfach direkt das Resultat!

Außerdem wäre es äußerst nützlich eine Beispieldatei zu sehen. Häng doch bitte mal eine (kleine) Beispieldatei hier an (vorher die Endung in .txt umändern!)

Gruß
 
Nein, das sehe ich nicht. Ich sehe das du ISO-8859-1 als encoding angegeben hast. Und deshalb habe ich dich gefragt, ob du die Datei auch mit diesem Zeichensatz gespeichert hast?!

Ja, da warst du nun aber auch etwas undeutlich. Hättest du gleich die wörtchen abgespeichert als benutzt :D Okay, also ich weiß nicht wie das abgespeichert wird. Ich weiß gar nicht. Also zuerst habe ich alles im normalen Editor von Windows geschrieben. Welche Zeichensatzkodierung da genutzt wird weiß ich leider nicht. Mittlerweile bin ich auf PSPad umgestiegen und da finde ich die entsprechende einstellung nicht. Wusste bis eben ja gar nicht, dass man in einem Zeichensatz abspeichert :D

Du solltest unbedingt versuchen dich deutlicher auszudrücken. In deinem ersten Beitrag hast du noch nichts von Character Entities geschrieben. Und warum beschreibst du mit eigenen Worten das was der Validator als Fehler ausgegeben hat? Poste doch einfach direkt das Resultat!

Ich verstehe nicht was es bringt, wenn ich dir kopiere, was ich beschrieben habe, aber bitte :

Bei dieser Version:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Kommt diese Fehlermeldung:

Code:
Schwerer Fehler
Im Dokument befindet sich in Zeile 216 und Spalte 32 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichenkodierung (utf-8) nicht erlaubt.
Ich habe nach dem Zeichen gesucht, es aber nicht gefunden zumal ja nichtmal da steht was für ein Zeichen (echt superintelligent diese Validatoren).

Und bei dieser Version:

HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Zeigt er folgende Fehlermeldung:

Code:
Schwerer Fehler
Das Dokument `http://www.policy-broker.de` konnte nicht geladen werden!
Da geht dann also gar nichts mehr.

Bei dem W3C Validator zeigt er mir bei dieser Verion folgende Fehler an:
No Character Encoding Found!
Falling back to UTF-8.
None of the standards sources gave any information on the character encoding labeling for this document. Without encoding information it is impossible to reliably validate the document. As a fallback solution, the "UTF-8" encoding was used to read the content and attempt to perform the validation, but this is likely to fail for all non-trivial documents. Read the FAQ entry on character encoding for more details and pointers on how to fix this problem with your document.

Unable to Determine Parse Mode!
The validator can process documents either as XML (for document types such as
XHTML, SVG, etc.) or SGML (for HTML 4.01 and prior versions). For this document,
the information available was not sufficient to determine the parsing mode
unambiguously, because:
  • the MIME Media Type (text/html) can be used for
XML or SGML document types
  • No known Document Type could be detected
  • No XML declaration (e.g <?xml version="1.0"?>)
could be found at the beginning of the document.

As a default, the validator is falling back to SGML mode.
Dafür lässt mir dieser Validator die Erste Version als Valide durchgehen.

Außerdem wäre es äußerst nützlich eine Beispieldatei zu sehen. Häng doch bitte mal eine (kleine) Beispieldatei hier an (vorher die Endung in .txt umändern!)

Gruß

Wie meinst du das mit einem Beispiel? Ein Beispiel für was?
Danke erstmal bzw. schonmal für deine Hilfestellung.

Gruß
Carrear
 
Hi.
Ich verstehe nicht was es bringt, wenn ich dir kopiere, was ich beschrieben habe, aber bitte :
Die Fehlerausgabe ist besser, weil Beschreibungen von Benutzern nur ungenau, unrichtig und meist nicht vollständig sind.
Bei dieser Version:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Kommt diese Fehlermeldung:

Code:
Schwerer Fehler
Im Dokument befindet sich in Zeile 216 und Spalte 32 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichenkodierung (utf-8) nicht erlaubt.
Ich habe nach dem Zeichen gesucht, es aber nicht gefunden zumal ja nichtmal da steht was für ein Zeichen (echt superintelligent diese Validatoren).
Aha. Was ist denn mit der ersten Zeile deines ersten Beitrags passiert? Warum hast du die jetzt nicht angegeben? Jetzt hat der Validator dadurch angenommen das du UTF-8 als Zeichensatz verwendest. Der Validator gab doch an, das das Zeichen in Zeile 216, Spalte 32 steht. Was steht denn in Zeile 216?
Und bei dieser Version:

HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Zeigt er folgende Fehlermeldung:

Code:
Schwerer Fehler
Das Dokument `http://www.policy-broker.de` konnte nicht geladen werden!
Da geht dann also gar nichts mehr.
Wo kommt denn diese Adresse her? Ist das die Seite, die du versuchst zu validieren?
Bei dem W3C Validator zeigt er mir bei dieser Verion folgende Fehler an:
Code:
No Character Encoding Found!            
Falling back to UTF-8.
None of the standards sources gave any information on the character encoding       labeling for this document. Without encoding information it is impossible to reliably validate the document. As a fallback solution, the "UTF-8" encoding was used to read the content and attempt to perform the validation, but this is likely to fail for all non-trivial documents. Read the FAQ entry on character encoding for more details and pointers on how to fix this problem with your document.
Du hast den gleichen Fehler wie oben gemacht und kein Encoding angegeben (das meta Tag ist für den Validator uninteressant). Entweder mußt du das Encoding in der Processing Instruction für den XML Parser als erste Zeile angeben, oder das richtige Encoding als Option auf der Seite vom Validator auswählen.
Wie meinst du das mit einem Beispiel? Ein Beispiel für was?
Ein komplettes Beispiel für eine Datei die der Validator als invalide zurückweist. In dem ersten Fragment was du im ersten Beitrag gepostet hast ist kein Fehler drin. Da du selbst nicht weißt welchen Zeichensatz du verwendest wäre es evlt. hilfreich wenn ich mir die Datei mal anschauen könnte.

Gruß
 
Ja, habe auch schon festegestellt, dass dan encoding in den Meta Tags uninteressant für den ist, aber wenn ich es oben angebe geht ja gar nichts mehr. Und wenn ich es da einstelle habe ich ja daran nichts gewonnen, weil es ja angeblich auf meiner Seite nicht eingesetzt wird. Ich meine machen wir es uns doch einfacher. Wo deklariere ich denn diesem M*** ? In Zeile 216 ist nichts was auffällig wäre. Ich habe alle fragwürdigen Tags entfernt ( b tags, marquee tags usw), ich habe kontrolliert, dass die Verschachtelungen stimmen und alles richtig geschlossen wurde und in der Zeile sind auch keine Sonderzeichen, die ich irgendwie mit irgendeiner HTML Umschreibung eintragen müsste. Die Zeile ist Clean :D Die Seite die du dort sieht, ist die Seite die ich validieren möchte. Dort kannst du auch den Quellcode öffnen.

Gruß
Carrear
 
Die Seite die du dort sieht, ist die Seite die ich validieren möchte. Dort kannst du auch den Quellcode öffnen.
Bei dieser Seite zeigt mir der Validator (http://validator.w3.org/check?uri=h...(detect+automatically)&doctype=Inline&group=0) lediglich diesen Fehler an:
Code:
#  Warning  Line 117, Column 62: character "&" is the first character of a delimiter but occurred as data.

… zu Hause leben und versorgt werden k&<a href="index.php?site=index_news_vors

?

This message may appear in several cases:

    * You tried to include the "<" character in your page: you should escape it as "&lt;"
    * You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&amp;", which is always safe.
    * Another possibility is that you forgot to close quotes in a previous tag.
Gruß

PS: Wenn ich den Zeichensatz auf UTF-8 umstelle, erhalte ich die Fehlermeldung:
Code:
Sorry, I am unable to validate this document because on line 216  it contained one or more bytes that I cannot interpret as utf-8
 

Neue Beiträge

Zurück