passt xmlns-namespace an.
-
Lass das besser auf http://www.w3.org/2000/svg - ohne ist das kein gültiges SVG, und wenn ein Browser das trotzdem richtig anzeigt ist das eher Zufall...
-
Wenn ich meine Links wiederfinde, begründe ich das "Warum". Sinngemäß stand da: Für das svg ist das
xmlns
ein URI (Unified Ressource Idfentifier). Der muss nicht auf eine gültige Website zeigen! Er dient dazu xml-Elemente gegeneinader abzugrenzen wenn sie in verschiedenen Ecken (namespaces) den gleichen Namen verwenden. Für Webseiten gibt es URL (Unified Ressource Locator).Gefunden habe ich diese Auskunft bei meiner Such nach einer Antwort auf: "Erzeugt dieses http://www.w3.org/2000/svg zusätzlichen Traffic?" "Ist das ein CDN?"
Ah ja, da habe ich es versteckt: #2 (comment 227816155)
Versuch 1 - Zeile 5 - [1] sowie [2] [1] = https://stackoverflow.com/questions/1181888/what-does-xmlns-in-xml-mean [2] = https://en.wikipedia.org/wiki/XML_namespace
Bitte klär mich auf, wenn ich etwas falsch verstanden oder übersehen habe. Zurückgeändert ist das schnell, klar. Beim Experimentieren habe ich lediglich festgestellt, dass ganz ohne "xmlns" gar kein SVG gerendert wird. Nach der Erklärung da oben leuchtet mir das auch ein.
Edited by Zapfenkiller -
Generell stimmt das was Du sagst - der Namespace ist ein (hoffentlich) eindeutiger Identifier, der den XML-"Dialekt" kennzeichnet. Abgerufen wird da normalerweise nichts.
Und für SVG ist der offizielle Namespace http://www.w3.org/2000/svg, und wenn da was anderes steht, dann ist es eben nicht SVG, sondern nur irgendein XML-Dialekt der zufällig so aussieht wie SVG.
Edited by Richard Kunze -
Und warum gibt es dann den xml-Dialekt in diesen expliziten HTML-Tags <svg> </svg>? Ich dachte der Browser erkennt daran um was es geht. Mit dem xmlns kann ich den Kontext unterscheiden wenn ich mehrere svg Elemente benutze. Aber ich kann das gerne wieder auf http://www.w3.org/2000/svg zurück ändern.
-
Weil <svg> eben kein HTML ist sondern SVG. Und ganz streng genommen erkennt der Browser das daran, dass das Element im SVG-Namespace liegt (d.h. am
xmlns=http://www.w3.org/2000/svg
). Dass das Element dann auch noch <svg> heißen muss wird erst durch die SVG-Spezifikation festgelegt.Deshalb funktioniert das auch ohne Angabe des Namespace nicht (dann wird das als HTML interpretiert, und unbekannte HTML-Elemente werden vom Browser ignoriert). Und wenn es mit dem falschen Namespace funktioniert ist das strenggenommen ein Browser-Bug...
Edited by Richard Kunze -
https://www.w3.org/TR/SVG2/struct.html#Namespace:
When using the HTML syntax, the namespace is provided automatically by the HTML parser. <html> <svg viewBox="0 0 100 100"> <circle cx="50" cy="50" r="50" fill="green"> </svg> </html> As the example shows there's no need to have an ‘xmlns’ attribute declaring that the element is in the SVG namespace when using the HTML parser. The HTML parser will automatically create the SVG elements in the proper namespace.
Ach nee. Im Browser muss das gemäß der Doku sogar ganz ohne xmlns abgehen. Liegt das am hugo?
-
Okay, dann kommt gleich die Änderung im namespace. Hm, erst muss ich mal nachschauen auf welchem Pfad ich das jetzt vorbereitet hatte ...
Edited by Zapfenkiller -
mentioned in commit db286659
-
mentioned in merge request !8 (merged)