ChrisB: onclick funktioniert erst beim 2.mal klicken

Beitrag lesen

Hi,

Aber sollte XHTML5 nicht auch als XML verarbeitbar sein?

Ja - aber ist es das durch sowas nicht mehr?

Solch ein XML

<?xml version='1.0'?>  
<root>  
<elem1 id="$">elem1 inhalt</elem1>  
<elem2 id="$">elem1 inhalt</elem2>  
<elem3 id="#">elem1 inhalt</elem3>  
</root>

„fressen“ bspw. PHPs SimpleXML und die DOM Extension problemlos und ohne zu meckern. (Nicht, dass ich daraus jetzt fachliche Korrektheit unbedingt ableiten wollte.)

Das Manual zu DOMDocument::getElementById sagt bspw.,

“For this function to work, you will need either to set some ID attributes with DOMElement::setIdAttribute or a DTD which defines an attribute to be of type ID. In the later case, you will need to validate your document with DOMDocument::validate or DOMDocument->validateOnParse before using this function.”

Nach meinem Verständnis ist id erst mal ein Attribut wie jedes andere auch.
Wenn man ihm die „Sonderbedeutung“ einer XML-ID geben möchte, muss man das entweder in der DTD (gibt's nicht für HTML5) festlegen, oder bspw. mittels Namespace-Angabe explizit darauf hinweisen, also xml:id stattdessen nutzen.

Wenn ich letzteres mache (xml:id="$"), dann geben mir sowohl SimpleXML als auch DOMDocument entsprechende Warnings aus,

validity error : xml:id : attribute value $ is not an NCName

Und selbst wenn ich aus dem zwei mal benutzten $ einfach ein doppeltes xml:id="a" mache, bekomme ich

element elem2: validity error : ID a already defined

Benutze ich hingegen nur id="a" und das doppelt, gibt es kein Gemecker.

MfG ChrisB

--
The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]