Unstrukturiertes XML
Caution
Unstrukturiertes XML kann nur mit dem OneOffixx 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>