Altova MobileTogether Designer

Funktionen der beiden Aktionen Aus String laden und In String speichern:

 

Laden von JSON- oder XML-Daten aus einem String in eine JSON/XML-Seitenquelle bzw.

Serialisieren einer JSON/XML-Seitenquelle in einen String und Speichern des serialisierten String unter einem durch einen XPath-Ausdruck definiertem Pfad

 

Diese Funktionen sind v.a. in eingebetteten Webseiten-Lösungen nützlich, wenn serialisierte XML-Daten in einer Nachricht von der Webseite empfangen und in der $MT_EMBEDDEDMESSAGE-JSON-Seitenstruktur gespeichert werden können. Mit Hilfe der "Aus String laden"-Aktion wird anhand des XML-String eine XML-Seitenquelle erstellt. Umgekehrt kann eine XML-Seitenquelle mit Hilfe der Aktion "In String speichern" in einen String serialisiert und in einem Seitenquellen-Node gespeichert werden.

 

Aus String laden

Die Aktion "Aus String laden" parst den String, der das Ergebnis des XPath-Ausdrucks der Quell-Node-Einstellung ist (siehe Abbildung unten) und generiert die Struktur und Daten der ausgewählten Seitenquelle (siehe Abbildung). Wählen Sie die Seitenquelle entweder aus der Auswahlliste "Seitenquellen" aus oder legen Sie den Root Node der Seitenquelle (z.B. $XML1) mit Hilfe eines XPath-Ausdrucks fest.

MTActionLoadFromString

Der Typ der ausgewählten Seitenquelle (JSON oder XML) sollte der Serialisierung des String entsprechen. Wenn der Quell-Node-String also ein JSON-String ist, wird ein JSON-Dokument generiert. Wenn der Quell-Node-String ein XML-String ist, wird dieser String in die Seitenquelle, bei der es sich um eine XML-Seitenquelle handeln muss, geladen. Das Root-Element im serialisierten String wird als das Root-Element der XML-Seitenquelle erstellt.

 

Informationen zum Quell-String: In der Abbildung oben ist wird ein XML-String im Quell-Node $SERIALIZEDSTRINGS/Strings/XML_String definiert. Dies ist der String, der in die ausgewählte Seitenquelle geladen wird. Damit dies korrekt funktioniert, muss es sich bei der Seitenquelle um eine XML-Seitenquelle handeln. (Der XPath-Ausdruck der Einstellung Quell-Node muss keinen String aus einem Node nehmen; Der String kann auch direkt in den XPath-Ausdruck eingegeben werden.)

Kodierung des Quell-String: Auf Clients werden die folgenden Kodierungen unterstützt, daher muss für Quell-String eine dieser Kodierungen verwendet werden: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE, US-ASCII, ISO 8859-1.

Informationen zur JSON/XML-Seitenquelle: Die Seitenquelle muss zuerst erstellt worden sein, bevor sie in der Aktion ausgewählt werden kann. Das JSON/XML-Dokument, das aus dem String geladen wird, wird im Dokument-Node als die gesamte Seitenquelle erstellt. Wenn die Struktur des geladenen Dokuments zur Laufzeit nicht mit der Struktur der Seitenquelle (so wie sie im Design definiert wurde) übereinstimmt, kann die Lösung nicht korrekt ausgeführt werden, da das Design mit den Node-Namen einer erwarteten Seitenquellenstruktur arbeitet, die Nodes der tatsächlich erstellten Seitenquelle aber andere Namen haben.

 

In String speichern

Die Aktion "In String speichern" (Abbildung unten) serialisiert die in der Option Seitenquelle genannte Seitenquelle und speichert den serialisierten String unter einem durch den XPath-Ausdruck der Einstellung Ziel-Node definierten Pfad. Sie können die Seitenquelle auch über die Auswahlliste der Einstellung oder über einen XPath-Ausdruck, der den Root Node der Seitenquelle festlegt (z.B. $XML1) auswählen.

MTActionSaveToString

Beachten Sie die folgenden Punkte:

 

Die Seitenquelle und ihre Struktur müssen zur Design-Zeit vorhanden sein, damit sie als Auswahllistenoption zur Verfügung steht.

Der Inhalt der gesamten Seite wird unabhängig vom Typ der Seite vom ersten bis zum letzten Zeichen in einen String serialisiert.

Der erzeugte serialisierte String wird in dem durch den XPath-Ausdruck angegebenen Node gespeichert.

 

Beispieldatei

Die Verwendung dieser beiden Aktionen wird in einer Beispieldatei namens LoadSaveString.mtd veranschaulicht. Diese Datei befindet sich im Ordner (Eigene) Dokumente: Altova\MobileTogetherDesigner10\MobileTogetherDesignerExamples\Tutorials\Actions. Dieses Beispiel enthält zwei Seitenquellen ($JSON1 und $XML1), von denen jede festgelegte JSON- bzw. XML-Daten enthält (siehe Abbildung). Mit Hilfe der Aktion In String speichern können die einzelnen Seiten als String serialisiert werden und in einem Node gespeichert werden. Anschließend kehren wir diese Aktion mit Hilfe der Aktion Aus String laden um, um die soeben serialisierten Strings in neue Seitenquellen ($JSONFROMSTRING und $XMLFROMSTRING) zu serialisieren.

Zum Erweitern/Reduzieren klicken

 

Die Design-Datei enthält eine JSON-Seitenquelle ($JSON1) und eine XML-Seitenquelle ($XML1), deren Struktur und Daten in der Datei selbst definiert sind (siehe Abbildung der Simulation oben). Beide Datenstrukturen sind rudimentär.

Das Design enthält Schaltflächen zum Speichern der einzelnen Seitenquellen als serialisierter String (Save JSON/XML String) jeweils in einem eigenen Node einer weiteren Seitenquelle namens $SERIALIZEDSTRINGS. Für beide Schaltflächen wird die Aktion In String speichern verwendet.

Anhand der generierten Serialisierungen werden neue Seitenquellen erstellt, nämlich $JSONFROMSTRING und $XMLFROMSTRING. Dies geschieht durch Auslösen der Aus String laden-Aktionen der dritten und vierten Schaltfläche (Load JSON/XML String).

 

In diesem Beispiel wird somit mit Hilfe der beiden Aktionen (In String speichern und Aus String laden) über einen serialisierten String ein Round-Trip von einer Seitenquelle zu einer weiteren Seitenquelle durchgeführt. Die ursprüngliche Seitenquelle und die Zielseitenquelle haben dieselbe Struktur und dieselben Daten.

 

MobileTogether-Erweiterungsfunktionen

MobileTogether enthält eine Reihe von XPath-Erweiterungsfunktionen, die speziell für die Verwendung in MobileTogether-Designs erstellt wurden. Einige davon können bei bestimmten Aktionen sehr nützlich sein. So erhalten Sie etwa mit mt-available-languages() die Sprachen, in denen die Lösung zur Verfügung steht. Diese Funktion könnte z.B. mit der Aktion Meldungsfeld verwendet werden. Wenn eine Funktion für diese Aktion besonders relevant ist, ist sie unten aufgelistet. Eine vollständige Liste aller Erweiterungsfunktionen und mit Beschreibungen finden Sie im Kapitel MobileTogether-Erweiterungsfunktionen.

 

mt-load-json-from-string()

mt-load-string()

mt-save-json-to-string()

mt-string-to-hexBinary()

 

© 2018-2024 Altova GmbH