Gemäß XML-Standard sollte man darum annehmen dürfen, daß auch die XML-Zeichencodierung angewendet werden muß, insbesondere also Apostrophs als ' zu maskieren sind.
Ich verstehe nicht, was du mit "XML-Zeichencodierung" meinst, aber dein Nachsatz ist definitiv falsch. Es gibt nur eine einzige Situation, in der "'" nicht literal vorkommen darf, das ist in Attributwerten, die mit "'" begrenzt werden, also
<elem att = 'Ma'am' />
ist natürlich ungültig. Ansonsten darfst du "'" überall literal verwenden.
<?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">
<head>
<title>Jim's Beverages</title>
wird dieses Entity aber vom MSIE weder in Version 5.5 noch 6.0 aufgelöst.
Der MSIE gibt auch bis einschliesslich Version 6 nicht vor, XHTML zu unterstützen, mit anderen Worten, er tut es nicht und verarbeitet das Dokument als HTML-Dokument. In HTML gab es kein '. In der demnächst zu veröffentlichen Zweiten Ausgabe von XHTML 1.0 wird das auch verdeutlicht und "vorgeschlagen" ' zu verwenden.
Anders als die anderen in XML vordefinierten Entities ist "'" in HTML nicht definiert. Das ist wohl der Grund für das Browserverhalten.
Richtig.
Selbstverständlich besteht die Möglichkeit, das Apostroph mit "'" zu maskieren. Dann ist es html- und XML-konform. Doch auch jenseits dieser Ausweichlösung sollte definiert sein, ob und ggf. wie Apostrophs (und evtl. weitere Zeichen?) in xhtml zu maskieren sind.
Zu maskieren sind Zeichen immer dann, wenn man nicht will, dass sie entsprechend einer etwaigen besonderen Bedeutung interpretiert werden. Man muss sie in einem der folgenden Fälle maskieren
' => s.o.
" => entsprechend '
> => In der Sequenz ]]>
< => immer
& => immer
*wie* man das macht ist egal.
Weiß jemand, ob es dazu eine Festlegung gibt? Oder ist das eine Lücke in den Normen? Oder ein Bug im MSIE?
Er unterstützt XHTML nicht.