2009-08-20 5 views
0

J'ai cherché pendant un certain temps pour un tag DOCTYPE qui rendra Internet Explorer conforme aux normes pour css avec un document xml normal, comme je veux utiliser l'attribut css de l'espace blanc . This page indique que l'utilisation du "doctype 'XML'" devrait suffire pour qu'Internet Explorer 6+ arrive - Mais j'ai essayé toutes les balises DOCTYPE auxquelles je pouvais penser/trouver dans les exemples, sans obtenir les résultats attendus. Peut-être qu'il me manque quelque chose d'autre ici, mais en gros je pense que la bonne balise DOCTYPE (au bon endroit dans le code) devrait le faire.Doctype pour le mode conforme aux normes xml dans IE

Voici le code que je teste avec:

test.css:

Message { 
    white-space: pre-wrap; 
} 

Test.xml:

<?xml version="1.0"?> 
<?xml-stylesheet href="Test.css" type="text/css"?> 
<Message><![CDATA[ 
Some data 

which is pre 

formatted 
]]></Message> 

L'exemple ci-dessus fonctionne bien comme-est en FF & Safari.

Répondre

1

Cela n'existe pas car IE ne prend pas encore en charge le type mime correct, application/xml + xhtml, pour servir du code HTML en tant que langage XML. IE, cependant, supporte directement le XML, donc vous pouvez simplement écrire des emails directement sans prétendre être en HTML et ensuite utiliser une feuille de style pour faire apparaître la page en HTML. Cette méthode entraînera des violations de l'accessibilité et de la sémantique car personne ne va comprendre la grammaire de vos éléments XML.

Et c'est probablement pourquoi XML est mal adopté par le web.

0

Il n'y en a pas, pour autant que j'ai trouvé. Les docs mentent. Les documents raw-XML rendus par une feuille de style semblent toujours être en mode quirks, alors qu'en théorie ils devraient toujours être en mode standard sans tenir compte des doctypes (qui sont en quelque sorte désuets et peu utilisés en XML de nos jours).

L'exemple ci-dessus démontre pas vraiment que si ... Je l'ai testé avec quelque chose comme ceci:

<?xml-stylesheet href="test.css" type="text/css"?> 
<potato> 
    <custard>X</custard> 
</potato> 

custard { width: 150px; padding: 50px; background: yellow; } 

Cela rend la largeur totale + rembourrage 150px au lieu du 250px correct. Ajout d'un quelconque de:

<!DOCTYPE potato> 
<!DOCTYPE potato SYSTEM "blankfile.dtd"> 
<!DOCTYPE potato PUBLIC "-//W3C//DTD XHTML 1.0//EN" "blankfile.dtd"> 

ou la modification de l'élément racine de « html » et faisant référence à la véritable XHTML URI DTD, ne fait aucune différence. Le rendu XML brut reste en mode quirks. Cela n'a rien à voir avec la reconnaissance du type de média MIME application/xhtml + xml.

Je suppose que le rendu brut XML d'IE est une fonctionnalité qui n'a pas vraiment vu de mises à jour depuis IE5. Il continue d'être lent, décalé et inutile.

Questions connexes