277 votes

Les paramètres SVG tels que "xmlns" et "version" sont-ils nécessaires ?

Dans environ la moitié des exemples de svg que je vois sur Internet, le code est enveloppé dans un simple <svg></svg> étiquettes.

Dans l'autre moitié, les balises svg ont beaucoup d'attributs compliqués comme celui-ci :

<svg 
  xmlns="http://www.w3.org/2000/svg" 
  version="1.1" 
  xmlns:xlink="http://www.w3.org/1999/xlink"> 

Ma question est la suivante : est-il possible d'utiliser les balises svg simples ? J'ai essayé de jouer avec les balises compliquées, et tout fonctionne bien de mon côté si je ne les inclus pas.

288voto

ncomputers Points 1901

En xmlns="http://www.w3.org/2000/svg" est l'attribut :

  • Exigée pour image/svg+xml des dossiers. 1
  • En option pour souligné <svg> . 2

En xmlns:xlink="http://www.w3.org/1999/xlink" est l'attribut :

  • Exigée pour image/svg+xml fichiers avec xlink : attributs. 1
  • En option pour souligné <svg> con xlink : attributs. 2

En version="1.1" est l'attribut :

  • Recommandé pour se conformer à image/svg+xml les normes relatives aux dossiers. 3
  • Apparemment ignoré par chaque agent utilisateur. 4
  • Supprimé dans SVG 2. 5

1 Identificateurs de ressources internationalisés (RFC3987)
2 Depuis HTML5
3 Langage de balisage extensible (XML) 1.0
4 Probablement jusqu'à la sortie de nouvelles versions majeures.
5 SVG 2, Recommandation candidate du W3C, 07 août 2018

260voto

Robert Longson Points 24231

Tous les agents utilisateurs (navigateurs) ignorent l'attribut version, vous pouvez donc toujours le supprimer.

Si vous intégrez votre SVG en ligne dans une page HTML et que vous diffusez cette page en tant que text/html puis Les attributs xmlns ne sont pas nécessaires . L'intégration de SVG en ligne dans les documents HTML est une innovation relativement récente qui a été introduite dans le cadre de HTML5.

Si toutefois vous présentez votre page en tant qu'image/svg+xml ou application/xhtml+xml ou tout autre type MIME qui amène l'agent utilisateur à utiliser un analyseur XML, alors les attributs xmlns son requis . C'était la seule façon de procéder jusqu'à une date récente, de sorte que de nombreux contenus sont servis de cette manière.

11voto

jamess Points 51

J'aimerais compléter les deux réponses, mais je n'ai pas de points, j'ajoute donc une nouvelle réponse. Lors de tests récents sur Chrome (Version 63.0.3239.132 (Official Build) (64-bit Windows)), j'ai constaté que :

  1. Pour les SVG en ligne qui sont directement introduits dans le fichier HTML, via un éditeur de texte ou javascript et elm.innerHTML, les attributs xmlns ne sont pas nécessaires, comme indiqué dans les deux autres réponses.
  2. Mais pour les SVG en ligne qui sont chargés via javascript et AJAX, il y a deux options :
    • Utilice xhr.responseText y elm.innerHTML . Cela ne nécessite pas l'utilisation de xmlns.
    • Utilice xhr.responseXML.documentElement y elm.appendChild() o elm.insertBefore() . Cette méthode de création du SVG en ligne produit des résultats mitigés si l'espace de noms SVG de base n'est pas déclaré, comme dans l'exemple suivant xmlns="http://www.w3.org/2000/svg" . Le <svg> se charge dans le HTML, mais les fonctions au niveau du document, telles que getElementById() ne sont pas reconnues dans l'élément <svg>. Je suppose que c'est parce qu'il utilise l'analyseur XML de XMLHttpRequest en dehors du HTML.

3voto

Velusamy Velu Points 326

A propos de l'attribut de la version SVG du MDN WebDoc dit

Obsolète depuis SVG 2
Cette fonction n'est plus recommandée. Bien que certains navigateurs puissent encore la prendre en charge, il se peut qu'elle ait déjà été supprimée des normes web pertinentes, être en cours d'abandon, ou n'être conservée que pour des raisons de compatibilité. ou n'être conservée qu'à des fins de compatibilité. Évitez d'utiliser et mettez à jour le code existant si possible ; voir le tableau de compatibilité au bas de cette page pour vous aider à prendre votre décision. Sachez que cette peut cesser de fonctionner à tout moment.

L'attribut de version est utilisé pour indiquer quelle version spécifique de l'application est utilisée. est conforme. Il n'est autorisé que sur l'élément Root. Il est purement consultatif et n'a aucune influence sur le rendu ou le traitement.

PS : Le SVG 2 est encore loin de devenir une norme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X