Announcement

Collapse
No announcement yet.

xinclude und xsl

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • xinclude und xsl

    hi
    ich habe folgendes xml dokument:
    HTML Code:
    <sonst>
        <menu>
        	<item>wudf</item>
        </menu>
    ...
    aus nem xsl stylesheet spreche ich -item- wie folgt an:
    HTML Code:
    <xsl:value-of select="sonst/menu/item"/>
    was auch prima funktioniert.

    wenn ich jedoch das menuelement in ein externes xml dokument auslager:
    HTML Code:
    <?xml version="1.0"?>
    <menu>
    <item>wudf</item>
    </menu>
    und per
    HTML Code:
    <sonst>
        <include xmlns="http://www.w3.org/TR/xinclude/" href="menu.xml"/>
    ...
    einbinde
    gehts nicht mehr. es kommt auch kein fehler(weder in der sonst.xml noch in der menu.xml). <xsl:value-of select="sonst/menu/item"/> bleibt einfach leer.

  • #2
    Der Namensraum von XInclude ist http://www.w3.org/2001/XInclude und nicht etwa http://www.w3.org/TR/xinclude/, was du in deinem Beispiel benutzt.
    Unabhängig davon muss du aber auch einem XML-Parser benutzen, der XInclude unterstützt, und du musst dabei den Parser auch so konfigurieren, dass XInclude unterstützt wird.
    Welchen XML-Parser benutzt du, welchen XSLT-Prozessor? Für Saxon 9 ist die Doku http://www.saxonica.com/documentatio...s/XInclude.xml relevant.

    Comment


    • #3
      hm - folgendes geht:
      Code:
      Source xmlSource = new StreamSource(new URL("http://stevg.piranho.de/t.xml").openStream());
      Source xsltSource = new StreamSource(new URL("http://stevg.piranho.de/t.xsl").openStream());
      Transformer trans = TransformerFactory.newInstance().newTransformer(xsltSource);
      trans.transform(xmlSource, new StreamResult(System.out));
      aber kann es sein das firefox und google chrome xinclude und <xsl:include> nicht verfolgen?

      Comment


      • #4
        Meines Wissens hat Firefox keine Unterstützung für XInclude, https://bugzilla.mozilla.org/show_bug.cgi?id=201754 existiert seit Jahren. xsl: include sollte Firefox können, solange die "same origin policy" erfüllt ist (also Stylesheet 1 von http://example.de/ Stylesheet 2 auch von http://example.de/ referenziert).
        Mit Chrome kenne ich mich nicht aus.

        Comment


        • #5
          jo - danke.
          in firefox gehts jetzt.


          g-chrome scheint mit
          Code:
          <?xml-stylesheet type="text/xsl" href="mmm.xsl" ?>
          <?xml-stylesheet type="text/xsl" href="ttt.xsl" ?>
          nicht klar zu kommen:
          This page contains the following errors:

          error on line 3 at column 1: Extra content at the end of the document
          Below is a rendering of the page up to the first error.

          This document was created as the result of an XSL transformation. The line and column numbers given are from the transformed result.
          ....
          dann kommt die formatierung der mmm.xsl
          bei
          Code:
          <?xml-stylesheet type="text/xsl" href="ttt.xsl" ?>
          <?xml-stylesheet type="text/xsl" href="mmm.xsl" ?>
          bekomm ich die gleiche fehlermeldung + der ttt.xsl formatierung.
          als ob er nur ein template akzeptiert

          Comment

          Working...
          X