Andreas: SVG in XHTML

Kann man eigentlich SVG direkt in XHTML einbetten, also nicht auf eine externe Datei verweisen, sondern denn Quelltext im XHTML Text stehen haben?

  1. Hallo Andreas.

    Kann man eigentlich SVG direkt in XHTML einbetten, also nicht auf eine externe Datei verweisen, sondern denn Quelltext im XHTML Text stehen haben?

    Hilft dir das hier weiter?

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 18: Bookmarks
    Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
  2. Hallo,

    Kann man eigentlich SVG direkt in XHTML einbetten, also nicht auf eine externe Datei verweisen, sondern denn Quelltext im XHTML Text stehen haben?

    Prinzipiell schon, aber eher wenig praktikabel:

      
    <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"  
      "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"  
          xmlns:svg="http://www.w3.org/2000/svg">  
      <head>  
        <title>SVG in XHTML</title>  
      </head>  
      <body>  
        <div>  
          <object id="AdobeSVG" classid="clsid:78156a80-c6a1-4bbf-8e6a-3cd390eeb4e2"></object>  
          <?import namespace="svg" implementation="#AdobeSVG"?>  
          <svg:svg width="200" height="200">  
            <svg:circle cx="30" cy="30" r="20" fill="red" />  
            <svg:rect x="50" y="50" width="60" height="30" fill="blue" />  
          </svg:svg>  
        </div>  
      </body>  
    </html>
    

    Mit object-Element und import-PI kann das zumindest mit dem Adobe SVG Viewer + IE werden.

    MfG, Thomas

    1. Danke erstmal, wieso ist das eigentlich problematisch, wie es scheint ist doch genau so etwas in xmls vorgesehe:
      "So ist es beispielsweise problemlos möglich, eine SVG-Grafik als Dateninsel in eine XHTML-Datei einzubetten. Die SVG-Grafik muss dadurch nicht mehr referenziert werden, sondern ist Bestandteil der XHTML-Datei."

      Ist das jetzt eher ein Problem der Browser?
      Wieso funktioniert dein oberes Beispiel nur im IE?

      1. Hallo,

        Ist das jetzt eher ein Problem der Browser?

        Ja.

        Wieso funktioniert dein oberes Beispiel nur im IE?

        Weil der ASV ueber ActiveX (siehe classid) referenziert wird.

        MfG, Thomas

        1. Gibts ne Lösung die im Firefox funktioniert? Hatte im web noch das hier gefunden: http://home.arcor.de/martin.honnen/operaBugs/op8/fillChangeEmbeddedSVG.xhtml das aber wieder nur in Opera funktioniert aber eigentlich so funktioniert wie ichs mir ursprünglich vorgestellt habe.

          1. Hallo,

            Gibts ne Lösung die im Firefox funktioniert? Hatte im web noch das hier gefunden: http://home.arcor.de/martin.honnen/operaBugs/op8/fillChangeEmbeddedSVG.xhtml das aber wieder nur in Opera funktioniert aber eigentlich so funktioniert wie ichs mir ursprünglich vorgestellt habe.

            Funktioniert auch mit Firefox 1.0+ (Deer Park Alpha 1).

            MfG, Thomas

            1. Funktioniert auch mit Firefox 1.0+ (Deer Park Alpha 1).

              Kann ich leider nicht nachvollziehen, bei mir tut sich da nichts.

              1. Hallo,

                Kann ich leider nicht nachvollziehen, bei mir tut sich da nichts.

                Es ist nicht eine der normalen Firefox-Versionen 1.0x gemeint, sondern deren im Alpha-Test befindlicher Nachfolger, eben "Deer Park" mit aktivierter SVG-Unterstuetzung.

                Mal mittels "about:config" nachsehen, ob der Eintrag "svg.enabled" den Status "default" und den Wert "true" hat.

                MfG, Thomas

                1. Den richtigen Browser hatte ich schon. Werds nochmal versuchen mit about:config.

                2. Es lag am Betriebssystem. Unter 2000 musste man noch die GDI+ library installieren. Jetzt unter xp läufts. Danke für die Hilfe.