Die XML-Schnittstelle ermöglicht, XML-Dokumente/Dateien in den ISA Dialog Manager einzulesen, um die Daten in den Objekten darzustellen bzw. zu verarbeiten. Außerdem ist es auch möglich, XML-Dokumente/ Dateien mit dem ISA Dialog Manager zu generieren. XML Die Extensible Markup Language ist durch das W3C standardisiert und eignet sich durch ihren eindeutigen Aufbau besonders gut zum Datenaustausch. Sie wird von vielen Anwendungen unterstüzt.
Das document und doccursor Objekt Das document Objekt ist der Behälter für ein XML Dokument. Das XML Dokument ist als DOM Baum gespeichert. Dieser DOM Baum kann mit Hilfe eines doccursor Objekts, das ein Kind des document Objekts sein muss, durchwandert werden. Durch Methoden am document Objekt kann ein XML Dokument geladen und gespeichert werden. Durch die Methode transform kann das eingelesene Dokument in das angegebene Schema transformiert werden. Die Transformation ermöglicht, ein neues XML-Dokument zu erstellen oder auch einen HTML-Text bzw. Datei zu erzeugen. Validate überprüft das Dokument, ob es dem im XML Dokument angegebenen Dokumenttyp entspricht. Das doccursor Objekt verweist auf einen Knoten im DOM Baum des Dokuments, dessen Kind der Cursor ist. Der Cursor kann mittels Methoden im DOM Baum bewegt und über Attribute kann auf den Knoten zugegriffen werden. Anhand dieser Methoden lassen sich auch neue XML-Dokumente bzw. ein DOM-Baum im ISA Dialog Manager erstellen.
Das transformer und mapping Objekt Mit Hilfe des transformer Objekts können XML-Dokumente oder IDM-Objekte noch einfacher und effizienter durchlaufen und durch Aktionen an den einzelnen Knoten Daten übertragen werden. Diese Aktionen werden in mapping Objekten definiert. Der Durchlauf durch z.B. ein XML-Dokument wird durch die Methode :apply() ausglöst. Hier kann durch Überdefinieren bestimmt werden, ab welchem Knoten das Dokument durchlaufen werden soll und wann ein Durchlauf beendet wird. Durch selb-ständigen Aufruf der Methode :select_next() in einer Schleife wird, ausgehend vom Startknoten, der Nachfolgeknoten bestimmt. Dieser Durchlauf erfolgt in einer Pre-Order-Reihenfolge. Auch hier ist eine Überdefinition möglich.
Das mapping Objekt, welches ein Kind eines transformer Objekts ist, definiert die durchzuführende Aktion. Ein transformer Objekt kann beliebig viele mapping Kindobjekte besitzen. Bei jedem Knoten werden die mapping Kinder des transformer Objekts durchlaufen. Zuerst wird bei jedem mapping Objekt der Inhalt des attributs .name mit dem momentanen Knoten verglichen. Kommt es zu einer Übereinstimmung, so wird die vom Benutzer zu definierende Methode :action() des mapping Objekts aufgerufen und ausgeführt. Gibt diese Methode true zurück gilt der Knoten als abgearbeitet, und es wird zum Nachfolgeknoten gegangen. Wird false zurückgegeben, wird auch das nächste mapping Objekt abgearbeitet. Die Reihenfolge der Abarbeitung entspricht der Definitionsreihenfolge im Code.
Mit der Methode :action() wird also die eigentliche Datenübertragung gesteuert. Die XML-Schnittstelle ist in der Entwicklerlizenz für die jeweilige Plattform ab Version A.04.03.a enthalten. Für detailliertere Informationen steht Ihnen unsere Dokumentation zur Verfügung.
|