Inhalt anzeigen / ausblenden

    Unstrukturiertes XML

    Achtung

    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>
    
    In diesem Artikel
    • 1. Connect-Schnittstellendefinition erstellen
    • 2. XML-Transformation erstellen
    Zurück nach oben | Deutsch | English PrimeSoft AG   I   Bahnhofstrasse 4   I   8360 Eschlikon   I   Switzerland   I   Datenschutz   I   Impressum