Extraktor
Diese Dokumentfunktion extrahiert Daten aus dem aktuellen Word-Dokument und speichert diese in eine beliebige Datendatei. Diese Dokumentfunktion wird üblicherweise von DMS-Systemen wie unter anderem LoboDMS verwendet, um das Word-Dokument nach dem Speichervorgang korrekt indizieren zu können.
Die Konfiguration des Daten-Extraktors enthält ein XSLT-Skript, um ein XML-Output-Dokument zu generieren. Das XML-Output-Dokument enthält Anweisungen wie die Datendatei, die gespeichert werden soll und den Inhalt derjenigen. Das XML-Output-Dokument ist wie folgt aufgebaut:
<Extractor>
<!-- Anweisungen wie und wo das Datenfile gespeichert werden soll -->
<GlobalSettings>
<Settings>
<Active> true | false </Active>
<!-- Relativer Pfad zum Speicherort des Word-Dokument -->
<Path>.</Path>
<!-- File Extension des Datenfiles -->
<Extension>xml | csv | oocx | oneoffixx </Extension>
<!-- Soll das Datenfile versteckt im Filesystem abgelegt werden, ist diese Option true -->
<Hidden> true | false </Hidden>
</Settings>
</GlobalSettings>
<FileContent>
<!-- Inhalte des Datenfiles -->
</FileContent>
</Extractor
Als Input in die XSL-Transformation wird das XML-Output-Dokument inklusive aller CustomXML-Daten übergeben. Eine Konfiguration des Data Extractors könnte wie folgt aussehen:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:oopart="http://schema.oneoffixx.com/OneOffixxContactsPart/1" xmlns:properties="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:extendedproperties="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties">
<xsl:output method="xml" version="1.0" encoding="utf-8" />
<!-- Haupt-Template -->
<xsl:template match="/">
<xsl:element name="Extractor">
<xsl:call-template name="GlobalSettings"/>
<xsl:call-template name="FileContent"/>
</xsl:element>
</xsl:template>
<!-- Einstellungen zur Steuerung des Datenfiles -->
<xsl:template name="GlobalSettings">
<xsl:element name="Settings">
<xsl:element name="Active">true</xsl:element>
<xsl:element name="Path">.</xsl:element>
<xsl:element name="Extension">xml</xsl:element>
<xsl:element name="Hidden">false</xsl:element>
</xsl:element>
</xsl:template>
<!-- FileContent des Datenfiles -->
<xsl:template name="FileContent">
<xsl:element name="FileContent">
<xsl:call-template name="MyExtractorFile"/>
</xsl:element>
</xsl:template>
<!-- Alle Dokument-Parameter ausgeben -->
<xsl:template name="MyExtractorFile">
<xsl:element name="ExtractorData">
<xsl:call-template name="DocumentParameter"/>
</xsl:element>
</xsl:template>
<!-- Dokument-Parameter Dokumentfunktion-->
<xsl:template name="DocumentParameter">
<xsl:if test="//Parameter">
<xsl:for-each select="//Parameter/*">
<xsl:if test="normalize-space(.)">
<xsl:call-template name="Content">
<xsl:with-param name="node" select="."/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:template>
<xsl:template name="Content">
<xsl:param name="node"/>
<xsl:variable name="name" select="$node/@id"/>
<xsl:element name="{$name}">
<xsl:apply-templates select="node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>