Announcement

Collapse
No announcement yet.

MSXML und xsl:include

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

  • MSXML und xsl:include

    Hi,

    ich habe in VBA docXml und docXsl als MSXML2.DOMDocument definiert, bei der Transformation docXml.transformNode(docXsl) werden jedoch Fehlermeldungen ausgeworfen, er könne Definitionen aus der per xsl:include eingeschlossenen Datei nicht finden.

    Die Transformation in XML Spy hingegen funktioniert einwandfrei, daher vermute ich, daß es an MSXML liegt, daß die inkludierte Datei nicht korrekt verarbeitet wird.

    Hat jemand schon mal ähnliche Erfahrungen gemacht oder eine Idee wie es zu dieser Fehlermeldung kommen kann?
    --
    Cheers Vince

  • #2
    könnte daran liegen das xi:include nicht ausgeführt wird.
    XmlSpy hat einen der in Java geschiebenen Xsl Parser
    basiert meist auf xslt2 Version und ist einer der neusten Versionen


    was zum Lesen
    http://msdn.microsoft.com/en-us/library/aa302291.aspx

    zum Programmieren
    So bearbeiten Sie XML-Daten in .NET

    Comment


    • #3
      Was für "Definitionen" sind das, die nicht gefunden werden? Wie lautet die genaue Fehlermeldung? Poste am besten ein minimales, aber komplettes Beispiel, das es erlaubt, das Problem zu reproduzieren.
      Je nach MSXML Version (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx) muss man das Benutzen von xsl: include bzw. import erlauben.

      Comment


      • #4
        Beispiel

        Hi,

        Originally posted by Martin Honnen View Post
        Was für "Definitionen" sind das, die nicht gefunden werden? Wie lautet die genaue Fehlermeldung? Poste am besten ein minimales, aber komplettes Beispiel, das es erlaubt, das Problem zu reproduzieren.
        Je nach MSXML Version (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx) muss man das Benutzen von xsl: include bzw. import erlauben.
        Meine VBA-Funktion nutzt ein Detail-XSLT welches seinerseits ein Master-XSLT einschließt.

        Im Master XSLT befinden sich dann diverse Funktionen wie

        Code:
        <xsl:template match="*" mode="DateTime">
        	<xsl:value-of select="concat(., $FieldSeparator)"/>
        </xsl:template>
        Die Transformation liefert dann Fehlermeldungen wie

        Ein Verweis auf Variable oder Parameter 'FieldSeparator' kann nicht gelöst werden. Die Variable bzw. der Parameter ist möglicherweise nicht definiert oder befindet sich außerhalb des Gültigkeitsbereichs.

        und das läßt meiner Meinung nach darauf schließen, daß der xsl:include-Aufruf fehlschlägt.
        --
        Cheers Vince

        Comment


        • #5
          Du benutzt MSXML 6 (mit Set docXsl = New MSXML2.DOMDocument60), da sagt die Dokumentation, auf die ich den Link gepostet habe (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx)), deutlich, dass man erst
          Code:
          Set docXsl = New MSXML2.DOMDocument60
          docXsl.resolveExternals = True
          setzen muss, wenn man include/import erlauben will.
          Zuletzt editiert von Martin Honnen; 06.01.2011, 13:21. Reason: Korrektur eines Tippfehlers

          Comment


          • #6
            Blindfisch

            Hi,

            Originally posted by Martin Honnen View Post
            Du benutzt MSXML 6 (mit Set docXsl = New MSXML2.DOMDocument60), da sagt die Dokumentation, auf die ich den Link gepostet habe (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx)), deutlich, dass man erst
            Code:
            Set docXsl = New MSXML2.DOMDocument60
            docXsl.resolveExternals = True
            setzen muss, wenn man include/import erlauben will.
            oh verdammt - ich habe echt kurz vor Ende aufgehört die Seite durchzulesen ... Ja, da steht's natürlich für Idioten wie mich hinreichend deutlich - danke für den (erneuten) Hinweis!
            --
            Cheers Vince

            Comment

            Working...
            X