Beispiel für erweiterte XML-Regel: Auswahl eines spezifischen Knotens, wenn nach Anwendung der Standardregel mehr als ein Knoten passt

Wenn Sie zum Beispiel eine Standardregel auf ein Feld anwenden, könnte es trotzdem mehrere Knoten geben, die mit dem XPath übereinstimmen. Somit können Sie aus mehreren Kandidaten wählen. Sie können eine erweiterte Regel erstellen, um den richtigen Kandidaten festzulegen.

In diesem Beispiel hat die Standardregel für eine Svefaktura-Rechnung diesen XPath für das Feld Kennung dieses Lieferanten generiert: /Invoice/SellerParty/Party/Partyidentification/ID und somit das Zuordnungsdialogfeld zeigt, dass es drei Instanzen dieses Pfads in der Rechnung gibt, nachdem Sie auf Extrahieren geklickt haben, um die Ergebnisse zu prüfen.

  1. Wählen Sie in der Registerkarte Felder des XML-Mappers (auf der rechten Seite des Fensters) in der Kategorie Lieferant das Feld Kennung aus.
  2. Klicken Sie auf die Schaltfläche rechts neben dem Wert:

    falls keine Regel definiert wurde, oder

    falls es bereits eine bestehende Regel für das Feld gibt.

  3. Öffnen Sie im Bereich für die Auswahl des XML-Knotens der erweiterten Regeln im oberen Bereich der Registerkarte Feldzuordnungsregeln, der sich auf der linken befindet, den Knoten Invoice aus.
  4. Wählen Sie den Unterknoten aus, der das Feld Kennung für den Lieferanten repräsentiert (in diesem Beispiel /Invoice/SellerParty/Party/Partyidentification/ID).
  5. Klicken Sie auf Auswählen.
  6. Wählen Sie Keine Bedingung: Entspricht wahrer und falscher Bedingung unter Bedingungen in der Mitte des Bildschirms.
  7. Wählen Sie „Wert von XML-Knoten verwenden“.
  8. Wählen Sie unten im Feld den Knoten für den Wert, der verwendet werden soll (für Svefaktura-Rechnungen, wäre das cac:ID). Sie müssen den Knoten, der angezeigt wird, eventuell öffnen, falls der Knoten, den Sie auswählen möchten, ein Unterknoten ist.
  9. Klicken Sie auf Hinzufügen.
  10. Wählen Sie XSL verwenden auf der unteren linken Seite des Fensters.
  11. Klicken Sie auf die Schaltfläche „Aus erweiterten Regeln importieren“, um den XSL-Code, der die oben ausgewählte Regel repräsentiert, zum unten stehenden Codefeld hinzuzufügen. Hier ist der Code für Svefaktura-Rechnungen:
    <xsl:template match="/">
       <xsl:for-each select="/x:Invoice/cac:SellerParty/cac:Party/cac:PartyIdentification/cac:ID">
          <xsl:value-of select="."/>   </xsl:for-each>
    </xsl:template>
  12. Verschieben Sie die Inhalte des Attributs select des <xsl:for-each>-Elements (die oben hervorgehobene Zeile in der zweiten Codezeile) zum Attribut select des <xsl:value-of>-Elements in der nächsten Zeilen, damit es wie folgt aussieht. Fügen Sie nach PartyIdentification [2] hinzu, um anzugeben dass Sie die zweite Instanz in der Datei verwenden möchten. Entfernen Sie auch das Element <xsl:for-each> vor und nach dem ursprünglichen, hervorgehobenen Text, damit der Code wie folgt aussieht:
    <xsl:template match="/">
          <xsl:value-of select="/x:Invoice/cac:SellerParty/cac:Party/cac:PartyIdentification[2]/cac:ID"/>
    </xsl:template>
  13. Klicken Sie auf Extrahieren und prüfen Sie das Bild, um die Ergebnisse zu kontrollieren. Wenn Sie die Regel ändern möchten, klicken Sie in das Feld Bei der Zuordnung dieses Feldes verwendete Regeln, wählen Sie Entf, um sie zu löschen, nehmen Sie die nötigen Änderungen vor und klicken Sie dann auf Hinzufügen, um die geänderte Regel hinzuzufügen. Wenn Sie eine Bedingung ändern möchten, ist der Ablauf gleich (und falls eine Regel darauf basiert, wird die Regel auch gelöscht, wenn Sie die Bedingung löschen).
  14. Überlegen Sie, ob die Änderung(en) auf alle Rechnungen oder nur jene der aktuellen XML-Rechnungsdefinition angewandt werden soll(en). Klicken Sie auf XML-Definition speichern, um die Änderung nur für die aktuelle XML-Rechnungsdefinition (also den aktuellen Lieferanten) zu speichern. Klicken Sie auf XML-Profil speichern, falls Sie die Regel unabhängig von der XML-Rechnungsdefinition auf alle XML-Rechnungen anwenden möchten, die mit dem XML-Rechnungsprofil übereinstimmen.