jobo: javascript direkt in xml-datei einbinden?

Hallo,

css kann man einbinden:

<?xml-stylesheet type="text/css" href="dokumentation.css"?>

kann ich so aber auch javascript einbinden, und dann aus tags anker zaubern für eine html-ausgabe?

alternativen wie xslt-prozessoren oder simplexml sind mir bekannt. auch, dass javascript (ajax) xml "versteht" (ist ja auch baumstruktur, getElementByTagName() funktioniert etc.pp.).

Gruß

jobo

  1. @@jobo:

    nuqneH

    aus tags anker zaubern

    ?? Was genau willst du?

    Ist die Antwort vielleich XLink?

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Hallo Gunnar,

      aus tags anker zaubern

      ?? Was genau willst du?

      Wissen oder kapieren, ob ich mit einem xml-Tag eine Javascriptquelle einbinden kann, zum einen.

      Ist die Antwort vielleich XLink?

      Ja, XLink ist auch gut. Ich könnte ja dann mittels Javascript den fraglichen Elementen mit setAttribute() ein "xmlns:xlink" zuweisen.

      aus

      <entry>
      <address>http://example.com</address>
      <description>ExampleName</description>
      </entry>

      mach mit javascript und ggf. css:

      <a href="http://example.com">ExampleName</a>

      Es geht in der Schul-AG unter anderem auch darum zu zeigen, was man mit den verschiedenen Sprachen machen kann/könnte. xslt, simplexml, perl kommen auch vor.

      Die Umwandlung mit Javascript ist ja nicht das Problem. Das Problem ist, Javascript direkt aus dem xml-Dokument zu starten. <script src="bla.js"> wäre das HTML-Pendant.

      Gruß

      jobo

      1. Hallo,

        also sowas in der Art:

          
        <?xml version="1.0" encoding="UTF-8"?>  
        <?xml-stylesheet type="text/css" href="javascript_css.css"?>  
        <!DOCTYPE html [  
          <!ENTITY inject "&#60;script&#62;alert(1)&#60;/script&#62;">  
        ]>  
        <bla xmlns="http://www.w3.org/1999/xhtml">  
        <script language="JavaScript" >  
        <![CDATA[  
        alert("hallo");  
        window.onload = function() {  
        alert("onload");  
        }  
        ]]>  
        </script>  
        <head>  
          <title>Test</title>  
        </head>  
          
        <xody>  
        &inject;  
        </xody>  
        <du>  
        dieda  
        </du>  
        </bla>  
        
        

        quellen u.a.:

        http://www.businessinfo.co.uk/labs/xml_injection/inject.xml (aus: http://www.thespanner.co.uk/2007/10/09/injecting-the-script-tag-into-xml/,
        http://www.html-world.de/program/xml_5.php, u.a. http://forum.de.selfhtml.org/archiv/2009/6/t188181/#m1252203, wobei mir das von "suit" irgendwie nicht weitergeholfen hat, da

          
        <!ELEMENT script (#PCDATA)>  
        <!ATTLIST script  
          type        %ContentType;  #REQUIRED  
          src         %URI;          #REQUIRED  
        
        >  
        
        

        so nicht geschluckt werdeen (fragt er sich, was %ContentType sein soll).

        Entscheidend wohl "xmlns="http://www.w3.org/1999/xhtml" im Wurzelelement.

        Komisch eigentlich, dass die Injection funktioniert, obwohl der Doctype für "html" definiert ist.

        Gruß

        jobo

        1. @@jobo:

          nuqneH

          <script language="JavaScript" >
          --8<--
          <!ELEMENT script (#PCDATA)>
          <!ATTLIST script
            type        %ContentType;  #REQUIRED
            src         %URI;          #REQUIRED

          so nicht geschluckt werdeen (fragt er sich, was %ContentType sein soll).

          Für JavaScript bspw. "text/javascript". Und was #REQUIRED heißt, weißt du?

          Und findest du "language" in der ATTLIST?

          Und wo hast du her, dass 'src' #REQUIRED sein soll?

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hallo,

            <script language="JavaScript" >
            --8<--
            <!ELEMENT script (#PCDATA)>
            <!ATTLIST script
              type        %ContentType;  #REQUIRED
              src         %URI;          #REQUIRED

            so nicht geschluckt werdeen (fragt er sich, was %ContentType sein soll).

            Für JavaScript bspw. "text/javascript". Und was #REQUIRED heißt, weißt du?

            Und findest du "language" in der ATTLIST?

            Und wo hast du her, dass 'src' #REQUIRED sein soll?

            von suit. Ich weiß nicht, wie ich %ContentType setze. Das ist eine DTD-intern Var? src ist natürlich nicht required. Sonst müsste man es ja laut DTD angeben. Aber ich hätte ja auch inline-Code anzubieten (;-). Musst jetzt erstmal los.

            cuib

            Gruß

            jobo

          2. Hallo,

            Für JavaScript bspw. "text/javascript". Und was #REQUIRED heißt, weißt du?

            <!ATTLIST script
              type        CDATA #REQUIRED
              src         CDATA          #IMPLIED

            geht durch den Browser.

            <!ATTLIST script
              type        text/javascript #REQUIRED
              src         CDATA          #IMPLIED

            nicht.

            So aber gehts, auch ohne "xmlns":

            <!DOCTYPE linklist[

            <!ELEMENT script (#PCDATA)>
            <! ENTITY % ContentType "text/javascript">
            <!ATTLIST script
              type        %ContentType   #REQUIRED
              src         CDATA          #IMPLIED

            ]>

            Gruß

            jobo

        2. @@jobo:

          nuqneH

          <?xml version="1.0" encoding="UTF-8"?>
          <?xml-stylesheet type="text/css" href="javascript_css.css"?>
          <!DOCTYPE html [
            <!ENTITY inject "&#60;script&#62;alert(1)&#60;/script&#62;">
          ]>
          <bla xmlns="http://www.w3.org/1999/xhtml">

          Das ist kein valides XML.

          „Gültigkeitsbeschränkung: Wurzel-Elementtyp
          Der Name in der Dokumenttyp-Deklaration muss mit dem Elementtyp des Wurzel-Elements übereinstimmen.“ [XML §2.8]

          Mir ist übrigens immer noch nicht klar, was du eigentlich bezwecken willst.

          Was soll das JavaScript denn tun?

          Lieferst du XML aus oder transformierst (XSLT) du das nach (X)HTML?

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hallo,

            „Gültigkeitsbeschränkung: Wurzel-Elementtyp
            Der Name in der Dokumenttyp-Deklaration muss mit dem Elementtyp des Wurzel-Elements übereinstimmen.“ [XML §2.8]

            Ja, deshalb wundert ich mich auch, dass die injection funktioniert.

            Mir ist übrigens immer noch nicht klar, was du eigentlich bezwecken willst.

            Was soll das JavaScript denn tun?

            Nun, Schüler hat das mit Perl verarbeitet. Ich wollte zeigen, dass man es mit FF und css 1. anzeigen kann und 2. gucken, ob man so auch Javascript zum Laufen bekommt. Denn mit Javascript kannst Du dann ja machen was du willst mit dem Dokument. Bisher kannte ich nur, dass Javascript aus einem anderen Dokument heraus das XML abruft und verarbeitet.

            Gruß

            jobo

  2. Hallo,

    das Attribut xmlns="http://www.w3.org/1999/xhtml" im Wurzelelement bewirkt, dass Javascriptcode in einem script-Element ausgeführt wird (FF). Warum? Ein anderer Namespace bringt das nicht. Schreib ich eine 1 hinten an, gehts nimmer.

    Gruß

    jobo

    1. Hallo,

      das Attribut xmlns="http://www.w3.org/1999/xhtml" im Wurzelelement bewirkt, dass Javascriptcode in einem script-Element ausgeführt wird (FF). Warum? Ein anderer Namespace bringt das nicht. Schreib ich eine 1 hinten an, gehts nimmer.

      Alternative via DTD:

        
      <!DOCTYPE linklist[  
        
      <!ELEMENT script (#PCDATA)>  
      <! ENTITY % ContentType "text/javascript">  
      <!ATTLIST script  
        type        %ContentType   #REQUIRED  
        src         CDATA          #IMPLIED  
      
      >  
      
      ]>  
      
      

      Auch dann wird Javascript ausgeführt. Das andere hat wohl was mit xml-Schema zu tun ...???

      Gruß

      jobo

      1. Hallo,

        das Attribut xmlns="http://www.w3.org/1999/xhtml" im Wurzelelement bewirkt, dass Javascriptcode in einem script-Element ausgeführt wird (FF). Warum? Ein anderer Namespace bringt das nicht. Schreib ich eine 1 hinten an, gehts nimmer.

        Alternative via DTD:

        <!DOCTYPE linklist[

        <!ELEMENT script (#PCDATA)>
        <! ENTITY % ContentType "text/javascript">
        <!ATTLIST script
          type        %ContentType   #REQUIRED
          src         CDATA          #IMPLIED

        ]>

        
        >   
        > Auch dann wird Javascript ausgeführt. Das andere hat wohl was mit xml-Schema zu tun ...???  
          
        Nein, das stimmt nicht. Da hab ich falsch getestet. Ohne den xmlns krieg ich es zur Zeit nicht hin.  
          
        Gruß  
          
        jobo