Kontrollelemente in der Zielstruktur für die XML-Erzeugung

Um den Aufbau von XML-Elementen in der Zielstruktur steuern zu können, werden Eigenschaften in Zielstrukturknoten/Zielstrukturfeldern, sowie spezielle Zielstrukturfelder, mit reservierten Namensendungen verwendet.

Eigenschaften in Zielstrukturknoten


  • "XML Namespace": Über diese Eigenschaft kann dem Element, welches aus dem Knoten erzeugt wird, ein XML-Namespace zugeordnet werden, z. B: soapenv. Alle im Knoten enthaltenen Elemente bekommen so automatisch den selben Namespace, insofern dort kein anderer gesetzt ist. Zusätzlich kann über diese Eigenschaft auch ein Namespace definiert werden. Beispiel: soapenv=http://schemas.xmlsoap.org/soap/envelope/. Soll kein Namespace angegeben werden obwohl die Eigenschaft Use namespace Inheritance gesetzt ist, muss DEFAULT eingetragen werden. Um einen Default-Namespace zu definieren (z. B. <element xmlns="http://tempuri.org/"> ) muss die Eigenschaft wie folgt gesetzt werden: DEFAULT=http://tempuri.org/

  • "XML/JSON Behandlung": Diese Eigenschaft steuert, in welcher Form der Knoten in das XML aufgenommen wird. Folgende Einstellungen sind möglich:

    • Normal: Der Knoten wird als Element im XML erzeugt.

    • Exkludieren: Der Knoten wird bei der Erzeugung ignoriert und somit gar nicht betreten.

    • Transparent: Der Knoten selbst erzeugt kein XML Element, aber der Inhalt im Knoten wird berücksichtigt.

    • Array: (Dieser Wert ist nicht relevant für diese Funktion.)

    • Array Transparent: (Dieser Wert ist nicht relevant für diese Funktion.)

  • "Maximum": Erzeugt ein Mapping mehrere Datenblätter, dann wird ein Knoten über diese Datenblätter hinweg betrachtet mehrfach erzeugt. Hat nun der Knoten den Wert 1 bei der Knoten-Eigenschaft Maximum, dann wird das dem Knoten entsprechende Element im XML nur einmal erzeugt, die Felder des mehrfach vorhandenen Knoten werden im einfach vorhandenen XML-Element alle untereinander gelistet. Ist dieses Verhalten nicht erwünscht, dann z. B. einfach den Wert 99999 verwenden für Eigenschaft Maximum. Hier ein angedeutetes Beispiel:

images/download/attachments/189457259/XML_IU_Maximum-version-1-modificationdate-1736242300164-api-v2.png

Eigenschaften in Zielstrukturfeldern

  • "XML Namespace": Über diese Eigenschaft kann dem Element, welches aus dem Feld erzeugt wird, ein XML-Namespace zugeordnet werden, z. B: soapenv. Zusätzlich kann über diese Eigenschaft auch ein Namespace definiert werden. Beispiel: soapenv=http://schemas.xmlsoap.org/soap/envelope/. Soll kein Namespace angegeben werden obwohl die Eigenschaft gesetzt ist, muss DEFAULT eingetragen werden.

Beispiel zur Zielknoten-Eigenschaft "XML/JSON Behandlung"


Gegeben ist folgende Zielstruktur.


images/download/attachments/189457259/141-version-1-modificationdate-1736242687370-api-v2.png


Der Knoten root#1 ist bei der XML Behandlung als Root definiert. Anhand der Änderung der Behandlung im Knoten user#3 wird gezeigt, welche Auswirkungen die unterschiedlichen Parameter haben. Folgende XML-Datei wird beim gegebenen Mapping ausgegeben, mit folgender Behandlung im user#3-Knoten.

Normal

Es wird jeder Wert und Knoten ausgegeben.


xml_no_template_normal.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<record art="root" type="map">
<scm:user xmlns:scm="http://scm.de" scm:type="object">
<scm:name scm:type="String">name</scm:name>
<scm:givenName scm:type="String">given</scm:givenName>
</scm:user>
<items type="array">
<arrayItem type="object">
<item type="String">abc</item>
<itemType type="String">ALL</itemType>
</arrayItem>
<arrayItem type="object">
<item type="String">cde</item>
<itemType type="String">ALL</itemType>
</arrayItem>
</items>
<persons test="fix">
<name>20131018</name>
<ignore test="fix"/>
</persons>
</record>
</root>

Transparent

Der Knoten wird nicht mehr ausgegeben, aber die Felder im Knoten.


xml_no_template_transparent.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<record art="root" type="object">
<name type="String">name</name>
<givenName type="String">given</givenName>
<items type="array">
<arrayItem type="object">
<item type="String">abc</item>
<itemType type="String">ALL</itemType>
</arrayItem>
<arrayItem type="object">
<item type="String">cde</item>
<itemType type="String">ALL</itemType>
</arrayItem>
</items>
<persons test="fix">
<name>20131018</name>
<ignore test="fix"/>
</persons>
</record>
</root>

Exkludieren

Der Knoten user#3, sowie seine dazugehörigen Feldwerte, werden nicht ausgegeben.


xml_no_template_exkludieren.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<record art="root" type="map">
<items type="array">
<arrayItem type="object">
<item type="String">abc</item>
<itemType type="String">ALL</itemType>
</arrayItem>
<arrayItem type="object">
<item type="String">cde</item>
<itemType type="String">ALL</itemType>
</arrayItem>
</items>
<persons test="fix">
<name>20131018</name>
<ignore test="fix"/>
</persons>
</record>
</root>