Hallo,
im name-attribut eines ankers hatte # auch schon in HTML nichts zu suchen, vergleiche http://de.selfhtml.org/html/verweise/projektintern.htm#anker
Doch, doch. Das ist eine Neuerung in XML.
Im name-Attribut des a-Elements in HTML darf ein # vorkommmen. Das ist ein bekannter Fehler in SELFHTML (wird in 8.1.1 behoben sein).
http://www.w3.org/TR/html401/struct/links.html#adef-name-A
http://www.w3.org/TR/html401/types.html#type-cdata
Natürlich ist # in <a name="..."> trotzdem sinnlos, schließlich unterliegt eine URI, die auf diesen Anker zeigt, den allgemeinen Regeln von URIs, und da ist <a href="#bla#blub"> ungültig. Aus der Sicht von HTML 4 ist es aber erlaubt. Letztlich eine Spitzfindigkeit, es geht aber um ein generelles Missverständnis, man denke an die Diskussionen um <input name="blub[]">: Das name-Attribute in HTML fordert meist CDATA und nur in Einzelfällen NAME als Inhalt. Auch SELFHTML irrte in dem Punkt. Letztlich ist den Thesen von SELFHTML zuzustimmen (»Verwende höchstens A-Z, 0-9, Punkt, Strich und Unterstrich«), aber nicht aus den angeführten Gründen.
Mathias