| Auszug | ||
|---|---|---|
| ||
Nuclos XML Strukturdefinition: XPath, Struktur Match, Attribut Match, xpath2value, well-formed, mixed content, XML Import. |
Sprache: Deutsch · English
XML auf Businessobjekte mappen – Struktur-/Attribut-Match, xpath2value und die Grenzen des XML-Imports.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | |||||
|---|---|---|---|---|---|
| |||||
Auf dieser Seite
|
Menüaufruf: (Konfiguration) - (Import & Export) - (XML Strukturdefinition)
|
Der XML-Import orientiert sich stark an der CSV-Strukturdefinition; hier gehen wir
...
nur auf die Unterschiede
...
ein.
...
Es gibt
...
XML-Strukturdefinitionen (Mapping je BO) und den
...
XML-Datei-Import (Reihenfolge).
...
...
| Angabe | Bedeutung |
|---|
...
| Match (Struktur) |
...
| einfacher XPath |
...
| , der die Attributverarbeitung |
...
| triggert. |
| Businessobjekt |
...
| das BO, das |
...
| erzeugt |
...
| /aktualisiert/gelöscht |
...
| wird. |
...
Jede Zeile definiert, wie ein Attribut (Feld) des BOs aus dem XML extrahiert werden soll. Die einzelnen Spalten bedeuten:
| Match (Attribut) |
...
| XPath |
...
| relativ zum Struktur-Match |
...
| , |
...
| wählt den |
...
| zu übertragenden Knoten |
...
| . |
...
| Attribut (BO) |
...
| Zielfeld für den extrahierten Wert. | |
| Berechnungsausdruck | Groovy-Script mit xpath2value (Map), line, log – z.B. um einen Wert aus mehreren Knoten zusammenzusetzen. |
| Format | wie beim CSV-Import; nur ohne Script wirksam. |
Map (relativer XPath → Wert) aufgebaut.xpath2value bereit.| Warnung | ||
|---|---|---|
| ||
Einschränkungen: Die Datei muss well-formed sein (kein Schema nötig/möglich); mixed content wird nicht unterstützt (ein Element enthält entweder Text oder Kindelemente); die Daten eines BOs müssen in einem zusammenhängenden Teilbaum liegen und werden komplett in den Speicher geladen – also klein halten. Für tief verschachtelte Strukturen ist der XML-Import ungeeignet. |
Ü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 definieren. Dabei stehen (im Script) die Variablen xpath2value (Map<String, String>), line (java.lang.Integer, die aktuelle Zeilennummer in der XML Datei) und log (org.nuclos.server.fileimport.ImportLogger) zur Verfügung.
Die Variable xpath2value ist besonders interessant. Sie enthält zu den relativen XPath Ausdrücken (als Schlüssel) die Werte der dadurch ausgewählten XML Knoten (als Wert). (Beispiel weiter unten.)
Verhält sich genau wie beim CSV Import (weitere Informationen dort).
| Warnung |
|---|
Format wird nur verwendet, wenn kein Berechnungsausdruck (Script) hinterlegt ist. |
Der XML Datei Import definiert, in welcher Reihenfolge die Strukturdefinitionen abgearbeitet werden. Der eigentliche Import geht dann wie folgt vor sich:
Map zu bilden, die den relativen XPath Ausdruck (bezüglich des Struktur Matches) dem Wert des Elements/Attributes zuordnet.Map gewonnen, indem der Attribut Match als Schlüssel zur Map verwendet wird. Der ausgelesene Wert wird als Wert für das angegebene Attribut (des BOs) verwendet.xpath2value zur Verfügung.Aus dem gesagten ergeben sich folgende Einschränkungen des XML Imports:
Der XML Import ist daher nicht für sehr tief verschachtelte XML Strukturen geeignet, speziell wenn die Attribute eines BOs sehr 'weit' voneinander entfernt sind.
Das liegt an Einschränkungen im Nuclos Kern, insbesondere an: