XPath in MobileTogether
Die XPath-Sprache spielt eine wichtige Rolle beim Design von MobileTogether-Lösungen. Mit Hilfe von XPath-Ausdrücken können Daten in den verschiedenen im Design verwendeten Datenstrukturen gesucht, aufgerufen, bearbeitet, generiert und gespeichert werden. Sie können damit auch die Funktionsweise verschiedener Designkomponenten definieren. Im Folgenden sind einige wichtige Arten aufgelistet, auf die XPath-Ausdrücke in einem MobileTogether Design verwendet werden. In dieser Übersicht erhalten Sie eine ungefähre Vorstellung davon, welche Möglichkeiten sich durch die Verwendung von XPath in MobileTogether Designs eröffnen.
Nähere Informationen zu XPath finden Sie in der XPath 3.1 Recommendation des W3C. Dies ist die neueste Version der Sprache und dies ist auch die Version, die von MobileTogether Designer unterstützt wird. Als Einführungskurs in die Verwendung von XPath empfehlen wir auch
•die Kurze Einführung in XPath von Altova
•das XPath 3.0 Training von Altova
•und das XPath Tutorial des W3C.
Locator-Ausdrücke
Mit Hilfe der Locator-Ausdrücke der XPath-Sprache werden Nodes in XML-Strukturen gefunden. Ein Locator-Ausdruck besteht normalerweise aus einem Pfad, der auf den gewünschten Node verweist. Hier finden Sie einige Beispiele:
•/Company/Office: Findet alle Office Child-Elemente des Elements Company, welches der Dokument-Node auf der obersten Ebene ist. Wir wissen, dass das Element Company das Element der obersten Ebene ist, weil es direkt unterhalb des durch den ersten Schrägstrich gekennzeichneten Root-Node aufscheint.
•/Company/Office[3]: Findet das dritte Office Child-Element des Elements Company.
•/Company/Office[3]/@location: Findet das location-Attribut des dritten Office Child-Elements des Elements Company.
•//Office[@location='US']: Findet alle Office Elemente, die ein location Attribut mit dem Wert US haben.
In der Liste oben sehen Sie nur einige grundlegende Locator-Ausdrücke. Es gibt noch viel mehr Arten, wie Locator-Ausdrücke erstellt werden können.
Operatoren
Mit Hilfe von Operatoren können Sie Filter anwenden, Bedingungen erstellen und sowie eine Auswahl bzw. die Daten bearbeiten. Hier sehen Sie ein Beispiel für nur zwei Operatoren:
•if (Selection='US') then //Office[@location='US'] else //Office[@location!='US']: Dieser if-Operator wählt je nach dem Inhalt des Child-Elements Selection US- oder Nicht-US-Niederlassungen aus.
•for $i in //Office return $i[@location='US']: Dieser for-Operator gibt alle Office Elemente zurück, die ein location Attribut mit dem Wert US haben, zurück.
XPath-Funktionen
Mit Hilfe von XPath-Funktionen können Sie Daten bearbeiten, berechnen und generieren. So kann z.B. eine Funktion als Input (Funktionsargument) einen String erhalten und diesen in Kleinbuchstaben konvertieren oder einen Teil des String sogar entfernen. Es gibt die folgenden Arten von XPath-Funktionen, die in MobileTogether Designs verwendet werden können.
Die XPath-Sprache enthält eine große Bibliothek mit vordefinierten Funktionen, mit deren Hilfe Sie Daten sowie zur XML-Struktur gehörige Metadaten extrahieren und Daten sogar generieren können. Beispiel:
•count(Office): Gibt die Anzahl der Office Child-Elemente zurück. •day-from-date("2015-04-26"): Gibt die Zahl 26 zurück. Dies ist der Tag-Teil des Datumsarguments der Funktion.
Im Internet finden Sie zahlreiche Handbücher und Referenzmaterial zu den vordefinierten Funktionen. Eine vollständige Liste der Funktionen finden Sie in der XPath 3.1 Recommendation des W3C.
|
Dies ist eine Gruppe von XPath-Erweiterungsfunktionen, die Altova entwickelt, um Entwicklern mehr Funktionalitäten in XPath zur Verfügung stellen zu können. Derzeit gibt es etwa 60 Erweiterungsfunktionen - von Funktionen zur Verfügungstellung von Standortinformationen bis zu Funktionen, die Ganzzahlen in hexadezimale Strings und umgekehrt konvertieren. Zum Beispiel:
•format-geolocation(33.33, -22.22, 2) gibt den xs:string "33.33N 22.22W" zurück •hex-string-to-integer('1') gibt 1 zurück
Die Altova Erweiterungsfunktionen können in allen MobileTogether Designs verwendet werden. Anleitungen zur Verwendung finden Sie im Abschnitt MobileTogether-Erweiterungsfunktionen des MobileTogether Designer Benutzerhandbuchs.
|
Dies sind XPath-Erweiterungsfunktionen, die von Altova für bestimmte Verwendungsmöglichkeiten in MobileTogether Designs entwickelt wurden. Zum Beispiel:
•mt-has-server-access(10) gibt true zurück, wenn innerhalb der Zeit in Sekunden, die als Argument der Funktion definiert ist, ein Zugriff auf den Server möglich ist. Andernfalls wird false zurückgegeben. •mt-load-string('MyCourier') gibt den lokalisierten MyCourier-String, der im String-Pool der Lösung gespeichert ist, zurück. Die Sprache der Lokalisierung wird automatisch entsprechend der Sprache des Mobilgeräts ausgewählt.
Die MobileTogether Erweiterungsfunktionen können in allen MobileTogether Designs verwendet werden. Anleitungen zur Verwendung finden Sie im Abschnitt MobileTogether-Erweiterungsfunktionen des MobileTogether Designer Benutzerhandbuchs.
|
Dies sind XPath-Erweiterungsfunktionen, die Sie als Benutzer zu einem speziellen Zweck, für den es in den oben aufgelisteten Funktionsbibliotheken keine passende Funktion gibt, in einem Design definieren können. So können Sie z.B. eine Funktion zum Konvertieren von Temperaturen zwischen Celsius und Fahrenheit definieren. Benutzerdefinierte Funktionen werden innerhalb eines einzelnen MobileTogether-Projekts definiert und in diesem spezifischen Projekt verwendet. Ein Anleitung zur Definition solcher benutzerdefinierter Funktionen finden Sie im Abschnitt Benutzerdefinierte XPath/XQuery-Funktionen des MobileTogether Designer-Benutzerhandbuchs. |
Globale Variablen
Globale Variablen enthalten Informationen zum mobilen Client-Gerät. So gibt es z.B. eine Variable zur Angabe des Gerätetyps, eine weitere zur Angabe seiner Größe und eine weitere zur Angabe der aktuellen Ausrichtung des Geräts (Hochformat oder Querformat) usw. Die Werte all dieser Variablen werden zur Laufzeit im Rahmen der mobilen Standardkommunikationsprozeduren vom Client-Gerät abgerufen. Die Variablen können anschließend in XPath/XQuery-Ausdrücken verwendet werden. Dadurch kann eine Verarbeitung, die von den statische Eigenschaften eines Geräts (wie z.B. der Größe) oder seinen veränderbaren dynamischen Eigenschaften (wie z.B. der Ausrichtung) abhängt, definiert werden.
Die globalen Variablen von MobileTogether sind vordefiniert und im Abschnitt Globale Variablen zusammen mit einer Beschreibung der einzelnen Variablen und ihren möglichen Werten aufgelistet. Im Beispiel unterhalb der globalen Variable MT_iPad (mögliche Werte: true(), false()) sehen Sie, wie globale Variablen in XPath-Ausdrücken aufgerufen werden. Mit dem Symbol $ wird angezeigt, dass es sich beim nachfolgenden Text um den Namen einer globalen Variable handelt. Dies ist die normale Art, auf die Variablen in XPath gekennzeichnet werden.
if ( $MT_iPad=true() ) then "Apple" else ""