joerg
Avatar joerg
Themenersteller
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)

XHTML5 und benannte Entitäten

am 22.02.2011, 17:31 Uhr eröffnete joerg folgenden Thread
HTML5 & CSS    3736 mal gelesen    7 Antwort(en).

Hallo

Nachdem ich jetzt 2 meiner Domains auf XHTML5 umgestellt habe möchte ich die Tatsache erwähnen das die Browser derzeit nicht damit klarkommen, wenn man ausser den 5 unter XML definierten Entitäten andere benannte Entitäten verwendet. Ich hoffe das sich das nicht ändern wird weil es der Spezifikation halt eben auch enspricht.

Firefox meldet dann : XML-Verarbeitungsfehler: Nicht definierte Entität
Opera bezeichnet es als Syntaxfehler.

Abhilfe kann man in der Hinsicht dann schaffen indem man das entsprechende Zeichen verwendet wenn das Dokument im Zeichensatz UTF-8 vorliegt. Bei anderen Zeichensätzen wäre die entsprechende Unicode Zeichenreferenz in dezimaler oder hexadezimaler Schreibweise eine Möglichkeit diese Problematik zu verhindern.

Wer selbst mal sehen möchte ob seine Seiten unter XHTML5 Schwierigkeiten bereiten würden kann dieses Skript nutzen.

Aufruf der Daten könnte über eine der beiden folgenden Möglichkeiten funktionieren


$url = 'http://example.com/';
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,True);
$code = curl_exec($curl);
curl_close($curl);



$code = file_get_contents('http://example.com/');


Die Ausgabe schliesst dann daran an.

header('Content-Type: application/xhtml+xml; charset=UTF-8');

if(mb_detect_encoding($code,'UTF-8,ISO-8859-1') !== 'UTF-8'){$code = utf8_encode($code);}

$code = preg_replace('#<!DOCTYPE[\s]html.*>#Uis','<!DOCTYPE html>',$code);
$code = preg_replace('#<html.*>#Uis','<html xmlns="http://www.w3.org/1999/xhtml">',$code);
echo $code;


Und wer sich dann überzeugen davon möchte ob die benannten Entitäten der einzige Grund sind der einen hindert auf XHTML5 umzustellen der könnte bei W3C seine Seite dann ja versuchen zu validieren.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 03.03.2011, 08:26 Uhr schrieb klaus_b

Hallo Jörg,

mit hilfe deines Tool [Verwendete Entitäten] konnte ich gestern abend einen schönen Filter schreiben, der mit dem Misch-Masch aufräumt. Wirklich sehr hilfreich und nützlich, was du dir da hast einfallen lassen :thumbup:

Wenn ich jetzt bei W3C nach HTML5 validiere, erhalte ich nur 2 Fehler und eine Obsolet-Warnung wegen der Verwendung des http-equiv Content-Language.
Mit dem ersten Fehlern hab ich so mein Problem und weis nicht wie ich ihn umgehen soll.

Der erste Fehler ist die Verwendung eines profile-Attribute im head. Ich verwende es für die Darstellung der XFN-Tags. W3C sagt, ich solle statt dessen den Namen als Meta-Extension registrieren und Link-Elemente verwenden. Finde bei gmpg.org/xfn aber nichts in Richtung HTML5.

Als zweiter Fehler wird die Verwendung eines "falschen" Wertes für ein http-equiv Element angemahnt. Hier vermute ich die Verwendung der "-Entität im Wert.

[html][/html]

Werde das noch prüfen und evtl. mit einem einfachen \' ersetzen.

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 03.03.2011, 09:59 Uhr schrieb joerg

Hallo Klaus

Zu dem profile Attribut im Head Bereich kann ich nicht mehr sagen das es in HTML5 halt eben entfällt aus welchen Gründen auch immer.

Und das ich immer wieder lese das man dann diese mit dem link element ansprechen sollte.

blog.3960.org/post/1185927330/von-xhtml1-zu-xhtml5-in-2-minuten



Also ich dieser Form

<link rel="profile" href="http://gmpg.org/xfn/11">

Bitte informiere dich mal in der Richtung und wenn es richtig ist kannst du ja noch mal Feedback geben. Ich habe das halt nicht auf meinen Seiten eingesetzt und kann also keine praktischen Erfahrungen in der Hinsicht aufweisen.

Die Warnung die das Meta Element verursacht kannst du durch Entfernung des Meta Elementes ja lösen. Die Angabe im html Element sollte ausreichend sein und du hast ja ausserdem noch ein meta Element mit der Sprachangabe angegeben.

Jetzt musste ich selbst erst suchen wofür das andere Meta Element mit den PICS-Label überhaupt ist.

www.w3.org/PICS/



Wenn ich das richtig sehe eine Möglichkeit wäre das in den Header einfach zu packen und die andere halt eben wie du schon erwähnt hattest auch mit einfachen Anführungszeichen zu einer Lösung zu kommen.

Danke Klaus für das Kompliment. Da du ja das Anführungszeichen als Entität verwendest was in einigen Fällen auch notwendig sein kann kann ich dir ja die Frage stellen.

Soll ich es weiter als Stelle behandeln die man kontrollieren müsste? Es ist halt eben innerhalb von Attributen auch wenn man UTF-8 sinnvoll.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 03.03.2011, 12:25 Uhr schrieb klaus_b

Hallo Jörg,
erstmal Danke für dein Feedback.

joerg schrieb:

Und das ich immer wieder lese das man dann diese mit dem link element ansprechen sollte.Also ich dieser Form

<link rel="profile" href="http://gmpg.org/xfn/11">

Ich werde das testen und mich nochmal mit \'nem Ergebnis melden.

joerg schrieb:

Die Warnung die das Meta Element verursacht kannst du durch Entfernung des Meta Elementes ja lösen.

Sehe ich genauso und werde das einfah mal so umsetzen.

joerg schrieb:
<snip>... eben wie du schon erwähnt hattest auch mit einfachen Anführungszeichen zu einer Lösung zu kommen.

Werde ich auch so testen und nochmal melden.

joerg schrieb:

Danke Klaus für das Kompliment.

Deine Seite hat mir wirklich sehr geholfen, die diversen Vorkommen der Entitäten zu finden. Dank deiner Seite muste ich an dieser Stelle keinen eigenen Parser schreiben um nach Entitäten zu suchen. Deshalb bedanke ich mich bei dir, weil du mir sehr viel Arbeit erspart hast.
Ausserdem kann man/ich ruhig zugeben, wenn jemand eine tolle Arbeit geleistet hat. Motzen kann ja jeder :wink:

joerg schrieb:
<snip>... Soll ich es weiter als Stelle behandeln die man kontrollieren müsste? Es ist halt eben innerhalb von Attributen auch wenn man UTF-8 sinnvoll.

Es kommt darauf an, wie deine Strategie aussieht:
Wenn du "nur" nach dem Vorkommen der Entität &quote; suchst, sollte ein Hinweis auf Ãœberprüfung reichen.
Falls du jedoch das umgebenden Element feststellen kannst, z.B.: in einem href-Attribute innerhalb eines a-Tag, sollte hier ein Hinweis auf eine evtl. Verwendung eines einfachen Apostroph \' erfolgen.
Es kommt immer darauf an, wie viel Energie du in deine Seite, bzw. in den darunterliegenden Parser stecken willst :wink:

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 03.03.2011, 14:18 Uhr schrieb joerg

Hallo Klaus

Deine Antwort hat mich eigentlich davon überzeugt das ich es nicht erweitere.

Grund man kann in der Regel diese beiden Entitäten also das doppelte und einfache Anführungszeichen auch als Angabe in Attributen durch andere Zeichen ersetzen. Ist halt eben manchmal auch eben eine Ansichtssache welche Zeichen man aus einer Datenbank beispielsweise kommend ausgeben möchte.

Bei dir war das jetzt ein sehr spezieller Fall der nicht gerade viele Möglichkeiten zulässt.

Die Suche geht eigentlich momentan über alle möglichen Entitäten und Zeichenreferenzen und schliesst von dem Austausch nur die 3 möglichen Schreibweisen von & < und > aus. Weil diese halt eben wirklich zu Fehlern führen können und man keine Alternativen hat wenn man den Zeichensatz UTF-8 verwendet.

Freut mich das mein Tool dir eine Menge Zeit eingespart hat.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 06.03.2011, 13:15 Uhr schrieb klaus_b

Hallo Jörg,

wie versprochen jetzt mit Ergebnissen zurück.
Ich habe zwar nicht auf XHTML5 umgestellt weil einfach zu wenig Semantik aus dem darunterliegenden CMS kommt. Aber immerhin valide auf XHTML1.1.

zu http-equiv Content-Language:
Konnte einfach entfernt werden.

zu XFN-Profile im Head:
Das Ersetzen des Profile-Attribut im head-Tag durch einen Link, wie im von dir verlinkten Blog-Artikel, funktioniert fehlerfrei. Das Verhalten der Verknüpfungen, welche die XFN rel-Attribute verwenden, hat sich nicht verändert. Sie funktionieren wie erwartet.

zu meta PICS-Label:
Mit XHTML1.1 funktioniert der meta-Tag ohne Probleme.
Für XHTML5 konnte ich keine Lösung oder auch nur einen Workaround finden. hier scheint tatsächlich mehr im Argen zu liegen.

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 06.03.2011, 19:44 Uhr schrieb joerg

Hallo Klaus

Für XHMTL1.1 müsstest du das lang Attribut noch entfernen.

In XHTML1.0 Strict und XHTML5 ist es dagegen einsetzbar.

Wie gesagt für deinen Pics Label meta Tag würde ich mir überlegen ob nicht die Möglichkeit besteht das nur per HTTP Header zu senden.

Mir ist immer noch nicht ganz klar wofür das nützlich ist und die englische Erklärung tue ich mir momentan nicht an.

Wie wäre es mal mit einer kurzen Definition dazu?

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 07.03.2011, 17:02 Uhr schrieb klaus_b

Hallo Jörg,

joerg schrieb:
Für XHMTL1.1 müsstest du das lang Attribut noch entfernen.

Hatte ich übersehen. Danke für den Hinweis.

joerg schrieb:
Wie gesagt für deinen Pics Label meta Tag würde ich mir überlegen ob nicht die Möglichkeit besteht das nur per HTTP Header zu senden.

Mir ist immer noch nicht ganz klar wofür das nützlich ist und die englische Erklärung tue ich mir momentan nicht an.

Wie wäre es mal mit einer kurzen Definition dazu?

Das PICS-Label wird von SafeSurf zur Bestätigung des Ratings einer Seite verwendet. Mit dem SafeSurf Tag Checker kann überprüft werden, ob der meta-Tag gelesen werden kann. Es wird leider kein Header unterstützt.
Der Sinn dieses meta-Tag ist die Altersfreigabe einer Webseite, die von SafeSurf bestätigt wird.

Ich denke, bis ich auf XHTML5 umstelle, haben wir hier im EU-Raum bereits eine zwingende Kennzeichnung der Alterstauglichkeit und SafeSurf hat sich dann erledigt.

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

  • 1


« zurück zu: HTML5 & CSS

Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.