josef stebegg: svg in xml 2

Hallo!

Danke fuer die Hilfe Thomas.M.

Ich glaube ich habe meine 1.Frage in der letzten Anfrage (schon im archiv),
"Wie muß ein embed (object,copy...) in XML aussehen, mit dem ein SVG eingebettet wird?"
noch immer nicht richtig gestellt, oder/und etwas unterschlagen.

Bei dieser Datei
http://www.innonet.at/~jstebegg/porci1.html
sieht man rechts unten ein Wappen (pa-logo.svg).
Bei
http://www.innonet.at/~jstebegg/porci1.xml
leider noch nicht.

(Ich arbeite hier mit dem ie6 und svg-viever3 von adobe)

Auf styleassistant.de gibt es viele gute Tipps u. Tricks. Tipp 89 ist aber ein anderer Fall.

mfG
josef

  1. Hallo,

    Bei dieser Datei
    http://www.innonet.at/~jstebegg/porci1.html
    sieht man rechts unten ein Wappen (pa-logo.svg).
    Bei
    http://www.innonet.at/~jstebegg/porci1.xml
    leider noch nicht.

    (Ich arbeite hier mit dem ie6 und svg-viever3 von adobe)

    Was soll das Element object in der XML-Datei bewirken? Ich nahm an, dass Du eine HTML-Ausgabe erzeugen moechtest -- was ja offenbar auch der Fall ist.

    Die Ausgabe wird doch mittels palais.xsl erzeugt. Also kannst Du doch einfach den Block
    <object data="datei.svg" type="image/xml+svg">...</object>
    wie andere HTML-Codefragmente dort mit einbauen.

    Auf styleassistant.de gibt es viele gute Tipps u. Tricks. Tipp 89 ist aber ein anderer Fall.

    Dort werden XML-Daten nach SVG transformiert (also XML nach XML).

    MfG, Thomas

    1. Hallo!

      Danke fuer die Antwort.

      Was soll das Element object in der XML-Datei bewirken? Ich nahm an, dass Du eine HTML-Ausgabe erzeugen moechtest -- was ja offenbar auch der Fall ist.

      Ja im ersten Fall habe ich die Transformation mit instand-saxon durchgefuehrt und die svg in die html eingebettet (embed) und im 2.Fall wollte ich das gleich in der xml machen.

      Die Ausgabe wird doch mittels palais.xsl erzeugt. Also kannst Du doch einfach den Block
      <object data="datei.svg" type="image/xml+svg">...</object>
      wie andere HTML-Codefragmente dort mit einbauen.

      Mein Fehler war das ich Deine <object...> anweisung in die xml geschrieben habe, anstatt in die xsl.
      Ich werde das heute abend besser machen.

      Das eigendliche Ziel ist aber das ich eine xsl fuer mehrere xml habe und in diese wahlweise svg einfuege (kopiere, verweise etc).

      Als konkretes Uebungsbeispiel habe ich 20 xml Dateien (Palais) die mit (einer) der gleichen xsl (eine css) tranformiert werden. In diese xml (bzw html) moechte ich an verschiedenen Stellen Wappen einfuegen  die als svg-dateien vorliegen.
      Dieser Verweis mueßte aber meiner Meinung nach in der xml stehen sonst mueßte ich ja auch 20 xsl haben.?

      Moeglich waere auch alles in svg zu schreiben. Svg kennt aber keinen Lauftext.

      mfg
      josef

      1. Hallo,

        Als konkretes Uebungsbeispiel habe ich 20 xml Dateien (Palais) die mit (einer) der gleichen xsl (eine css) tranformiert werden. In diese xml (bzw html) moechte ich an verschiedenen Stellen Wappen einfuegen  die als svg-dateien vorliegen.
        Dieser Verweis mueßte aber meiner Meinung nach in der xml stehen sonst mueßte ich ja auch 20 xsl haben.?

        Schreibe in die XML die SVG-Dateiverweise und erzeuge im Stylesheet das Attribut data fuer object und setze den entsprechenden Wert.

        XML:
        <grafik datei="abc.svg"/>

        XSL:
        <object type="image/xml+svg">
          <xsl:attribute name="data">
            <xsl:value-of select="/.../@datei"/>
          </xsl:attribute>
        </object>

        Moeglich waere auch alles in svg zu schreiben. Svg kennt aber keinen Lauftext.

        Naja, mit etwas Scripting kann man auch da Laufschriften erzeugen.

        MfG, Thomas

      2. Hallo,

        Svg kennt aber keinen Lauftext.

        Hier mal ein "quick & dirty"-Versuch:

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
          "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

        <svg xmlns="http://www.w3.org/2000/svg" onload="Ticker()">

        <desc>Einfacher Lauftext in SVG by TM 07/02</desc>

        <defs>

        <script type="text/javascript">
            <![CDATA[

        var svgdoc, element, ltxt, i, l;
            svgdoc=document.documentElement;
            element=svgdoc.getElementById("lauftext");
            ltxt="Das ist der Lauftext und der läuft und läuft ... ";
            i=0;
            l=ltxt.length;

        function Ticker()
            {
              txt=ltxt.substring(i,l)+ltxt.substring(0,i-1);
              element.childNodes.item(0).setData(txt)
              if (i<l)i++;
              else i=0;
              setTimeout("Ticker()",150);
            }

        ]]>
            </script>

        </defs>

        <text id="lauftext" x="20" y="50" style="fill: #F00; font-size: 20px">Lauftext</text>

        </svg>

        MfG, Thomas

        1. Hallo!

          Ich bedanke mich gleich fuer Deine beiden Beitraege.
          Ich glaube jetzt habe ich endlich das richtige. Bis ich das angewendet habe ist der thread aber schon weg.

          Mit dem Lauftext habe ich jetzt ein schlechtes Gewissen. Ich habe mit meiner schlampigen Formulierung eine Fleißaufgabe verursacht. Ich habe das selber irgendwo gelesen und dabei aber gedacht man meint damit einen Text der sich einer veraendernden Fensterbreite anpasst.
          (das geht bei svg ja auch nicht). Lauftext ist natuerlich etwas anderes.
          Vergeblich hast Du das hoffendlich nicht gemacht (kann man gut fuer ein tutorial verwenden)

          mfG
          josef