eric athur blair: Möchte SVG-Script direkt in Html einbinden

Ich programmiere schon seit längerem in HTML und möchte jetzt bei mir die Bilder möglichst alle auf SVG umstellen.

Dabei würde ich das scribt nicht als externe Datei einbinden, sondern direkt in den Html-Code Stellen. Ich weiß wie das bei den W3C-standarts CSS und JS geht,
für SVG hab ich keine Idee.

Wäre sehr dankbar wenn mir jemand auskunft geben könnte, ob, und wenn ja wie das gehen könnte.

MfG euer eric

  1. Tach eric,

    Dabei würde ich das scribt nicht als externe Datei einbinden, sondern direkt in den Html-Code Stellen.

    Grundsätzlich machbar ist das (XHTML-Absatz + roter SVG-Kreis, zum lokalen Testen einfach mal als *.xml in Firefox oder Opera laden):

      
    <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">  
      <head>  
        <title>SVG in XHTML</title>  
        <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />  
      </head>  
      <body>  
        <p>SVG in XHTML:</p>  
        <svg:svg xmlns:svg="http://www.w3.org/2000/svg">  
          <svg:circle cx="50" cy="30" r="20" fill="#F00"/>  
        </svg:svg>  
      </body>  
    </html>
    

    Allerdings muss der Inhalt dann auch XML-konform geparst werden. Für den Webeinsatz ist das eher nicht praktikabel, externe SVG-Einbindung dürfte besser funktionieren, aber SVG wird an sich leider noch immer nicht gut genug unterstützt.

    Man liest sich,
    svg4you

    1. Dabei würde ich das scribt nicht als externe Datei einbinden, sondern direkt in den Html-Code Stellen.

      Grundsätzlich machbar ist das (XHTML-Absatz + roter SVG-Kreis, zum lokalen Testen einfach mal als *.xml in Firefox oder Opera laden):

      Genau. Mehr dazu:

      Was du brauchst, ist nähmlich eine "erweiterbare"(*) Variante, die sich mit anderen XML basierten (zB. SVG) sprachen kombinieren lässt.
      (*)So steht X in XHTML für eXtensible.

      Richtig formuliert:

      "Ein XHTML+MathML+SVG-Profil ist ein Profil, das XHTML 1.1 [XHTML11], MathML 2.0 [MathML2] und SVG 1.1 [SVG11] kombiniert. Dieses Profil ermöglicht eine Mixtur aus XHTML, MathML und SVG im gleichen Dokument mit Hilfe von XML-Namensräumen [XMLNS]. Im gleichen Atemzug wird die Validierung der Dokumente mit gemischtem Namensraum gestattet. Ein DTD-Treiber für XHTML 1.1 + MathML 2.0 + SVG 1.1 ist gegeben. Eine XHTML-Version dieses Dokuments ist konform zu dieser DTD.
      Kommentar des Übersetzers"

      Nachzulesen:
      English
      Deutsch
      (Bei der deutschen Seite ist der Link zum Beispieldokument defekt.)

      Schade, dass es an I(rgend)E(inem) Browser scheitert.

      Gruß
      Shenga

  2. Versuche momentan auch SVG direkt in HTML einzubinden und eventuell sogar über JS anzusprechen und zu verändern.
    Das wäre fast wie Grafikbefehle für JS.

    Meine bisherigen Erkenntnisse sind aber eher ernüchternd.

    • Ziemlich sicher kann man SVG als externe Datei in HTML einbinden.
    • Ziemlich sicher ist SVG ein XML-Format.
    • Der nächstlogischen, SVG bzw. XML direkt in HTML einzubinden finde ich jedoch nicht.

    Es gibt die Idee der "XML-Insel", jedoch ist die wohl nur IE-propritär und scheint auch dort nicht zu klappen mit SVG.

    ----------------------------

    Folgende Sachen müssen wohl bei der Logik von SVG berücksichtigt werden.
    Das XML-Format wird zur Darstellung der Grafik speziell vom Browser interpretiert. Ist es einmal interpretiert, dann ist es eine Raster-Grafik im HTML-Code.
    Das heißt aber auch, es findet eine Transformation schon beim Laden des Seite statt, im HTML ist die Transformation abgeschlossen. Was ja auch eigentlich XML-typisch ist, XML wird immer vor der Darstellung umgewandelt. HTML kriegt nur das Ergebniss.

    Anders bei XML-Dateien, die jedesmal neu transformiert werden können.

    -----------------------------

    Mein Fazit, du musst dich mit XML auseinandersetzten, und die komplette Seite in XML schreiben, sobald du auch nur eine Minimum interaktiven SVG nutzen willst.

    Gruß, Flash