3 votes

Les visionneuses XML natives dans Firefox et Chrome ne parviennent pas à analyser XML + XHTML

En général, je suis assez satisfait du Visualiseur XML natif dans Firefox.

Il affiche clairement et de manière utile les fichiers XML valides (comme celui ci-dessous).

Exemple de XML :

    https://example.com/
    2020-03-17T15:57:23+00:00

Cependant, j'ai remarqué que dès que j'ajoute du XHTML au XML (en utilisant le bon Espace de Noms XHTML - voir ci-dessous), les Visualiseurs XML dans Firefox et Chrome reviennent à afficher le XML en texte brut :

Espace de Noms et Élément XHTML :

  • Espace de Noms XHTML : xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Élément XHTML :

Exemple de XML + XHTML :

    https://example.com/
    2020-03-17T15:57:23+00:00

    https://example.com/de/
    2020-03-12T19:42:12+00:00

Pendant longtemps, j'ai pensé introduire une erreur dans mon XML et le rendre invalide. Mais j'ai vérifié auprès de nombreux validateurs XML tiers et le XML est définitivement valide. C'est juste que les visualiseurs natifs du navigateur (apparemment) ne peuvent pas gérer l'inclusion de XHTML dans le XML.

Y a-t-il quelque chose que je peux faire dans cette situation pour aider les visualiseurs XML natifs dans Firefox et Chrome à comprendre et interpréter le balisage comme du XML ou est-ce qu'il n'y a rien à faire pour le moment et que les logiciels tiers sont la seule réponse ?

1voto

Ernesto Ibarra Points 11

Les navigateurs Web essaient de rendre tout ce que vous leur lancez en HTML. Seulement, s'ils savent avec certitude qu'il n'y a pas de HTML, ils le rendront soit en texte brut soit en XML, ce dernier étant présenté sous forme d'arborescence (comme dans votre premier exemple). Les exceptions notables seraient SVG et MathML, qui sont rendus différemment.

Étant donné que le navigateur a détecté du HTML dans votre deuxième exemple, il est passé en mode HTML.

Une petite explication :

Dès lors que le navigateur dispose d'informations de style pour les éléments, il les utilise. C'est le cas pour le HTML (pour lequel les styles par défaut sont codés en dur dans le navigateur). Cela sera également le cas lorsque le navigateur trouve du CSS associé à n'importe quel XML, que ce soit via l'instruction de traitement

ou via du style intégré (via l'élément HTML style)

  @namespace url("http://www.example.org/ns/example");
  @namespace html url("http://www.w3.org/1999/xhtml");
  paragraph {display: block;}
  meta {display: none;}
  html|style {display:none;}
  html|script {display:none;}

Dans votre deuxième exemple, il a trouvé de telles informations de style, puisqu'il a trouvé du HTML, pour lequel il possède des styles codés en dur et implicites, et il l'a donc rendu stylisé.

Lorsque le navigateur rend le document XML, il rendra tous les éléments pour lesquels il n'a pas de style par défaut en contenu en ligne. Cela pourrait être la raison pour laquelle vous avez pensé qu'il affichait le contenu en texte brut.

S'il avait trouvé des éléments de script HTML, il aurait exécuté le Javascript inclus. Ainsi, la vue en arborescence est simplement une solution de secours et non par défaut.

Si vous n'aimez pas ce comportement, vous pourriez essayer de vérifier si votre navigateur Web prend en charge un paramètre de configuration qui modifie ce comportement, mais je n'en connais aucun.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X