Announcement

Collapse
No announcement yet.

XSLT 2.0 und XPATH 2.0

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

  • XSLT 2.0 und XPATH 2.0

    Hallo,

    ich habe mich mal ein bisschen über XSLT 2.0 und XPATH 2.0 informiert und festgestellt, dass ich meine Projekte ohne größere Probleme darauf migrieren kann.
    Kleinere Probleme könnte es zwar geben (http://www.w3.org/TR/xpath20/#id-bac...-compatibility), aber ich möchte das versuchen.

    Kann mir jemand sagen wie ich meine Projekte nun auf XSLT 2.0 und XPATH 2.0 umstelle?

    Gruß,

    Hauke

  • #2
    Grundsätzlich kann man probieren, die Versionsnummer von xsl:stylesheet auf 2.0 zu setzen und damit zu testen. Es können Probleme auftreten, weil bei der Abfrage von Knotenmengen nicht der erste gefundene Knoten ausgegeben wird, sondern die gesamte Sequenz. Zudem kann man jedem Element ein Attribut version="..." zuweisen und bei Problemen zur Abwärtskompatibilität mal version="1.0" probieren.

    Also einfach mal unter Verwendung von Saxon oder AltovaXML anfangen. Vielleicht hilft diese Zusammenfassung (PDF) beim Verständnis.

    Comment


    • #3
      Hallo,

      ich habe nun umgestellt und folgendes Problem:

      Ich nutze ein XSLT-Script um zwei Dateien zu erstellen. Dies habe ich mit XSLT 1.0 so gemacht:

      Im ersten Template:
      Code:
      <exsl:document href="{$pathForDirectory}/data1.xml">
      ..
      </exsl:document>
      Im zweiten Template:
      Code:
      <exsl:document href="{$pathForDirectory}/data2.xml">
      ..
      </exsl:document>
      Außerdem hatte ich eine Ausgabe "daten.xml", die erstellt wurde, weil ich in der Kommandozeile eine Zieldatei angeben musste.

      Mit XSLT 2.0 schreibt dieses Script allerdings alles in die daten.xml und nichts mehr in die anderen beiden Dateien.
      Kann ich dies irgendwie umgehen?

      Gruß,

      hauke

      Comment


      • #4
        Dafür gibt es xsl:result-document, welches ebenfalls ein href-Attribut besitzt.

        Comment


        • #5
          Habe nun versucht das umzustellen und bekomme folgende ?Fehlermeldung, Warnung? in meiner IDE (ich nutze das Microsoft Visual Studio):

          Das Element 'template' in Namespace 'http://www.w3.org/1999/XSL/Transform' hat ein ungültiges untergeordnetes Element 'result-document' in Namespace 'http://www.w3.ord/1999/XSL/Transform'. Erwartet wurde die Liste möglicher Elemente: 'param, apply-templates, call-template, apply-imports, for-each, value-of, copy-of, number, choose, if, text, copy, variable, message, fallback, processing-instruction, comment, element, attribute' in Namespace 'http://www.w3.org/1999/XSL/Transform' sowie Beliebiges Element im Namespace '##other'.

          Darf das nicht im template-tag liegen? Der Code sieht in etwa so aus:
          Code:
          <xsl:template name="createDataDocument">
              <xsl:param name="pathForData" />
              ..
          
              <xsl:result-document href="{$pathForDirectory}/data1.xml">
                 ..
              </xsl:result-document>
          </xsl:template>
          Gruß,

          Hauke

          Comment


          • #6
            Visual Studio nutzt AFAIK den MSXML-Parser/Prozessor und dieser unterstützt nur XSLT 1.0.

            Comment

            Working...
            X