Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Die XML Strukturdefinition beschreibt für ein Business Object (BO), wie die XML Inhalte aus der gegebenen XML Datei auf die Attribute/Felder übertragen werden (Mapping). Die Strukturdefinition benötigt die folgenden Angaben:

Match (Struktur)

Einfacher XPath Ausdruck, der die Attributverarbeitung (s.u.) der Strukturdefinition triggert.

Businessobjekt

Das BO, das durch diese Strukturdefinition erzeugt (aktualisiert/gelöscht) wird.

Attribute

Jede Zeile definiert, wie ein Attribut (Feld) des BOs aus dem XML extrahiert werden soll.

Match (Attribut)

Einfacher XPath Ausdruck (relativ zum Struktur Match), der den XML Knoten (Element bzw. Attribute) auswählt, dessen Wert auf das BO Attribut übertragen wird. Details weiter unten.

Attribut (BO)

BO Attribut (Feld), in den der aus dem XML extrahierte Wert eingetragen wird.

Berechnungsausdruck

Über das Feld Berechnungsausdruck kann ein zu importierendes Attribut dynamisch berechnet werden. Dies ist z.B. notwendig, wenn der Wert eines BO Attributes aus mehreren XML Knoten-Werten zusammen gesetzt werden muss. Über ein Groovy-Script können Sie den zu importierenden Wert für jede Zeile aus den kompletten Daten der Zeile ableiten. Dabei sehen in die Variablen values (java.lang.String[]), alle Werte der aktuellen Zeile 0-indiziert), line (java.lang.Integer, die aktuelle Zeilennummer in der XML Datei) und log (org.nuclos.server.fileimport.ImportLogger) zur Verfügung.

Format (Parsestring)

Verhält sich genau wie beim CSV Import (weitere Informationen dort).

 

Warnung

Format wird nur verwendet, wenn kein Berechnungsausdruck (Script) hinterlegt ist.

XML Datei Import

Der XML Datei Import definiert, in welcher Reihenfolge die Strukturdefinitionen abgearbeitet werden. Der eigentliche Import geht dann wie folgt vor sich:

...

  • Die XML Datei muss well-formed sein. Ein XML Schema wird nicht benötigt (und kann auch nicht angegeben werden)
  • Der XML Import von Dateien mit mixed content (d.h. in einem Tag können sich gleichzeitig Text und Unterelemente befinden) ist nicht vorgesehen. Anders gesagt: in jedem XML Element befindet sich entweder Text oder weitere XML Element Elemente (Tags).
  • Die Inhalte für ein BO müssen sich im XML in einem zusammenhängenden Teilbaum befinden. Diese Teilbäume müssen für den Import komplett in den Speicher geladen werden, sie sollten also möglichst klein sein.

...

Info
Warum ist der XML Import fern von XML und so nah am CSV Import?

Das liegt an Einschränkungen im Nuclos Kern, insbesondere an:

  • Kein Support für rekursive Datenstrukturen
  • Ein BO kann nur einmal als Unterformular in einer einem anderen BO angezeigt werden. Es ist nicht möglich, dasselbe BO in mehren mehreren (unterschiedlichen) Funktionen als Unterformular in ein anderen anderes BO einzubetten.
  • Nur eingeschränkter Support für Unterformulare von Unterformularen.

Diese Einschränkungen führen dazu, dass es nicht einfach möglich ist, eine (normale) XML Struktur mit Nuclos Bordmitteln auf der Metaebene (also auf der Ebene, wo sich z.B. XML Schema befindet) zu beschreiben.

...