Les parameters SVG tels que «xmlns» et «version» sont-ils nécessaires?

Dans environ la moitié des exemples svg que je vois sur Internet, le code est enveloppé de simples balises .

Dans l’autre moitié, les balises svg ont beaucoup d’atsortingbuts compliqués comme ceci:

  

Ma question est la suivante: est-il possible d’utiliser les balises svg simples? J’ai essayé de jouer avec les plus compliqués et tout fonctionne bien à ma fin si je ne les inclut pas.

Tous les agents utilisateur ignorent l’atsortingbut 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 sous la forme text/html atsortingbuts xmlns ne sont pas requirejs . L’intégration de SVG en ligne dans des documents HTML est une innovation relativement récente qui a été intégrée à HTML5.

Si toutefois vous diffusez votre page en tant qu’image / svg + xml ou application / xhtml + xml ou tout autre type MIME qui oblige l’agent utilisateur à utiliser un parsingur XML, les atsortingbuts xmlns sont requirejs . C’était la seule façon de faire les choses jusqu’à récemment, donc il y a beaucoup de contenu servi comme ça.

L’atsortingbut xmlns="http://www.w3.org/2000/svg" est:

  • Obligatoire pour les fichiers image / svg + xml . 1
  • Facultatif pour . 2

L’ xmlns:xlink="http://www.w3.org/1999/xlink" est:

  • Obligatoire pour les fichiers image / svg + xml avec les atsortingbuts xlink:. 1
  • Facultatif pour avec atsortingbuts xlink: 2

L’atsortingbut version="1.1" est:

  • Recommandé pour se conformer aux normes de fichiers image / svg + xml . 3
  • Apparemment ignoré par chaque agent utilisateur. 4

1 identificateurs de ressources internationalisés (RFC3987)
2 Depuis HTML5
3 Langage de balisage extensible (XML) 1.0
4 Probablement jusqu’à la sortie d’autres versions majeures.

J’aimerais append aux deux réponses, mais je n’ai aucun point, j’ajoute une nouvelle réponse. Lors de tests récents sur Chrome (version 63.0.3239.132 (version officielle) (Windows 64 bits)), j’ai constaté que:

  1. Pour le SVG en ligne directement entré dans le fichier HTML, via l’éditeur de texte ou javascript et elm.innerHTML, les atsortingbuts xmlns ne sont pas nécessaires, comme indiqué dans les deux autres réponses.
  2. Mais pour le SVG en ligne chargé via javascript et AJAX, il existe deux options:
    • Utilisez xhr.responseText et elm.innerHTML . Cela ne nécessite pas les xmlns.
    • Utilisez xhr.responseXML.documentElement et elm.appendChild() ou elm.insertBefore() . Cette méthode de création du SVG en ligne produit des résultats à moitié faits sans que l’espace de noms SVG de base ne soit déclaré, comme dans xmlns="http://www.w3.org/2000/svg" . Le charge dans le code HTML, mais les fonctions au niveau du document, telles que getElementById() ne sont pas reconnues sur l’élément . Je suppose que c’est parce qu’il utilise l’parsingur XML XMLHttpRequest en dehors du HTML.