ACHTUNG
Unstrukturiertes XML kann nur mit dem primedocs Client verwendet werden. Eine serverseitige Verarbeitung über den Document Creation Server ist nicht möglich.
Die Fachapplikation liefert folgendes XML:
<root> <company> <name>Contoso Ltd.</name> <division>Sales</division> </company> <changedate>2019-01-01</changedate> </root>
Davon möchten wir den Inhalt von name
weiterverwenden und in der Vorlage platzieren können. Dazu muss dieses unstrukturierte XML in einem nächsten Schritt ins Connect-Format transformiert werden. In diesem Beispiel werden wir vollständiges Connect-XML erstellen (nicht Type Data).
1. Connect-Schnittstellendefinition erstellen
<CustomInterfaces> <InterfaceDescription Name="ContosoInterface" Description="Interface Contoso"> <Node Id="ContosoInterface.CompanyName">[CompanyName placeholder]</Node> <Node Id="ContosoInterface.CompanyDivision">[CompanyDivision placeholder]</Node> </InterfaceDescription> </CustomInterfaces>
2. XML-Transformation erstellen
Jetzt muss das unstrukturierte XML in eine Form gebracht werden, dass es auf die Schnittstellendefinition aus dem vorherigen Schritt passt. Wir benötigen folgendes Ergebnis aus der Transformation:
<OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Settings /> <Entries> <OneOffixxConnect> <Arguments> <TemplateId>804ea87d-37a4-4307-99d7-23d16032f426</TemplateId> <LanguageLcid>2055</LanguageLcid> </Arguments> <Function name="CustomInterfaceConnector" id="70E94788-CE84-4460-9698-5663878A295B"> <Arguments> <Interface Name="ContosoInterface"> <Node Id="ContosoInterface.CompanyName">Contoso Ltd.</Node> <Node Id="ContosoInterface.CompanyDivision">Sales</Node> </Interface> </Arguments> </Function> </OneOffixxConnect> </Entries> </OneOffixxConnectBatch>
Dazu wird im XML-Transformator ein neues Interface erstellt. In diesem wird der Connect-Rahmen vorgegeben und mittels XSLT und XPath die relevanten Daten extrahiert und transformiert.
<Configuration> <Interfaces> // ab hier <Interface name="ContosoTransformerInterface" version="1.0"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Settings /> <Entries> <OneOffixxConnect> <Arguments> <TemplateId>804ea87d-37a4-4307-99d7-23d16032f426</TemplateId> <LanguageLcid>2055</LanguageLcid> </Arguments> <Function name="CustomInterfaceConnector" id="70E94788-CE84-4460-9698-5663878A295B"> <Arguments> <Interface Name="ContosoInterface"> <Node Id="ContosoInterface.CompanyName"> <xsl:value-of select="/root/company/company" /> </Node> <Node Id="ContosoInterface.CompanyDivision"> <xsl:value-of select="/root/company/division" /> </Node> </Interface> </Arguments> </Function> </OneOffixxConnect> </Entries> </OneOffixxConnectBatch> </xsl:template> </xsl:stylesheet> </Interface> </Interfaces> </Configuration>