Das IDML Schema ist ein speziell entwickeltes XML Schema um Daten über Entwicklungsprojekte zu speichern und auszutauschen. Da dieses Schema noch dauernd geändert wird sind die hier erklärten Sachverhalte mit Vorsicht zu geniessen. Die Grundstruktur wird sich aber nicht mehr gross ändern, da das IDML Schema schon bei Version 0.9 angelangt ist. Die Grundlagen um mit Hilfe von IDML Sche-ma Daten bereitzustellen sollen hier aufgezeigt werden. Das Vermittlungswerkzeug muss sich genau an dieses Schema halten, da die Daten sonst beim weiterverarbeiten nicht validiert werden können und für ungültig erklärt werden müssen.
Es werden mindestens zwei Dateien benötigt:
• idmlInfo.xml Æ die Beschreibung (engl: site description) basiert auf dem «Site Description Schema»
• activities.xml Æ die Daten (engl: activity information) Æ basiert auf dem «Core Activity Sche-ma» und dem «Extended ScheSche-ma»
Die Beschreibung kann statisch generiert werden, da dieses XML Dokument nur wenige Daten bein-halten muss und erst auf die eigentlichen Projektdaten verweist. Die Beschreibung muss immer im root-Verzeichnis (Oberste Ebene: /) des Webserver stehen, auf dem auch die Daten abgelegt sind (oder zumindest auf dem die Daten auch gezogen werden können). Es beinhaltet die Version des verwendeten IDML Schemas, das Datum der letzten Änderung, eine Kontaktadresse (Email) dessen der sich bei dieser Organisation um die Bereitstellung der IDML Daten kümmert und einen Link auf die Daten selbst (Beispiel siehe Abbildung 8). Dieser Link kann auf eine statische XML Datei ve rweisen
<?xml version="1.0"?>
<idmlInfo>
<idmlVersion>0.9</idmlVersion>
<dataLink>
<dataType>activity</dataType>
<url>http://www.some.org/activities.xml</url>
<format>xml</format>
<updated>2001-01-01</updated>
</dataLink>
<contactEmail>[email protected]</contactEmail >
</idmlInfo>
</xml>
Abbildung 8 : Site Description Schema: Beispiel von idmlInfo.xml
oder aber auf ein Skript, das die Daten dort dynamisch zur Verfügung stellt. Momentan wird zu Test-zwecken häufig die statische Variante bevorzugt, da die Daten noch nicht dynamisch generiert werden können.
IDML Versionsnummer
URL zu den Aktivitäten, kann auch ein Skript sein. (dyna-misch oder statisch)
Datum des letzten updates
Kontaktadresse des
Datenpflegers
2 Datenaustausch mit XML
Abbildung 9 : IDML Core Activity Schema (Baum) [XMLSPY 01]
2 Datenaustausch mit XML
Der Vorteil dieses geteilten Ansatzes ist ganz eindeutig die Möglichkeit eine Standarddatei (idmlIn-fo.xml) zu konsultieren, in der dann steht, wo genau die Daten bezogen werden können und welche Version des IDML Schemas zu verwenden ist. Dadurch ist der Datenteil völlig unabhängig von der Infrastruktur des Servers und dessen Möglichkeiten. Jede auf dem Server verfügbare Schnittstelle kann verwendet werden um die Daten bereitzustellen.
Das IDML Schema besteht aus drei getrennten - aber nicht unabhängigen - Schemas:
• Site Description Schema Æ Beschreibung der angebotenen Informationen
• Core Activity Schema Æ Enthält die Daten (Aktivitäten)
• Extended Schema Æ Erweitertes «Core Activity Schema»
Wie schon erwähnt wir das «Site Description Schema» nur benötigt um eine Verknüpfung mit den Aktivitäten über eine Standarddatei (gleicher Name und Zugriffspfad) zu gewährleisten. Deshalb ist dieses Schema klein und hat keinen komplizierten Aufbau. Das «Core Activity Schema» beinhaltet die Aktivitäten selbst und ist eine Teilmenge des «Extended Schemas». Der Unterschied der beiden letzt genannten Schemas liegt darin, dass das «Core Activity Schema» alle unbedingt benötigten Daten enthält. Das «Extended Schema» bietet die Möglichkeit noch weitere (nicht unmittelbar benötigte) Informationen zur Verfügung zu stellen. [IDMLDraft 01]
Eine Übersicht über die Elemente des «Core Activity Schema» bietet Abbildung 9. Allerdings sind in dieser Abbildung nur die Elemente aufgeführt und keine Attribute. Die einzelnen «activities» sind un-tereinander aufgelistet (Sequenz) und jede «activity» selbst beinhaltet weiterführende Informationen.
Abbildung 10 zeigt ein Beispiel einer gültigen XML Datei im «Core Activity Schema»-Format. Um das Beispiel zu verkürzen enthält diese Datei nur eine Aktivität. Diese muss durch einen eindeutigen Schlüssel (dbkey) gekennzeichnet sein und sollte mit dem Datum der letzten Änderung versehen sein um alle Aktivitäten garantiert unterscheiden zu können. Jede weitere Referenz auf diese Aktivität muss dann diesen Schlüssel benutzen. Mit Ausnahme des Datums, der URL und des Schlüssels sind die Formate der eingegebenen Daten nicht vorgegeben (jeder Text ist erlaubt).
Damit in diesem offenen System aber die kein Chaos entsteht, da jede Organisation z.B. im «locati-on»-Element ihre eigenen Länderkürzel verwendet, werden von der AIDA [AIDAAuth 02] sogenannte
«Authority»-Dateien zur Verfügung gestellt welche nichts anderes als Tabellen mit gültigen Werten für bestimmte Elemente sind. Somit wird gewährleistet, dass die Daten konsistent und für die automati-sche Weiterverarbeitung verständlich bleiben.
Auch an Mehrsprachigkeit wurde gedacht und es ist bei den meisten beschreibenden Elementen
mög-lich ein «lang»-Attribut hinzuzufügen. Im angegebenen Beispiel kommt das «sector»-Element
zwei-fach vor: einmal in englisch (en) und einmal in französisch (fr).
2 Datenaustausch mit XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<activities>
<activity dbKey="1-0-745001" date="1996-02-09">
<ID>
<assigningOrg refKey="OECD DAC"/>
<uniqID>1-0-745001</uniqID>
</ID>
<title lang="en">AGRICULTURAL WATER RESOURCES</title>
<location locationCode ="CUB"/>
<startDate>0</startDate>
<status statusCode="6"/>
<sector lang="en">AGRICULTURAL WATER RESOURCES</sector>
<sector lang="fr">Ressources en eau à usage agricole</sector>
<notes>IRRIGATION PUMPS</notes>
<funding>
<fundingOrg>XAUT</fundingOrg>
<yearly>
<yearStarting date="1974-01-01"/>
<amount amount="3745338.4" currency="usd"/>
</yearly>
<termsAssist terms="2"/>
<total amount="3745338.4" currency="usd"/>
</funding>
<relatedLink >
<label>OECD DAC Creditor Reporting System </label>
<url>http://www.oecd.org/dac/htm/crs.htm</url>
</relatedLink>
<forMoreInfo >[email protected]</forMoreInfo>
</activity>
</activities>
Abbildung 10 : Core Activity Schema: Beispiel von activities.xml
Da solche Projektdaten auch zwischen verschiedenen Stakeholdern ausgetauscht werden können ist es wichtig verfolgen zu können, welche Organisation welche Änderungen an den Daten vornimmt.
Das «Extended Schema» erlaubt es zusätzliche Informationen hinzuzufügen, welche die Herkunft der enthaltenen Daten genau verfolgen lassen (welche Information wurde wo von wem hinzugefügt oder geändert (engl.: audit trail)). Diese Informationen sind für Daten-Aggregatoren (engl.: data aggrega-tors) allerdings auch zwingend anzugeben. Ausserdem erweitert das «Extended Schema» einige Elemente dahingehend, dass diese auch ausserhalb einer «activity» Gültigkeit besitzen und als ei-genständige Elemente bestehen können.
In Abbildung 11 ist schematisch die Standardprozedur aufgezeigt, die angewendet wird um die IDML
Daten auszutauschen. Es sind zwei HTTP (Hypertext Transfer Protocol) Anfragen an den Webserver
nötig. In der Standardprozedur wird angenommen, dass entweder die Datenbank als Resultat XML
Daten liefert oder aber der Webserver die Daten vor der Endauslieferung konvertiert.
2 Datenaustausch mit XML
In document
Datenaustausch mit XML
(Page 19-23)