Skip to main content
Skip table of contents

checkXML

Wie die XML-Prüfungsfunktion checkXML aus der Java-Klasse de.softproject.xsl.XSLHelper innerhalb von XSL-Mappings verwendet wird


Die Java-Klasse de.softproject.xsl.XSLHelper befindet sich innerhalb der X4 Server-Bibliothek x4-client.jar (<X4>\Server\<wildfly>\modules\de\softproject\x4\client\main).

Ein XSL-Mapping, das diese Hilfsklasse verwendet, kann nicht in der Transformations-Vorschau des Mapping Editors ausgeführt werden.

Methodenbeschreibung

checkXML(
java.lang.String URL)

Prüft ein Dokument, das über eine beliebige gültige URL als Zeichenkette gemäß java.lang.String, referenziert wird, ob es wohlgeformtes XML ist und gibt einen Wert vom Typ boolean zurück

Gültige URL-Protkolle sind u. a.:

  • file:/// für lokale Dateien
  • xstore:// für Repository-Dokumente
  • context: für Variablen im Kontext der aktuellen X4-Prozessinstanz

Beispiel

Im Folgenden XSL-Mapping wird auf ein XML-Dokument, das in einer Prozessvariable Var1 zur Laufzeit eines zugehörigen X4-Prozesses hinterlegt wurde, über das context:-URL-Protokoll zugegriffen. Mit der eingebundenen Java-Methode checkXML erfolgt dabei innerhalb des XSL-Mappings zunächst eine Prüfung auf Wohlgeformtheit, gefolgt von einer Verarbeitung und einer Fehlerbehandlung.

HTML/XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="xslhelper" version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslhelper="de.softproject.xsl.XSLHelper">
  <xsl:output indent="yes" media-type="text/xml" method="xml"/>
  <xsl:template match="/">
    <Output>
      <!-- Checking if Var1 is XML or not  -->
      <!-- If true, output it -->
      <xsl:choose>
        <xsl:when test="xslhelper:checkXML('context:Var1')">
          <!-- Define an XSL variable and assign a process variable "Var1",
	            that is accessible as an external document via context: protocol -->
          <xsl:variable name="Var1Content" select="document('context:Var1')"/>
          <xsl:attribute name="isXML">
            <xsl:text>Yes</xsl:text>
          </xsl:attribute>
          <!-- Output XML content of Var1 -->
          <Data>
            <xsl:copy-of select="$Var1Content"/>
          </Data>
        </xsl:when>
        <xsl:otherwise>
          <xsl:attribute name="isXML">
            <xsl:text>No</xsl:text>
          </xsl:attribute>
        </xsl:otherwise>
      </xsl:choose>
    </Output>
  </xsl:template>
</xsl:stylesheet>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.