~~NOTOC~~ ====== Allgemeine XML-Export-Schnittstelle ====== Auf dieser Seite finden Sie technische Informationen zur **allgemeinen** XML-Exportschnittstelle, d.h. zum Schnittstellenframework. Informationen zu konkreten Schnittstellen**implementierungen**, insbesondere deren genaue Definition, finden Sie auf folgenden Seiten: * [[alle:schnittstellen:xml_sst:xmlexportnotenverwaltung:start|XML-Exportschnittstelle für Verfahren zur Notenverwaltung]] * [[alle:schnittstellen:xml_sst:xmlexportmehrarbeitsverguetung:start|Exportschnittstelle für Verfahren zur Mehrarbeitsvergütung]] ==== Allgemein ==== Die allgemeine XML-Export-Schnittstelle ist ein Framework, das eine umfassende Baumstruktur beschreibt und in der Lage ist, beliebige Teilbäume daraus als gepackte und verschlüsselte XML-Datei zu exportieren. ==== Aufbau Exportdatei ==== * Die exportierte Datei ist ein ZIP-Container. Dieser ist mit AES-256 verschlüsselt. * In der ZIP-Datei befindet sich eine einzelne XML-Datei namens ''export.xml''. * Der nähere Aufbau der ''export.xml'' wird für konkrete Instanzen eines XML-Exports (wie z. B. Notenverwaltung) jeweils dokumentiert durch * eine XML Schema Definition (XSD-Datei). Diese enthält auch Erläuterungen (aus Schema Spy übernommen) und beschreibt damit den Aufbau der exportierten XML-Dateien aus syntaktischer und semantischer Sicht. * eine ZIP-Datei, welche alle bei diesem Export tangierten Wertelisten als XML-Dateien enthält.\\ Bei den Wertelisten haben die sog. //Standardwertelisten// gleichen strukturellen Aufbau; einige sog. //spezielle Wertelisten// weichen jedoch davon ab. == Das Tag == XML stellt bekanntlich nur baumartige Strukturen dar. Wo "Querreferenzen" im Baum notwendig werden, wird in referenzierten XML-Elementen eine ID mit dem Tag '''' gesetzt; die Referenzen selbst lauten ''*_id'' (soll z. B. ein ''''-Element mit ''xml_id'' 1011 referenziert werden, geschieht dies mit ''1011''). Die ''xml_id'' wird einzig innerhalb der XML-Struktur benutzt und kann sich bei jedem Export ändern. Für verbindliche IDs siehe nächsten Kasten. == Lokales Differenzierungsmerkmal für Lehrkräfte und Schüler == Bei Import-Vorgängen muss eine eindeutige Zuordnung zwischen zu importierenden und bestehenden Datensätzen geleistet werden; dies betrifft ASV selbst als auch andere Verfahren. Zu diesem Zweck wird für die XML-Elemente '''' und '''' jeweils ein eindeutiger Schlüssel namens '''' ausgespielt. Für dieses wird zugesichert: * Es identifiziert eine Lehrkraft bzw. einen Schüler eindeutig innerhalb der ASV-Datenbasis (d. h. je nach Installationsvariante schulweit, Schulzentrums-weit oder sogar Sachaufwandsträger-weit). * Es ist unveränderlich; sie bleibt insbesondere erhalten bei * Schuljahreswechsel und * Rückspielen von Datenbank-Backups. * Es wird nur einmal vergeben. Auch das "lokale Differenzierungsmerkmal" ausgetretener Personen wird nicht wieder an neu eintretende Personen vergeben. ==== Benutzung ==== === Installation des Exports in ASV === Der Notenverwaltungs-Export und weitere XML-Exporte wird von Seiten des StMBW in ASV integriert. Die einzelnen Schnittstellen werden über den Prozess "Anwendungsdaten aktualisieren" veröffentlicht. === Export in der ASV-GUI vornehmen === * im Menü ''Datei->Verwaltung->Schnittstellen'' auswählen * im Navigator rechts den passenden Export (im Moment nur Notenverwaltung) auswählen * rechts unten Button ''Start...'' auswählen * Es startet ein Export-Assistent, in dem die zu exportierenden Schulen sowie Ausgabe-Pfad und -Dateiname ausgewählt werden können * Nach erfolgtem Export wird das Passwort zum Entschlüsseln der erzeugten Datei sowohl am Bildschirm angezeigt als auch in die Zwischenablage gelegt. === Transport der Export-Datei === Die Programme in der Schullandschaft, in die die Daten importiert werden sollen, sind sehr heterogen aufgestellt: Möglicherweise... * läuft das Programm auf dem selben Rechner wie der exportierende ASV-Client * handelt es sich um zwei verschiedene Rechner innerhalb des Verwaltungsnetzes der Schule * wird die Export-Datei auf einem externen Datenträger (z. B. USB-Stick) transportiert * muss die Export-Datei auf einen Web-Server eines [[alle:datenschutz:auftragsdatenverarbeitung:start|Auftragsdaten-Verarbeiters]] geladen werden === Import in einem Schulverwaltungs-Programm === Idealerweise wird das importierende Schulverwaltungs-Programm die Schritte - Passwort vom Benutzer erfragen - ZIP-Datei auspacken - die enthaltene ''export.xml'' lesen und weiter verarbeiten - womöglich (z. B. beim Auspacken der ZIP-Datei) entstandene temporäre Dateien zuverlässig löschen automatisiert vornehmen, so dass es dem Benutzer erspart bleibt, am Ziel-Rechner selbst mit ZIP-Programmen umgehen zu müssen. == Für Schritt 2 (ZIP-Datei auspacken) sehen wir folgende Implementierungs-Möglichkeiten, sortiert nach Präferenz (beste Lösung zuerst): == - Benutzung einer Programmbibliothek, nach Möglichkeit in der benutzten Programmiersprache selbst. Beispiele für ZIP-Programmbibliotheken mit AES-Unterstützung: * **Zip4j** (für Java) [[http://www.lingala.net/zip4j/]] * **DotNetZip** (für .NET-Sprachen) [[http://dotnetzip.codeplex.com/]] - automatisierte Benutzung eines ZIP-Kommandozeilenprogramms durch das Schulverwaltungsprogramm. Gängige Programmiersprachen sollten Prozesse starten können, ohne dass ein Konsolen-Fenster "aufpoppt" (in vielen gängigen Programmiersprachen (.NET-Sprachen, Java) mittels einer ''Process''-Klasse). Beispiele für ZIP-Kommandozeilenprogramme mit AES-Unterstützung: * **7-Zip**s ''7z.exe'' (für Windows) [[http://www.7-zip.de/]] * **p7zip**s ''7z'' (für Posix-Systeme; in Linux Bestandteil vieler Distibutionen) [[http://sourceforge.net/projects/p7zip/]] - Der Benutzer muss auf dem Zielrechner manuell die ZIP-Datei mittels eines ZIP-Programms mit GUI auspacken :-(. Beispiele für GUI-ZIP-Programme mit AES-Unterstützung: * **7-Zip** [[http://www.7-zip.de/]] * **WinZip** [[http://www.winzip.de/]] * **WinRAR** [[http://www.winrar.de/]] Leider unterstützen viele ZIP-Programme und -Programmbibliotheken keine Verschlüsselung oder nur die ältere, unsicherere ZipCrypto-Verschlüsselung. ==== FAQ ==== [[alle:schnittstellen:xml_sst:xmlexport:faq|Häufig gestellte Fragen]] aus Sicht der Entwickler von Schulverwaltungsprogrammen ==== Kontakt ==== Für technische Unterstützung und Feedback stehen von Seiten des StMUK zur Verfügung: * Matthias Gold [[matthias.gold@stmuk.bayern.de]] * Leonhard Fellermayr [[leonhard.fellermayr@stmuk.bayern.de]]