xjustiz_techdok_2005-12-27_v131.pdf - OSCI
xjustiz_techdok_2005-12-27_v131.pdf - OSCI
xjustiz_techdok_2005-12-27_v131.pdf - OSCI
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
20. Dezember <strong>2005</strong><br />
Arbeitsgruppe IT-Standards in der Justiz<br />
Technische Dokumentation zu XJustiz Version 1.3.1<br />
I. Einleitung ....................................................................................................... 3<br />
Allgemeines........................................................................................................ 3<br />
1. Grundzüge des Lösungsansatzes.................................................................. 3<br />
2. Bestandteile von XJustiz................................................................................ 3<br />
II. Aufbau und Inhalt der XML-Schema-Dateien .............................................. 5<br />
1. Namensraum ................................................................................................. 5<br />
2. Grundmodul, Wertelisten und Fachmodule.................................................... 6<br />
a) Grundmodul............................................................................................... 6<br />
b) Wertelisten................................................................................................10<br />
c) Fachmodule..............................................................................................<strong>12</strong><br />
d) Include-Technik ........................................................................................17<br />
e) Import-Technik..........................................................................................18<br />
3. Bezugnahme auf die Schemata in Instanzdokumenten................................19<br />
4. Statisches Datenmodell ................................................................................19<br />
5. Bewusst ausgeklammerte Aspekte...............................................................20<br />
a) Dokumente und Meta-Informationen ........................................................20<br />
b) Elektronische Signatur..............................................................................21<br />
c) Übertragungsweg, Verschlüsselung, Transportsignatur ...........................21<br />
III. Einzelheiten...................................................................................................21<br />
1. Dateinamen ..................................................................................................21<br />
2. Modellierungsstil ...........................................................................................23<br />
3. Häufigkeiten (Kardinalitäten).........................................................................25<br />
a) minOccurs und maxOccurs ......................................................................25<br />
b) Leere Elemente ........................................................................................26<br />
c) Leerstrings................................................................................................<strong>27</strong><br />
4. Interne Referenzierung .................................................................................28<br />
a) Ausgangspunkt.........................................................................................28<br />
b) Eingesetzte Werkzeuge............................................................................29<br />
5. Erweiterung und Einschränkung ...................................................................37<br />
a) Erweiterung ..............................................................................................37<br />
b) Einschränkung..........................................................................................38<br />
6. Versionierung................................................................................................39<br />
a) Versionierung der Schema-Dateien..........................................................39<br />
b) Wiedergabe der Versionsnummer in Instanzdokumenten ........................41<br />
7. Parser ...........................................................................................................43<br />
IV. Abbildungsverzeichnis: ...............................................................................44<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 2<br />
Versionsangaben<br />
Version 1.3.1<br />
Stand vom 20.<strong>12</strong>.<strong>2005</strong><br />
Bearbeitet von<br />
<strong>OSCI</strong> Leitstelle Bremen<br />
Status<br />
Vorlage an AG-IT<br />
Freigegeben AG-IT am<br />
Freigegeben BLK am<br />
Änderungshistorie<br />
Datum Was wurde geändert Wer hat geändert<br />
19.09.2003 Neuerstellung Irina Bauer<br />
28.09.2003 Redaktionelle Überarbeitung Klaus Bacher<br />
13.10.2003 Angaben zu Version und Änderungshistorie<br />
eingefügt<br />
Klaus Bacher<br />
15.10.2003 Änderungen auf Vorschlag NRW eingefügt Klaus Bacher<br />
05.11.2003 Freigabe BLK, V1.1 erstellt Jürgen Ehrmann<br />
06.10.2004 Anpassung an die neue Version des<br />
Grunddatensatzes V1.2<br />
30.05.<strong>2005</strong> Anpassungen an die neue Version des<br />
Grunddatensatzes V1.3 mit Verwendung<br />
von XDOMEA<br />
20.<strong>12</strong>.<strong>2005</strong> Anpassungen an Version 1.3.1: veränderte<br />
Identity Constraints aufgrund Validierungsmeldungen<br />
von Parsern mit Version<br />
1.3.0<br />
Irina Bauer<br />
Irina Bauer<br />
Irina Bauer<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 3<br />
I. Einleitung<br />
Allgemeines<br />
Das Datenformat XJustiz soll im Elektronischen Rechtsverkehr den Austausch von verfahrensrelevanten<br />
Daten zwischen Gerichten, Staatsanwaltschaften und Verfahrensbeteiligten<br />
nach einem bundesweit einheitlichen Standard ermöglichen.<br />
Die Zielsetzung und die Rahmenbedingungen von XJustiz werden in der Anlage 2 der Organisatorisch-technischen<br />
Leitlinien für den elektronischen Rechtsverkehr (OT-Leit ERV),<br />
dem XJustiz Leitfaden dargestellt. Die OT-Leit ERV und ihre Anlagen können unter<br />
www.<strong>xjustiz</strong>.de in der aktuellen Version abgerufen werden.<br />
Zur Rekonstruktion voriger Versionsstände dient die Versionshistorie, die unter<br />
http://www.<strong>xjustiz</strong>.de/<strong>xjustiz</strong>_historie.htm abzurufen ist. Hier sind Erläuterungen und Hinweisen<br />
zu alternativen Dateiversionen aufgeführt.<br />
1. Grundzüge des Lösungsansatzes<br />
XJustiz bedient sich der Auszeichnungssprache XML (Extensible Markup Language). Daten,<br />
die im Format XJustiz übermittelt werden, sind in einer XML-Datei (einem so genannten<br />
Instanzdokument) enthalten, die nach bestimmten Regeln aufgebaut ist. Diese Regeln<br />
ihrerseits sind in Dateien hinterlegt, die nach dem Standard XSD (XML-Schema-Datei)<br />
aufgebaut sind.<br />
Im Folgenden wird beschrieben, nach welchem Prinzip die für XJustiz maßgeblichen XML-<br />
Schema-Dateien aufgebaut sind und welche Besonderheiten es bei der Erstellung von Instanzdokumenten,<br />
die diesen Schemata entsprechen, zu beachten gilt.<br />
2. Bestandteile von XJustiz<br />
Die Definition der XJustiz-Datenstrukturen ist derzeit in folgenden XML-Schema-Dateien<br />
hinterlegt:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 4<br />
▪<br />
Grundmodul (xj_0000_grunddatensatz_1_3.xsd)<br />
Dies ist eine XML-Schema-Datei in der grundlegende Strukturen und Datentypen definiert<br />
werden. Die in dieser Datei enthaltenen Definitionen bilden die Grundlage für die<br />
einzelnen Fachdatensätze.<br />
▪<br />
Verschiedene Wertelisten<br />
Diese Listen werden zum Ausfüllen einzelner Felder benötigt, in denen nur bestimmte<br />
Angaben zulässig sind (z.B. Abkürzungen für Ländernamen nach ISO 3166). Diese<br />
Wertelisten sind ebenfalls als XML-Schema-Datei angelegt. Aus Gründen der Übersichtlichkeit<br />
wurden die Listen auf folgende Dateien verteilt:<br />
▪ xj_0010_wl_allgemein_1_3.xsd<br />
▪ xj_0020_wl_gerichte_1_3.xsd<br />
▪ xj_0030_wl_rechtsform_1_3.xsd<br />
▪ xj_0040_wl_rollenbezeichnung_1_3.xsd<br />
▪ xj_0050_wl_staaten_1_3.xsd<br />
▪ xj_0060_wl_telekommunikation_1_3.xsd<br />
▪ xj_0070_wl_justizvollzugsanstalt_1_3.xsd<br />
▪<br />
Basis-Fachmodul (xj_0100_basis_1_3.xsd)<br />
Dies ist eine XML-Schema-Datei, in der die im Grundmodul enthaltenen Definitionen<br />
sowie die Vorgaben aus den Wertelisten ohne Ergänzungen oder Einschränkungen<br />
umgesetzt worden sind.<br />
Das Basis-Fachmodul ist die zentrale Vorgabe für alle XJustiz-Datensätze, die im<br />
Grundmodul definierten Informationen ohne weitergehende Zusätze enthalten.<br />
▪<br />
Fachmodul Familie (xj_0200_familie_1_3.xsd)<br />
Das Fachmodul Familie tritt in Familiensachen an die Stelle des Basis-Fachmoduls. Es<br />
hat dieselbe Struktur wie dieses, enthält als Erweiterung aber zusätzliche Definitionen<br />
für Daten-Elemente, die nur in Familiensachen benötigt werden.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 5<br />
▪<br />
Wertelisten für das Fachmodul<br />
Für das Fachmodul Familie existieren familienspezifische Wertelisten.<br />
▪ xj_0210_wl_gegenstand_1_3.xsd<br />
▪<br />
xj_0220_wl_rollenbezeichnung_1_3.xsd<br />
II.<br />
Aufbau und Inhalt der XML-Schema-Dateien<br />
1. Namensraum<br />
Alle Bezeichnungen innerhalb einer XML-Datei müssen einem bestimmten Namensraum<br />
zugeordnet sein, um sie eindeutig identifizieren zu können. Hierzu wird der Bezeichnung<br />
ein Präfix vorangestellt, der den Namensraum kennzeichnet.<br />
Das Vokabular der Definitionssprache XML Schema selbst wird durch den Namensraum<br />
www.w3.org.2002/XMLSchema identifiziert. Um Schreibaufwand zu sparen und den Code<br />
übersichtlicher zu halten, wird für diesen Namensraum in XJustiz – einer allgemeinen Ü-<br />
bung entsprechend – das Präfix xs: verwendet.<br />
Ergänzend kann ein bestimmter Namensraum als Standard definiert werden. Diesem Namensraum<br />
ist definitionsgemäß das Präfix xmlns: zugeordnet. In XJustiz lautet der Standard-Namensraum<br />
http://www.<strong>xjustiz</strong>.de.<br />
Globale Objekte, die keinen Präfix haben, werden automatisch dem Präfix xmlns: zugeordnet.<br />
Lokal deklarierte Elemente werden ihm nur dann zugeordnet, wenn das Attribut e-<br />
lementFormDefault den Wert qualified hat. Dies ist in XJustiz der Fall. Lokal deklarierte Attribute<br />
werden dem Standard-Namensraum zugeordnet, wenn das attributeFormDefault den<br />
Wert qualified hat. Dies ist in XJustiz nicht der Fall.<br />
Schließlich kann noch ein Ziel-Namensraum (targetNamespace) definiert werden. Dies ist<br />
der Standard-Namensraum für die zum Schema gehörigen Instanzdokumente. In XJustiz<br />
lautet auch der Ziel-Namensraum http://www.<strong>xjustiz</strong>.de. Damit sind alle zu XJustiz gehörigen<br />
Objekte einem einheitlichen Namensraum zugeordnet. Dies vereinfacht die Erweiterung<br />
durch Vererbung von Typen und die Anbindung von externen Listen.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 6<br />
Eine Sonderstellung nehmen die Elemente im Zweig XDOMEA ein. Diese stammen aus<br />
dem Namensraum http://www.xdomea.de. Diesem Namensraum ist in XJustiz das Kürzel<br />
xdo zugeordnet. Einzelheiten dazu werden unten unter 2.e) dargestellt.<br />
2. Grundmodul, Wertelisten und Fachmodule<br />
Die Definition der XML-Strukturen ist auf mehrere Dateien verteilt.<br />
a) Grundmodul<br />
Das Grundmodul ist eine Art Baukasten. Es definiert die Grundstrukturen und stellt diese<br />
als Sammlung von Bausteinen zur Verfügung, auf die die einzelnen Fachmodule zurückgreifen<br />
können.<br />
(1) Grundlegender Aufbau<br />
Programmiertechnisch gesehen ist das Grundmodul eine Sammlung von komplexen Datentypen.<br />
Die meisten dieser Typen sind stark hierarchisch aufgebaut, d.h. die in ihnen enthaltenen<br />
Elemente sind in einer über mehrere Ebenen gegliederten Baumstruktur angeordnet.<br />
Auf diese Weise wird ein den Erfordernissen des Rechtsverkehrs entsprechendes Inhaltsmodell<br />
aufgebaut.<br />
Das Grundmodul besitzt kein Wurzelelement. Es kann deshalb nicht als Ausgangspunkt<br />
für die Erstellung oder Prüfung einer XML-Datei verwendet werden. Für diese Zwecke muss<br />
das Grundmodul vielmehr um ein Fachmodul ergänzt werden.<br />
Ergänzt wird das Grundmodul durch eine Sammlung von Wertelisten, in denen für den Inhalt<br />
bestimmter Elemente (z.B. Familienstand oder Staatsangehörigkeit) standardisierte<br />
Werte vorgegeben werden. Inhaltlich sind diese Wertelisten integraler Bestandteil. Um den<br />
Code besser lesbar zu halten, wurden die Wertelisten aber in separate Dateien ausgelagert.<br />
(2) Wesentliche Datentypen<br />
Zentraler Ankerpunkt des Grundmoduls ist der Typ T_Grunddaten. Er enthält das Element<br />
Grunddaten, in dem alle im Grundmodul definierten Datentypen zusammengefasst und den<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 7<br />
fachlichen Vorgaben entsprechend angeordnet sind. Aus fachlichen Überlegungen heraus<br />
wurde das Element Grunddaten wie folgt strukturiert:<br />
Das Element Grunddaten enthält die Unterelemente Verfahren und Sendung.<br />
Das Unterelement Verfahrensdaten definiert Informationen, die für das von der Datenübermittlung<br />
betroffene Verfahren relevant sind. Es enthält seinerseits folgende Unterelemente:<br />
▪ Verfahrensnummer<br />
▪ Instanzdaten<br />
▪ Beteiligung<br />
▪ Termin<br />
Das Unterelement Sendungsdaten definiert Meta-Informationen, für den einzelnen Übermittlungsvorgang.<br />
Es enthält seinerseits folgende Unterelemente:<br />
▪ Sendungsprioritaet<br />
▪ Sendungsinhalt<br />
▪ Bemerkung<br />
▪ Absenderkennung<br />
▪ Empfaengerkennung<br />
▪ Eingangsbestaetigungswunsch<br />
▪ Papiervorgang<br />
▪ XDOMEA<br />
Der vorstehend beschriebene Grundaufbau ist in nachfolgendem Schaubild nochmals zusammengefasst:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 8<br />
Abbildung 1a: Aufbau des Elements T_Grunddaten<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 9<br />
Die Struktur von XDOMEA ist der folgenden Abbildung zu entnehmen.<br />
Abbildung 2b: Aufbau des Elements XDOMEA<br />
Daneben enthält das Grundmodul eine Ansammlung von global definierten Typen. Dabei<br />
handelt es sich um kleinere Datenstrukturen, die innerhalb des Typs T_Grunddaten öfter<br />
Verwendung finden oder deren Wiederverwendung in künftigen Fachmodulen wahrscheinlich<br />
und sinnvoll erscheint. Ein Beispiel bildet der Typ T_Bankverbindung. An verschiedenen<br />
Stellen des Grundmoduls werden Elemente definiert, die Angaben zu einer Bankverbindung<br />
enthalten. Die Definition des Typs T_Bankverbindung ermöglicht es, diese Strukturen mit<br />
einfachen Mittel gleich auszugestalten. Zugleich erleichtert sie die spätere Pflege. Werden<br />
für eine Bankverbindung später zusätzliche oder andere Daten benötigt, muss nur der Typ<br />
neu definiert werden, nicht dagegen die zahlreichen Elemente, die diesem Typ zugewiesen<br />
sind.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 10<br />
Außerdem sind im Grundmodul Wertelistentypen definiert (gekennzeichnet mit WLT_).<br />
Diese bilden die Grundlage für die Einbindung von Wertelisten. Siehe dazu im Einzelnen<br />
unter b).<br />
Eine vollständige Übersicht über sämtliche im Grundmodul definierten Datentypen liefert<br />
das folgende Schaubild:<br />
Abbildung 3: Datentypen im Grundmodul<br />
b) Wertelisten<br />
Wertelisten dienen dazu, für den Inhalt bestimmter Elemente eine Menge von zulässigen<br />
Werten zu definieren. Typische Beispiele sind Elemente wie Staatsangehörigkeit oder Familienstand,<br />
die typischerweise nur bestimmte Werte enthalten können und sollten.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 11<br />
Die zum Grundmodul gehörigen Wertelisten wurden der Übersichtlichkeit halber in separate<br />
Dateien ausgelagert. Dabei wurde für umfangreichere Listen jeweils eine gesonderte<br />
Datei angelegt. Kleinere Listen wurden in der Datei xj_0010_wl_allgemein_1_3.xsd zusammengefasst.<br />
Im Einzelnen gehören zum Grundmodul folgende Wertelisten-Dateien:<br />
▪ xj_0010_wl_allgemein_1_3.xsd<br />
▪ xj_0020_wl_gerichte_1_3.xsd<br />
▪ xj_0030_wl_rechtsform_1_3.xsd<br />
▪ xj_0040_wl_rollenbezeichnung_1_3.xsd<br />
▪ xj_0050_wl_staaten_1_3.xsd<br />
▪ xj_0060_wl_telekommunikation_1_3.xsd<br />
▪ xj_0070_wl_justizvollzugsanstalt_1_3.xsd<br />
Die Datei wl_allgemein_1_3.xsd enthält Wertelisten für folgende Elemente:<br />
▪ Anschriftstyp<br />
▪ Dateiformat<br />
▪ Familienstand<br />
▪ Geschlecht<br />
▪ Sachgebiet<br />
▪ Sendungsinhalt<br />
▪ Terminsart<br />
Der Inhalt der anderen Wertelisten-Dateien ergibt sich aus dem Dateinamen.<br />
Jede Werteliste definiert einen Datentyp auf der Basis des im Grundmodul enthaltenen<br />
Typs WLT_String und schränkt diesen durch Enumerations, also durch Vorgabe einer abschließenden<br />
Liste von zulässigen Werten, ein. Alle auf diese Art definierten Datentypen<br />
tragen Namen, die mit WL_ beginnen.<br />
Der Basis-Typ WLT_String wird hier verwendet, weil er neben einer String-Information auch<br />
Attribute enthält, aus denen die Version und die Fassung der jeweils verwendeten Wertelis-<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation <strong>12</strong><br />
te hervorgeht. Auf diese Weise können neue Versionen der Wertelisten eingeführt werden,<br />
ohne dass der Inhalt des Grundmoduls geändert werden muss. Für die Elemente Gericht<br />
und Rollenbezeichnung wurden spezielle Basistypen WLT_Gerichte und<br />
WLT_Rollenbezeichnung geschaffen, weil diese Elemente zugleich Teil von Identity<br />
Constraints (Unique) sind (vgl. dazu III.4).<br />
In einigen Fällen könnte sich die Verwendung verbindlicher Wertelisten in der Praxis als zu<br />
starr erweisen. Beispielsweise könnte kurzfristig die Notwendigkeit entstehen, eine neue<br />
Staatenbezeichnung zu verwenden, die in der einschlägigen Werteliste noch nicht enthalten<br />
ist. Um für solche Situationen genügend Flexibilität zu haben, besteht für jedes Instanz-<br />
Dokument die Möglichkeit, anstelle des in der Werteliste verwendeten Datentyps WL_xxx<br />
den Basistyp WLT_String zu verwenden, der beliebige Inhalte zulässt. Einzelheiten hierzu<br />
sind unter c) beschrieben.<br />
c) Fachmodule<br />
(1) Funktion und grundlegender Aufbau<br />
Weder das Grundmodul noch die zu diesem gehörigen Wertelisten sind als unmittelbarer<br />
Ansatzpunkt für die Definition eines Instanzdokuments geeignet. Hierzu ist ein so genanntes<br />
Root-Element erforderlich, das diese Dateien – ihrer Zwecksetzung als "Werkzeugsammlung"<br />
entsprechend – nicht aufweisen.<br />
Um ein Instanzdokument definieren und prüfen zu können, werden Fachmodule eingesetzt.<br />
Die Fachmodule beziehen sich über einen include-Befehle auf das Grundmodul, das<br />
seinerseits wiederum mit Inklusionen die zugehörigen Wertelisten an sich zieht Hierdurch<br />
stehen sämtliche Datentypen und Definitionen aus dem Grundmodul und den Wertelisten<br />
im Fachmodul zur Verfügung.<br />
Die include-Beziehungen zwischen den einzelnen Elementen von XJustiz sind in der nachfolgenden<br />
Grafik nochmals veranschaulicht:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 13<br />
Anbindung der Wertelisten<br />
Fachmodul<br />
Grundmodul<br />
xs:include<br />
Wertelisten<br />
Werteliste 2<br />
Werteliste 3<br />
Werteliste 4<br />
Werteliste 5<br />
Werteliste 6<br />
xs:include<br />
Werteliste<br />
Wertelisten<br />
2<br />
für<br />
Fachmodul<br />
xs:include<br />
Abbildung 4: Einbindung des Grundmoduls und der Wertelisten<br />
Jedes Fachmodul enthält das Root-Element XJustizDaten. Dieses wiederum besteht aus<br />
einem Unterelement Grunddaten und einem zusätzlichen Element Fachdaten_xxx.<br />
Das Element Grunddaten ist vom Datentyp T_Grunddaten, enthält also sämtliche Unterelemente<br />
und sonstigen Merkmale, die im Grundmodul definiert sind. Je nach den fachlichen<br />
Anforderungen können die im Grundmodul enthaltenen Definitionen dabei eingeschränkt,<br />
erweitert oder modifiziert sein.<br />
Das Element Fachdaten_xxx enthält zusätzliche Elemente, die nur für das jeweilige Fachverfahren<br />
benötigt werden.<br />
Zusammen mit der XJustiz-Version 1.0 sind zwei Fachmodule erstellt worden:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 14<br />
(2) Basis-Fachmodul<br />
Das Basis-Fachmodul enthält das Element Grunddaten in unveränderter Form, stellt also<br />
eine Eins-Zu-Eins-Abbildung der im Grundmodul enthaltenen Definitionen zur Verfügung.<br />
Es eignet sich zur Aufnahme des elektronischen Rechtsverkehrs in allen Gerichtszweigen<br />
und Verfahrensarten, solange für das jeweilige Fachgebiet noch kein Fachmodul existiert.<br />
Als einzige Ergänzung zum Element Grunddaten enthält das Basis-Fachmodul ein Element<br />
Fachdaten_Basis. Dieses ist vom Datentyp any, kann also beliebigen Inhalt haben.<br />
Der Aufbau des Basis-Fachmoduls ist in der nachfolgenden Grafik nochmals zusammengefasst:<br />
Abbildung 5: Aufbau des Basis-Fachmoduls<br />
(3) Fachmodul Familie<br />
Das Fachmodul Familie enthält zusätzliche Elemente und Definitionen, die nur in Verfahren<br />
vor den Familiengerichten benötigt werden. Hierzu wird die Definition des Elements Grunddaten<br />
teilweise abgewandelt. Außerdem definiert das Element Fachdaten_FAM zusätzliche<br />
Datenstrukturen, die im Grundmodul nicht angelegt sind.<br />
Der Aufbau des Fachmoduls Familie ist in der nachfolgenden Grafik dargestellt.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 15<br />
Abbildung 6: Aufbau des Fachmoduls Familie<br />
Die bereits vorliegenden Fachmodule in ihren jeweiligen Versionen sind folgende:<br />
- XJustiz.Basis: xj_0100_basis_1_3.xsd<br />
- XJustiz.Familie: xj_0200_familie_1_3.xsd<br />
- XJustiz.Insolvenz: xj_0300_insolvenz_1_3.xsd<br />
- XJustiz.Register: xj_0400_register_1_1.xsd<br />
Zusammen mit der XJustiz-Version 1.3.0 ist das Fachmodul für Straf erstellt worden.<br />
- XJustiz.Straf: xj_0500_straf_1_0.xsd<br />
(4) Anbindung der Wertelisten<br />
Die für bestimmte Elemente im Grunddatensatz definierten Wertelisten sind im Fachdatensatz<br />
automatisch durch den Verweis auf den Grunddatensatz zur Verfügung gestellt. (Indirekte<br />
Inklusion) Innerhalb des Fachdatensatzes besteht die Möglichkeit, diese Wertelisten<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 16<br />
nochmals einzuschränken oder zu erweitern, um sie den Erfordernissen des jeweiligen<br />
Fachgebiets anzupassen.<br />
Alle fachspezifischen Wertelisten werden über eine direkte Inklusion an das Fachmodul<br />
gebunden. Im Fachmodul Familie wurde von dieser Möglichkeit beispielsweise für die Werteliste<br />
Gegenstandsbezeichnung Gebrauch gemacht. Diese Werteliste liegt in<br />
xj_0210_wl_gegenstand_1_3.xsd<br />
Um bei der Verwendung von Wertelisten ein Mindestmaß an Flexibilität zu bewahren, sind<br />
die im Grundmodul definierten Elemente nicht an einen bestimmten Wertelistentyp gebunden.<br />
Elemente, für die die Verwendung von Wertelisten in Betracht kommt, weisen stattdessen<br />
den Typ WLT_String (oder die strukturgleichen Typen WLT_Gerichte und<br />
WLT_Rollenbezeichnung) auf, der beliebige Stringwerte zulässt und darüber hinaus Versions-Attribute<br />
vorsieht. Soll anstelle dieses "offenen" Datentyps ein Wertelistentyp aus den<br />
inkludierten Wertelisten verwendet werden, muss dies im Instanzdokument durch Verwendung<br />
des Attributs xsi:type kenntlich gemacht werden.<br />
In der Regel enthalten Instanzdokumente keine Angaben über den Datentyp der in ihnen<br />
enthaltenen Elemente. In diesem Fall ergibt sich der Datentyp aus den Definitionen des zu<br />
Grunde liegenden XML-Schemas. Das Attribut xsi:type ermöglicht es, den Datentyp im Instanzdokument<br />
explizit festzulegen. Hierbei kann ein anderer Datentyp gewählt werden als<br />
der im XML-Schema vorgesehene. Dies funktioniert jedenfalls dann problemlos, wenn die<br />
beiden Datentypen dieselbe Grundstruktur aufweisen. Um letzteres zu gewährleisten, wird<br />
für die in Frage kommenden Elemente bereits im Grundmodul nicht der einfache Datentyp<br />
xs:string verwendet, sondern der speziell definierte Typ WLT_String, der zusätzlich Attribute<br />
vorsieht, mit denen eine Versionsnummer angegeben werden kann.<br />
Alle Wertelisten-Typen enthalten ein Attribut wl_version. Damit kann (und muss) angegeben<br />
werden, welche Version (Haupt- und Unterversion, vgl. unten III.6) der jeweiligen Wertelistentyp<br />
bei der Erstellung des Instanzdokuments zu Grunde gelegt worden ist. Ergänzend<br />
ist ein optionales Attribut wl_fassung vorgesehen, mit dem angegeben wird, in welcher<br />
konkreten inhaltlichen Fassung die Werteliste zu Grunde gelegt worden ist.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 17<br />
Die vorstehend beschriebene Vorgehensweise lässt sich an folgendem Beispiel verdeutlichen:<br />
Dem an verschiedenen Stellen vorgesehenen Element Staat ist im Grundmodul der Datentyp<br />
WLT_String zugewiesen. Sofern das Instanzdokument dazu keine zusätzlichen Festlegungen<br />
enthält, kann dieses Element im Instanzdokument deshalb beliebigen Inhalt haben.<br />
Auch die Verwendung eines Attributs ist dann nicht zwingend erforderlich. Zulässig wäre<br />
beispielsweise folgende Angabe:<br />
Irgendein neu gegründeter Staat<br />
Im Instanzdokument kann (und sollte in aller Regel) stattdessen aber festgelegt werden,<br />
dass das Element dem Datentyp WL_Staat entspricht, also einen vordefinierten Wert enthält.<br />
Dann hat das Element beispielsweise folgenden Inhalt:<br />
DE <br />
Bei der Erstellung von Instanzdokumenten soll in aller Regel auf vorhandene Wertelisten<br />
zugegriffen werden. Nur in Ausnahmefällen, in denen die Werteliste den aus inhaltlicher und<br />
fachlicher Sicht benötigten Wert nicht enthält, darf der Basistyp WLT_String verwendet werden.<br />
d) Include-Technik<br />
Für die Einbindung des Grundmoduls in die Fachmodule sowie für die Einbindung der Wertelisten<br />
in das Grundmodul wird die Anweisung xs:include verwendet. Wichtig bei der Verwendung<br />
von xs:include ist, dass das eingebundene Schema denselben Ziel-<br />
Namensraum haben muß wie das einbindende Schema. Es ist möglich gleichzeitig<br />
mehrere Dokumente mit mehreren Include-Elementen einzubinden und Dokumente, die<br />
ihrerseits wieder inkludieren - jedoch müssen alle eingebundenen Dokumenten denselben<br />
Ziel-Namensraum verwenden. Das Inkludieren eines Schemadokumentes erzeugt eine<br />
Referenz auf dieses und erlaubt somit später einen schnelleren Zugriff, da hier vorab in den<br />
Cache gespeichert wird.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 18<br />
Die Einbindung mittels xs:include bietet sich auch für künftige Erweiterungen von XJustiz<br />
an, insbesondere für zukünftig hinzukommende Fachmodule. Sollten in Zukunft XJustiz-<br />
Module mit einem eigenem, neuen Namensraum hinzukommen, müssten diese Module hingegen<br />
mit der Anweisung xs:import importiert werden. Aus heutiger Sicht erscheint es indes<br />
sinnvoller, auch neue XJustiz-Module in den einheitlichen Namensraum<br />
http://www.<strong>xjustiz</strong>.de zu integrieren und deren Anbindung an andere Module über xs:include<br />
zu realisieren.<br />
Für die Einbindung externer Strukturen wie z.B. XDOMEA bietet sich dagegen die Import-<br />
Technik an.<br />
e) Import-Technik<br />
Die Einbindung mittels xs:import bietet die Möglichkeit, einen ganzen externen<br />
Namensraum zu importieren. Die verschiedenen Namensräume können dann mittels<br />
vorangestellten Präfixen voneinander unterschieden werden. So können gleiche oder<br />
identische Bezeichner, die möglicherweise in ihren jeweiligen Namensräume verschiedene<br />
Bedeutungen haben über ihr Präfix dem korrekten Namensraum zugeordnet werden.<br />
Bei XJustiz wird ab der Version 1.3.0 die Import-Anweisung eingesetzt, um XDOMEA<br />
einzubeziehen. XDOMEA ist eine Datensatzbeschreibung, die für den Austausch von<br />
Dokumenten, Akten und Vorgängen in der öffentlichen Verwaltung insgesamt vorgesehen<br />
ist. XJustiz verwendet diese Strukturen, indem im Element Sendungsdaten an Stelle des<br />
bisherigen justizspezifischen Unterelements Dokument ein neues Unterelement XDOMEA<br />
eingefügt wurde, das vollständig der XDOMEA-Definition entspricht. Hierzu wurde die XDO-<br />
MEA-Definition mit Hilfe der Anweisung xs:import in XJustiz integriert. Der Namensraum für<br />
dieses importierte Element lautet http://www.xdomea.de, das entsprechende Präfix lautet<br />
xdo.<br />
" xmlns:xdo="http://www.xdomea.de"<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 19<br />
Zur Kennzeichnung des Namensraums muss allen Unterelementen des XDOMEA-Zweigs<br />
in XJustiz-Datensätzen das Präfix xdo: vorangestellt werden. In „reinen“ XDOMEA-<br />
Datensätzen ist dieses Präfix nicht erforderlich (weil dort http://www.xdomea.de der<br />
Standard-Namensraum ist), aber auch nicht schädlich.<br />
3. Bezugnahme auf die Schemata in Instanzdokumenten<br />
Jedes XML-Instanzdokument muss die Angabe enthalten, nach welchen Regeln es aufgebaut<br />
ist. Hierzu muss im Instanzdokument auf eines der Fachmodule referenziert werden.<br />
Diese Referenzierung erfolgt durch das Attribut xsi:schemaLocation. Als Wert enthält es<br />
Paare aus einem Namensraum (www.<strong>xjustiz</strong>.de) und einer Referenz auf ein zu diesem Namensraum<br />
gehöriges Fachmodul.<br />
Auf das Grundmodul oder auf Wertelisten braucht in Instanzdokumenten dagegen nicht referenziert<br />
zu werden. Beides steht durch die Inklusionskette des Fachmoduls und die darin<br />
enthaltene xs:include-Anweisung auf das Grundmodul und die hier implizit inkludierten Wertelisten<br />
automatisch zur Verfügung. Auch eine Referenzierung auf das XDOMEA-Schema<br />
ist nicht erforderlich. Dieses steht aufgrund der xs:import-Anweisung im Grundmodul ebenfalls<br />
automatisch zur Verfügung.<br />
4. Statisches Datenmodell<br />
Die Definitionen in XJustiz sind von statischer Natur. Sie dürfen deshalb nur als statisches<br />
Datenmodell gesehen werden. Erste Entwürfe von XJustiz hatten demgegenüber noch Mechanismen<br />
vorgesehen, die eine rudimentäre Grundlage für die Mitteilung von Änderungsoder<br />
Lösch-Vorschlägen geboten hätten. Diese Ansätze wurden verworfen, weil sie ihre<br />
Umsetzung nach Einschätzung von Software-Entwicklern mit zu hohem Aufwand verbunden<br />
gewesen wäre.<br />
In seiner jetzigen Form macht XJustiz keine Annahmen über die EDV-Ausstattung auf Anwalts-<br />
und oder Gerichtsseite, über Inhalt und Umfang der dort vorhandenen Datenbestände<br />
oder über bestimmte Eigenschaften von Fachanwendungen. XJustiz hat lediglich die<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 20<br />
Funktion einer Schnittstelle, über die die verschiedenen Anwendungen statische Daten<br />
austauschen können. Mit XJustiz können dagegen keinerlei Transaktionen ausgelöst<br />
werden. XJustiz ist also beispielsweise nicht dafür ausgelegt, durch den Eingang eines Instanzdokuments<br />
automatische Transaktionen in der Gerichtsdatenbank auszulösen.<br />
Im Rahmen einer späteren Erweiterung ist denkbar, auch Transaktionen zu modellieren.<br />
Hierzu bietet sich die Verwendung von separaten Transaktions-XML-Schemata an.<br />
5. Bewusst ausgeklammerte Aspekte<br />
Die Konzeption von XJustiz beschränkt sich bewusst darauf, lediglich eine Datenstruktur<br />
für den Austausch ausgewählter Daten bereitzustellen. Andere Aspekte, die für eine rechtsgültige<br />
Übermittlung im elektronischen Rechtsverkehr einer Lösung bedürfen, wurden bewusst<br />
ausgeklammert, um den Inhalt der Vorgaben auf ein Minimum zu beschränken.<br />
Für alle Aspekte, die von XJustiz nicht berührt werden, ergeben sich die maßgeblichen Vorgaben<br />
aus den von der Bund-Länder-Kommission für Datenverarbeitung und Rationalisierung<br />
in der Justiz (BLK) verabschiedeten Organisatorisch-Technischen Leitlinien elektronischen<br />
Rechtsverkehr mit den Gerichten und Staatsanwaltschaften (OT-Leit-ERV). Dieses<br />
Regelwerk, das auch einen technischen Anhang enthält, ist unter anderem unter<br />
http://www.<strong>xjustiz</strong>.de erhältlich.<br />
a) Dokumente und Meta-Informationen<br />
Die in XJustiz definierten Strukturen beschreiben ausschließlich Meta-Informationen zu<br />
einem übermittelten Dokument und zu dem Verfahren, auf das sich das Dokument bezieht.<br />
Das eigentliche Dokument ist in einer separaten Datei enthalten, das nicht im XJustiz-<br />
Format erstellt ist. Zusammen mit jeder XJustiz-Instanzdatei wird deshalb in aller Regel<br />
mindestens eine weitere Datei übertragen, die das eigentlich zu übermittelnde Dokument<br />
enthält.<br />
Beispiel: Wenn ein Anwalt eine Klage einreicht, erstellt er die Klageschrift in einem gängigen<br />
Dokumentenformat, z.B. Adobe PDF. Welche Formate hierfür zulässig sind, wird durch<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 21<br />
Rechtsverordnung geregelt. Zu diesem Dokument wird vor dem Versand eine XJustiz-Datei<br />
erzeugt, in der grundlegende Informationen zum Absender und Empfänger des Dokuments<br />
Sendung sowie rudimentäre Angaben zu dessen Inhalt hinterlegt werden. Beides zusammen<br />
– Klageschrift im PDF-Format und Metainformationen im XJustiz-Format wird dann an<br />
das Gericht übersandt.<br />
Die Verbindung zwischen den XJustiz-Daten und den zusammen mit ihnen übermittelten<br />
Dokumenten bildet das Element Sendungsdaten enthalten. Dieses enthält Informationen<br />
über den Inhalt, das Dateiformat und den Dateinamen der beigefügten Dokumente.<br />
b) Elektronische Signatur<br />
Dokumente, die im elektronischen Rechtsverkehr ausgetauscht werden, bedürfen in der<br />
Regel einer qualifizierten elektronischen Signatur. Rechtlich maßgeblich und deshalb signaturbedürftig<br />
sind nicht die XJustiz-Daten, sondern die zusammen mit diesen übermittelten<br />
Dokumente, also z.B. die Klageschrift, ein gerichtliches Urteil usw. XJustiz selbst deshalb<br />
keine Festlegungen hinsichtlich der elektronischen Signatur.<br />
c) Übertragungsweg, Verschlüsselung, Transportsignatur<br />
XJustiz wurde bewusst so konzipiert, dass die Übermittlung nicht an einen bestimmten Ü-<br />
bertragungsweg gebunden ist. Auch insoweit ergeben sich die wesentlichen Vorgaben aus<br />
den OT-Leit-ERV.<br />
III.<br />
Einzelheiten<br />
1. Dateinamen<br />
Für die Dateinamen der XML-Schema-Dateien wird folgendes Muster verwendet:<br />
xj_nnnn_[ww_]b*_v-v.xsd<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 22<br />
Hierbei bedeuten:<br />
▪ xj<br />
Ein konstantes Präfix zur Kennzeichnung aller XJustiz-Schemata.<br />
▪ nnnn<br />
Eine vierstellige Zahl, die als Hilfsmittel verwendet wird, um die alphanumerische Reihenfolge<br />
der Dateinamen möglichst weitgehend in Einklang zu bringen mit der inhaltlichen<br />
Reihenfolge.<br />
Hierzu wird folgendes System verwendet:<br />
Die erste und die zweite Stelle zeigen an, ob die Datei zum Grundmodul oder zu einer<br />
Facherweiterung gehört. Für das Grundmodul ist dabei die Ziffernfolge 00 reserviert, für<br />
Facherweiterungen die Ziffernfolgen 01 bis 99.<br />
Die dritte und die vierte Stelle sollen eine an inhaltlichen Kriterien orientierte Sortierung<br />
der zu einem Modul gehörigen Dateien ermöglichen.<br />
Beispiel: Das Schema für das Grundmodul erhält die Nummer 0000, die zum Grundmodul gehörigen<br />
Wertelisten die Nummern 0010, 0020, 0030 usw.; die Zehnerschritte sollen es ermöglichen, später hinzukommende<br />
Wertelisten, die inhaltlich mit vorhandenen Wertelisten zusammenhängen, in das bestehende<br />
Schema einzureihen.<br />
▪ ww<br />
Ein optionaler Zusatz für besondere Schema-Arten.<br />
Zur Zeit wird dieser Zusatz nur bei Wertelisten verwendet; diese erhalten das Kennzeichen<br />
"wl".<br />
▪ b*<br />
Eine schlagwortartige Bezeichnung des Inhalts<br />
▪ v-v<br />
Die Angabe der Haupt- und Unterversion.<br />
Beispiel: Für die Version 1.0.0 lautet der Zusatz 1-0, ebenso für künftige Versionen<br />
1.0.1, 1.0.2 usw. Der derzeitige Zusatz lautet 1-3 für die Version 1.3.0 (Stand Mai <strong>2005</strong>)<br />
und Version 1.3.0 (Stand Dezember <strong>2005</strong>) .<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 23<br />
2. Modellierungsstil<br />
Objekte in XML-Schemata können entweder lokal oder global definiert werden. Beide Modellierungsarten<br />
haben Vor- und Nachteile. In XJustiz wurde ein gemischter Ansatz gewählt,<br />
der sich in der Formel "lokale Elemente – globale Datentypen" zusammenfassen lässt.<br />
Global definierte Elemente sind in der Inhaltsstruktur als unmittelbare Kinder des Schema-<br />
Elements angeordnet. Solche Elemente können durch Refererenzierung in das Inhaltsmodell<br />
aller anderen Elemente eingebunden werden. Ein Design, das ausschließlich mit globalen<br />
Elementen arbeitet, wird häufig als Salamischeiben-Design bezeichnet. Viele XML-<br />
Editoren, die den XML-Code automatisch erzeugen, arbeiten mit dieser Technik. Der hauptsächliche<br />
Vorteil liegt in der mehrfachen Verwertbarkeit der Definitionen. Ein Nachteil besteht<br />
häufig darin, dass die Code-Struktur schnell unübersichtlich wird.<br />
Lokal definierte Elemente sind in die Deklaration eines anderen Objekts eingeschlossen.<br />
Solche Elemente können nur in ihrem jeweiligen Zusammenhang verwendet werden, können<br />
also nicht in das Inhaltsmodell anderer Elemente eingebunden werden. Ein Design, das<br />
ausschließlich mit lokalen Elementen arbeitet, wird häufig als Matroschka-Design bezeichnet.<br />
Ein Vorteil dieser Technik besteht darin, dass die Code-Struktur weitestgehend mit der<br />
fachlichen Anordnung der Daten übereinstimmt. Nachteilig ist, dass gleichartig strukturierte<br />
Elemente separat definiert werden müssen, was vor allem den Aufwand für die spätere<br />
Weiterentwickung und Pflege erhöht.<br />
Ein Mittelweg besteht darin, lokale Elemente zu verwenden, ergänzend aber globale Typen<br />
zu deklarieren, auf die bei der Deklaration der Elemente Bezug genommen werden kann.<br />
Ein solches typgestütztes Design wird häufig auch als Jalousie-Design bezeichnet. Es<br />
vereint die Vorteile der beiden übrigen Designmodelle, ohne dass gravierende Nachteile in<br />
Kauf genommen werden müssen.<br />
XJustiz orientiert sich im Wesentlichen am typgestützten Design. Globale Typen wurden<br />
allerdings nur dann definiert, wenn die betreffende Teilstruktur in gleicher Weise in mehreren<br />
Elementen vorkommt oder wenn zumindest damit zu rechnen ist, dass spätere Facherweiterungen<br />
Elemente gleicher Struktur aufweisen werden.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 24<br />
Typisches Beispiel ist der Typ T_Geldbetrag: Das Grundmodul enthält an einigen Stellen<br />
Elemente, die einen Geldbetrag darstellen. Der global definierte Typ T_Geldbetrag stellt<br />
sicher, dass alle diese Elemente dieselbe Struktur aufweisen. Im Falle einer späteren Änderung<br />
oder Erweiterung des Datenmodells braucht nur die Typ-Definition geändert zu werden;<br />
in allen zugehörigen Elementen stehen die Änderungen dann ohne weiteres zur Verfügung.<br />
Sofern in späteren Fachmodulen weitere Elemente mit gleicher Funktion hinzukommen,<br />
sollte auch diesen der Typ T_Geldbetrag zugewiesen werden, damit die Einheitlichkeit<br />
der Datenstrukturen gewahrt bleibt.<br />
<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 7: Definition des Datentyps T_Geldbetrag<br />
Elemente sind in XJustiz dagegen stets lokal definiert. Sie sind teilweise tief geschachtelt,<br />
um die fachlich vorgegebene Struktur der Daten möglichst originalgetreu im Inhaltsmodell<br />
wiederzugeben.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 25<br />
Abbildung 8: Verschachtelung der Elemente<br />
3. Häufigkeiten (Kardinalitäten)<br />
a) minOccurs und maxOccurs<br />
Bei der Definition von Elementen in einem XML-Schema kann auch angegeben werden,<br />
wie oft ein Element mindestens vorkommen muss und wie oft es höchstens vorkommen<br />
darf. Hierzu dienen die Attribute minOccurs und maxOccurs. Beiden Attributen kann ein beliebiger<br />
ganzzahliger Wert oder der Wert unbounded zugewiesen werden. Typische sind für<br />
minOccurs die Werte 1 oder 0, für maxOccurs die Werte 1 oder unbounded. Der Standardwert<br />
beider Attribute ist 1. Er braucht nicht explizit zugewiesen zu werden. Enthält ein Element<br />
weder das eine noch das andere Attribut, bedeutet dies folglich, dass es genau einmal<br />
vorkommen darf und muss.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 26<br />
In XJustiz werden viele Elemente mit minOccurs=“0“ eingesetzt. Dies ergibt sich aus der<br />
Zielsetzung von XJustiz: In aller Regel enthält ein XJustiz-Instanzdokument nur eine verhältnismäßig<br />
geringe Teilmenge der in Grund- und Fachmodulen vorgesehenen Elemente.<br />
Welche Elemente vorhanden sind und welche fehlen, hängt vom jeweiligen fachlichen Zusammenhang<br />
und vom Einzelfall ab. Allgemeine Regeln lassen sich dafür kaum bilden. Um<br />
die für diese Ausgangslage erforderliche Flexibilität zu erreichen, ist die Zahl der Pflicht-<br />
Elemente, also der Elemente mit maxOccurs="1", auf ein Minimum reduziert.<br />
b) Leere Elemente<br />
Daneben besteht die Möglichkeit, ein Element zwar als zwingend zu deklarieren (also minOccurs="1"),<br />
aber zuzulassen, dass es ohne Inhalt bleibt. Hierzu dienen das Attribut nillable="true"<br />
im XML-Schema und das Attribut xsi:nil=“true“ im zugehörigen Instanzdokument.<br />
Wird in der Deklaration eines Elements nillable="true" angegeben, werden Elemente ohne<br />
Inhalt auch dann geduldet, wenn dies mit dem Datentyp, dem das Element zugeordnet ist,<br />
an sich nicht vereinbar wäre. Von dieser Möglichkeit wurde in XJustiz bei Elementen<br />
Gebrauch gemacht, die zwar nicht in jedem Fall vorhanden sein müssen, die aber aus fachlichen<br />
Gründen erfahrungsgemäß häufig vorkommen. Diese Elemente müssen in jedem<br />
Instanzdokument vorkommen, dürfen aber über das Attribut xsi:nil=“true“ einen leeren Inhalt<br />
zugewiesen bekommen. Auf diese Weise wird einerseits gewährleistet, dass jedes Instanzdokument<br />
einen gewissen Mindestbestand an Elementen hat, andererseits verhindert, dass<br />
ein Datenaustausch daran scheitert, dass es zu einem bestimmten Element keinen Inhalt<br />
gibt.<br />
Das Attribut xsi:nil ist im XML-Schema-Namensraum für Instanzen,<br />
(http://www.w3.org/2001/XMLSchema-instance) definiert. Zu Referenzierungszwecken wird<br />
diesem Namensraum in der Regel das Präfix xsi: zugewiesen. Instanzdokumente, die das<br />
Attribut verwenden, müssen diesen Namensraum einbinden. Hierbei kann theoretisch jedes<br />
beliebige Präfix verwendet werden. Zur besseren Verständlichkeit empfiehlt es sich jedoch,<br />
generell das gebräuchliche Präfix xsi: zu verwenden.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation <strong>27</strong><br />
Die Auswahl zwischen Elementen, die mit dem Attribut minOccurs="0" versehen werden,<br />
und solchen, bei denen minOccurs="0" und nillable="true" gesetzt ist, erfolgte aus praktischen<br />
Erfahrungen heraus und hat keinen tiefer gehenden fachlichen oder datentechnischen<br />
Hintergrund.<br />
Die Attribute nillable und xsi:nil erinnern an das Konzept der Nullwerte, wie es bei Datenbanksystemen<br />
gebräuchlich ist. Trotz dieser Ähnlichkeit gibt es aber einen entscheidenden<br />
Unterschied: In XML-Schema-Definitionen wird klar unterschieden zwischen einem nicht<br />
vorhandenen Element, einem nil-Element und einem Element mit leerem Inhalt. In Datenbanksystemen<br />
wird hingegen in der Regel sowohl das Nichtvorhandensein eines Elements<br />
als auch der Wert xsi:nil durch NULL gekennzeichnet. Eine Import- oder Export-Software,<br />
die XJustiz-Daten auf den Inhalt einer Datenbank abbildet, wird deshalb beim Import sowohl<br />
ein nicht vorhandenes Element als auch ein nil-Element in den Datenbankwert NULL umsetzen.<br />
Beim Export eines Feldes mit Inhalt NULL ist zu unterscheiden: Sofern das entsprechende<br />
Element auf XML-Seite optional ist (also minOccurs="0"), sollte es weggelassen<br />
werden. Ist es zwingend, muss es mit dem Attribut xsi:nil versehen werden.<br />
c) Leerstrings<br />
Bei Elementen vom Typ xs:string kann ein „leerer“ Feldinhalt auch auf andere Weise übermittelt<br />
werden: Die Definition dieses Datentyps lässt es zu, dass als xs:string-Wert auch<br />
eine Zeichenkette der Länge 0 übermittelt wird. Dadurch kann es vorkommen, dass selbst<br />
in Pflichtelementen (also Elementen, bei denen minOccurs nicht explizit definiert ist und<br />
deshalb den Wert 1 hat), die nicht als nillable deklariert sind, nur ein Leerstring übermittelt<br />
wird.<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 9: Übermittlung eines Leerstrings in einem Pflichtfeld<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 28<br />
Aus Gründen der Kompatibilität zum XML-Standard wurde darauf verzichtet, in XJustiz weitergehende<br />
Regeln für den Inhalt von xs:string-Werten zu definieren. Sofern die Zieldatenbank<br />
für die betreffenden Felder keine Leerstrings zulässt, muss das Importprogramm deshalb<br />
eigene Prüfroutinen aufweisen, um solche Datensätze abzufangen. Generell empfiehlt<br />
es sich, überall dort, wo geprüft wird, ob ein Element den Wert xsi:nil hat, zugleich zu prüfen,<br />
ob das Element aus einem Leerstring besteht.<br />
4. Interne Referenzierung<br />
a) Ausgangspunkt<br />
Häufig kommt es vor, dass dieselbe Information an verschiedenen Stellen innerhalb desselben<br />
Instanzdokuments anzugeben ist.<br />
Typische Beispiele:<br />
▪ Ein Rechtsanwalt ist Absender eines Dokuments und zugleich Prozessbevollmächtigter<br />
eines Prozessbeteiligten.<br />
▪ Ein Prozessbeteiligter ist zugleich Beklagter und Geschäftsführer einer zusammen mit<br />
ihm verklagten Gesellschaft.<br />
Um in solchen Fällen Redundanzen zu vermeiden, enthält das Grundmodul an einigen Stellen<br />
Verweisungsmechanismen, die ähnlich funktionieren wie Schlüsselbeziehungen in<br />
einer relationalen Datenbank. Dadurch brauchen die Personendaten eines Beteiligten, auf<br />
den in einem Instanzdokument mehrfach Bezug genommen wird, in diesem Instanzdokument<br />
nur einmal aufgeführt zu werden, und zwar im Element Beteiligung. An allen anderen<br />
Stellen des Dokuments, an denen dieser Beteiligte in Erscheinung tritt, genügt dann ein<br />
Verweis auf das Beteiligungs-Element, das die vollständigen Daten enthält.<br />
In dem oben gebildeten Beispiel ermöglicht dies folgende Vorgehensweise:<br />
▪ Die Daten des Rechtsanwalts und der von ihm vertretenen Beteiligten werden als Elemente<br />
unter der Rubrik Beteiligung aufgeführt. Das Element Absender enthält dann lediglich<br />
einen Verweis auf das Beteiligten-Element des Rechtsanwalts. Für die Prozessvollmacht<br />
erfolgt die Referenzierung in anderer Richtung: Beim Anwalt wird vermerkt,<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 29<br />
dass er die Rolle des Prozessbevollmächtigten hat; in diesem Zusammenhang wird auf<br />
den (oder die) Beteiligten referenziert, die der Anwalt vertritt.<br />
▪<br />
Der Beklagte, der zugleich Geschäftsführer einer mitverklagten Gesellschaft ist, erhält<br />
zwei Rollen zugewiesen: zum einen die eines Beklagten, zum anderen die des Geschäftsführers,<br />
und zwar mit einem Verweis auf die von ihm vertretene Gesellschaft.<br />
b) Eingesetzte Werkzeuge<br />
Um Referenzierungen in der beschriebenen Art zu ermöglichen und zugleich zu gewährleisten,<br />
dass die in einem Instanzdokument enthaltenen Verweise zu einem eindeutigen Ziel<br />
führen, werden in XJustiz die in XML-Schema vorgesehenen Hilfsmittel Schlüssel-<br />
Eigenschaft, Fremdschlüsselbedingung und Eindeutigkeits-Eigenschaft (Identity<br />
Constraints) verwendet.<br />
(1) Schlüssel-Eigenschaft<br />
XML-Schema ermöglicht es, eine Schlüssel-Eigenschaft zu definieren. Damit wird gewährleistet,<br />
dass in einer bestimmten Menge von Elementen eine bestimmte Kombination nur<br />
ein einziges Mal vorkommt. Zur Definition einer solchen Eigenschaft dient der Befehl<br />
xs:key.<br />
Der Schlüssel muss innerhalb des Elements definiert werden, welches eindeutig gehalten<br />
werden soll, und zwar am Ende der Element-Definition. Zur Kennzeichnung der Elemente,<br />
aus denen der eindeutige Schlüssel bestehen soll, werden XPath-Ausdrücke verwendet.<br />
Dabei wird mit xs:selector eine Menge von Elementen spezifiziert, auf die der Schlüssel<br />
angewendet wird. Mit xs:field wird angegeben, aus welchen (Unter-)Elementen der<br />
Schlüssel besteht<br />
In XJustiz speziell in den Fachmodulen sind drei solcher xs:key-Definitionen enthalten:<br />
▪ Schluessel_Beteiligter_Beteiligtennummer<br />
▪ Schluessel_Beteiligter_Rollennummer<br />
▪ Schluessel_Instanz<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 30<br />
(a) Schluessel_Beteiligter_Beteiligtennummer<br />
Dieser Schlüssel ist definiert durch die Beteiligtennummer eines Beteiligten.<br />
<br />
<br />
<br />
<br />
Abbildung 10: Schlüssel für Beteiligtennummer<br />
Hierüber besteht die Möglichkeit eine Person als Beteiligten über seine Beteiligtennummer<br />
zu referenzieren.<br />
(b) Schluessel_Beteiligter_Rollennummer<br />
Dieser Schlüssel ist definiert durch die Rollennummer eines Beteiligten.<br />
<br />
<br />
<br />
<br />
Abbildung 11: Schlüssel für Rollennummer<br />
In der Regel wird ein Beteiligter nur eine Rolle im Verfahren haben. Dann ist der Verweis<br />
auf die Rollennummer gleichbedeutend mit einem Verweis auf den betreffenden Beteiligten.<br />
Wenn ein Beteiligter mehrere Rollen hat, kann exakt angegeben werden, auf welche dieser<br />
Rolle(n) Bezug genommen werden soll.<br />
Beispiel: Ein Rechtsanwalt ist in einem Verfahren Prozessbevollmächtigter einer Partei und<br />
zugleich gesetzlicher Vertreter einer anderen Partei. Wenn dieser Anwalt ein bestimmtes<br />
Dokument nur im Namen einer dieser Parteien einreicht, kann dies im Element Absender<br />
dadurch gekennzeichnet werden, dass nur auf diese eine Rollennummer referenziert wird.<br />
Reicht derselbe Anwalt ein Dokument im Namen aller von ihm vertretenen Parteien ein,<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 31<br />
können mehrere Elemente Absender gebildet werden und darin auf alle vorhandenen Rollennummern<br />
des Rechtsanwalts verwiesen werden.<br />
(c) Schluessel_Instanz<br />
Dieser Schlüssel ermöglicht es, auf ein bestimmtes Gericht oder eine bestimmte Staatsanwaltschaft<br />
zu verweisen, die als Element in der Rubrik Verfahrensdaten/Instanzdaten angegeben<br />
ist.<br />
<br />
<br />
<br />
<br />
Abbildung <strong>12</strong>: Schlüssel für Gerichte und Staatsanwaltschaften<br />
(2) Fremdschlüsselbedingung<br />
Ein Verweis auf einen der definierten Schlüssel erfolgt mit Hilfe der Anweisung xs:keyref.<br />
Bei der Definition eines xs:keyref-Elements wird mit Hilfe des Attributs refer der Name des<br />
Schlüssels angegeben, auf den verwiesen werden soll. Dadurch wird klargestellt, auf welches<br />
Element verwiesen wird. Mittels xs:selector und xs:path wird definiert, welche Elemente<br />
im verweisenden Objekt den Fremdschlüssel bilden. Hierdurch wird deutlich, von welchem<br />
Element der Referenzpunkt ausgeht.<br />
Ein Beispiel für einen solchen Verweis fand sich im Grundmodul bis zur Version 1.2.0 beispielsweise<br />
zur Definition des Teilnehmers eines Termins.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 32<br />
<br />
<br />
<br />
<br />
Abbildung 13: Fremdschlüsselbedingung für Teilnehmer (bis Version 1.2)<br />
In dem aufgeführten Beispiel wurde definiert, dass der Inhalt des Elements<br />
Ref_Rollennummer in den Daten zu einem Teilnehmer an einem Termin übereinstimmen<br />
muss mit den entsprechenden Angaben eines im Instanzdokument unter der Rubrik Beteiligung<br />
aufgeführten Verfahrensbeteiligten.<br />
Um dies zu vermeiden, wurde in der Version 1.3.0 ein globaler Typ T_Ref_Rolle definiert,<br />
bei dem die Fremdschlüsselbedingung bereits in der Typ-Definition enthalten war. Diese<br />
Vorgehensweise wurde von einigen marktgängigen Parsern aber als unzulässig behandelt,<br />
weshalb es Probleme bei der Validierung von Instanzdokumenten gab. In der Version 1.3.1<br />
wurde die keyref-Definition innerhalb des Typs T_Ref_Rolle deshalb wieder entfernt.<br />
Stattdessen wurden die keyref-Definitionen durch die Verwendung von Platzhaltern in den<br />
xpath-Ausdrücken verallgemeinert Zwingende Konsequenz daraus war, dass die keyref-<br />
Definitionen aus dem Grunddatensatz in die Fachmodule ausgelagert werden mussten, weil<br />
erst in diesen die maßgebliche Baumstruktur vorhanden ist.<br />
Ab der XJustiz Version 1.3.1 bestehen die globalen Typdefinitionen weiterhin, um die<br />
Referenzierungen untereinander zu verdeutlichen. Die konkrete Schlüsselreferenzdefinition<br />
ist dem Root-Element des jeweiligen Fachmoduls zugeordnet und entspricht folgendem<br />
allgemeinem Schema:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 33<br />
- xs:keyref nameRef_Rollennummertns:Schluessel_Beteiligter_Rollennummerxs:selector<br />
xpath.//*xs:field xpathtns:Ref_Rollennummerxs:keyref<br />
Diese keyref-Definition spricht alle unter dem Root-Element existierende Elemente mit<br />
Namen „Ref_Rollennummer“ an und legt über das Attribut refer die Verwendung des<br />
vordefinierten Schlüssels fest. Der im Selector angegebene XPath-Ausdruck (.//*) bezieht<br />
sich auf alle unter dem Root-Element definierten Elemente. Die Field-Definition bezieht sich<br />
nun konkret auf existierende Elemente namens Ref_Rollennummer. Durch das Zusammenspiel<br />
von Selector und Field verwenden nun alle existierenden Elemente mit Namen<br />
Ref_Rollennummer denselben Schlüssel (hier: Schluessel_Beteiligter_Rollennummer).<br />
Somit ist der Zusammenhang und die Notwendigkeit zwischen den global definierten<br />
Referenztypen (T_Ref_Rolle, T_Ref_Beteiligtennummer) und der Schlüsselreferenz-<br />
Definition (keyref) über das gleichlautenden Element Ref_Rollennummer hergestellt.<br />
Beispiel für die Verwendung:<br />
xs:element nametype<br />
Insgesamt enthält das Grundmodul zwei solcher globaler Typdefinitionen, die jeweils eine<br />
Element Ref_*** auf entsprechende Elemente vorweisen.<br />
• T_Ref_Rolle<br />
• T_Ref_Beteiligtennummer<br />
Insgesamt enthält das Grundmodul folgende über den globalen Typ definierte Beziehungen:<br />
(a) Beteiligung/Rolle/Referenz/Ref_Rollennummer<br />
Diese Fremdschlüsselbedingung fordert, dass sich die Angabe, auf welchen anderen Beteiligten<br />
sich eine Rolle bezieht, mit den entsprechenden Angaben eines im Instanzdokument<br />
aufgeführten (anderen) Beteiligten deckt.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 34<br />
Beispiel: Wenn bei einem Rechtsanwalt angegeben ist, dass er der Prozessbevollmächtigte<br />
des Klägers ist, muss es einen anderen Beteiligten mit der in Bezug genommenen Rollennummer<br />
geben.<br />
xs:element nameReferenztypeT_Ref_RolleminOccurs0maxOccursunbounded<br />
Hier wird ein Bezug zu einer anderen Rolle angegeben. Beispielsweise handeln Rechtsanwälte<br />
in aller Regel als Prozessbevollmächtigte für einen anderen Beteiligten. Im vorliegenden<br />
Feld wird dann vermerkt, für welchen Beteiligten (ggf. auch in welcher Rolle) der<br />
Rechtsanwalt handelt. Für jede Rolle, auf die verwiesen wird, muss ein entsprechendes<br />
Element "Beteiligung/Rolle" vorhanden sein. Verwiesen wird auf die Rollennummer.<br />
(b) Termin/Terminsdaten/Teilnehmer/Ref_Rollennummer<br />
Diese Fremdschlüsselbedingung fordert, dass der Inhalt des Elements Ref_Rollennummer<br />
in der Auflistung der Beteiligten, die an einem Termin teilnehmen, übereinstimmen muss mit<br />
den entsprechenden Angaben eines im Instanzdokument unter der Rubrik Beteiligung aufgeführten<br />
Verfahrensbeteiligten. Verwendet wird diese Beziehung für Ladungen von<br />
Beteiligten zu einem Termin ist dadurch gegeben.<br />
<br />
(c) Verfahrensdaten/Instanzdaten/Instanzbehörde/Sonstige<br />
Dieses Element enthält einen Verweis auf eine Beteiligung (Behörde). Verwiesen wird auf<br />
den Wert der Rollennummer in "Beteiligung/Rolle". Für jeden Beteiligten, auf den verwiesen<br />
wird, muss ein entsprechendes Element "Beteiligung" vorhanden sein. Es werden sonstige<br />
Behörden referenziert.<br />
<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 35<br />
(d) Entscheidung/Zustellung/Zustellungsempfaenger<br />
Ein Zustellungsempfänger stellt ebenfalls eine Referenz auf eine Rollennummer einer beteiligten<br />
Person dar.<br />
<br />
(e) Entscheidung/Rechtskraft/Betroffener<br />
Die beteiligte Person, die von der Rechtskraft einer Entscheidung betroffen ist, kann über<br />
diese Beziehung referenziert werden.<br />
<br />
(f) Entscheidung/Entscheidungstenor/Betroffener<br />
Eine von der Entscheidung betroffene Person, die im Entscheidungstenor vorkommt, wird<br />
ebenfalls über ihre Rollennummer referenziert.<br />
<br />
(g) Referenz_Adresse<br />
Diese Fremdschlüsselbedingung ist dem Namensraum von XDOMEA zugeordnet und bezieht<br />
sich auf eine Schlüsseldefinition Schluessel_Adresse, die ebenfalls zu XDOMEA gehört.<br />
.Die Bedingung bezieht sich auf Elemente des importierten Namensraums von XDO-<br />
MEA. Aus diesem Grund ist sie dem Element XDOMEA in den Sendungsdaten zugeordnet.<br />
<br />
<br />
<br />
<br />
Abbildung 14: Fremdschlüsselbedingung für die Absender- und Empfängerangabe<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 36<br />
(h) Ref_Beteiligter_Instanz<br />
Diese Fremdschlüsselbedingung dient für Verweisungen von der Rollen_ID eines Beteiligten<br />
auf die entsprechende Instanznummer der Instanzdaten, in der der Beteiligte auftritt.<br />
Hiermit ist der Bezug des Beteiligten zur Instanz gegeben. Der Verweis geht von der<br />
Ref_Instanznummer der Beteiligung/Rolle/Rollen_ID aus. Verwendet wird hierzu die<br />
Schlüsseldefinition Schluessel_Instanz.<br />
<br />
(3) Eindeutigkeits-Eigenschaft<br />
Ähnliche Funktionen wie die Anweisung xs:key erfüllt die Anweisung xs:unique. Wie bei<br />
xs:key wird mit xs:unique festgelegt, dass eine bestimmte Kombination von Elementen eindeutige<br />
Inhalte enthalten muss. Der Unterschied besteht darin, dass ein mit xs:key<br />
spezifiziertes Element in jedem Fall vorkommen muss. Eine Spezifikation mit xs:unique<br />
lässt dagegen offen, ob ein davon betroffenes Element vorkommt oder nicht. Für den Fall,<br />
dass das betroffene Element vorkommt – und nur für diesen Fall – legt xs:unique fest, dass<br />
es eindeutig sein muss.<br />
Im Grundmodul gibt es eine xs:unique-Spezifikation:<br />
(a) Rollenbezeichnung und laufende Nummer<br />
Die Kombination aus Rollenbezeichnung und laufender Nummer eines Beteiligten muss<br />
eindeutig sein. Das heißt beispielsweise: Wenn es in einem Verfahren mehrere Kläger gibt,<br />
muss jedem von ihnen eine eindeutige laufende Nummer zugewiesen werden (typischerweise<br />
"Kläger 1", "Kläger 2" usw.). Gibt es in dem Verfahren nur einen Kläger, bedürfte zur<br />
Einhaltung der unique-Bedingung eigentlich keiner laufenden Nummer. Das Feld Nr ist aber<br />
als Pflichtfeld ausgestaltet, so dass im Ergebnis auch einer nur einmal vorkommenden Beteiligungsart<br />
eine Nummer zugeteilt werden muss.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 37<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 15: Eindeutigkeit der Rollenbezeichnung<br />
(b) Konsequenzen für die Erstellung der Instanzdokumente<br />
Bei der Erstellung von Instanzdokumenten müssen alle mit xs:key, xs:keyref und xs:unique<br />
definierten Regeln beachtet und eingehalten werden. Jede Software, die XJustiz-<br />
Instanzdokumente erzeugt, muss deshalb Routinen bereitstellen, die die Einhaltung dieser<br />
Regeln gewährleisten – sei es, indem Programmierwerkzeuge eingesetzt werden, die schon<br />
von Haus aus entsprechende Funktionen bieten, sei es, indem eigens solche Funktionen<br />
programmiert werden.<br />
5. Erweiterung und Einschränkung<br />
Die XML-Schema-Sprache erlaubt es, aus bereits definierten Typen durch Erweiterung oder<br />
Einschränkung neue abgeleitete Typen zu definieren. Hierzu dienen die Anweisungen<br />
xs:restriction und xs:extension.<br />
a) Erweiterung<br />
Die Anweisung xs:extension ermöglicht die Ableitung durch Erweiterung. Dabei werden<br />
neue Elemente oder Attribute zu einem bestehenden Inhaltsmodell aufgenommen. Durch<br />
xs:extension hinzugefügte Elemente werden an die Sequenz des eingeerbten Inhaltsmodells<br />
angehängt.<br />
b) Einschränkung<br />
Die Anweisung xs:restriction dient der Ableitung durch Einschränkung. Die Einschränkung<br />
kann beispielsweise darin bestehen, dass weniger Werte zugelassen werden als im Basistyp.<br />
Die Menge der durch den neuen Typ repräsentierten Werte ist mithin eine Untermenge<br />
der durch den Basistyp beschriebenen Werte.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 38<br />
In XJustiz wird xs:restriction in den Wertelisten verwendet. Dort wird durch den Einsatz der<br />
einschränkenden Facette enumeration der Datentyp xs:string eingeschränkt, indem nur die<br />
in der Aufzählung (enumeration) enthaltenen Werte für gültig erklärt werden.<br />
Beispiel: Aus dem im Grundmodul definierten Basistyp WLT_String wird in der Werteliste für<br />
das Element Familienstand ein neuer Typ WL_Familienstand definiert, der nur noch einige<br />
wenige Stringwerte als Inhalt zulässt.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 16: Definition des Typs WL_Familienstand<br />
6. Versionierung<br />
Um ein Instanzdokument zuverlässig überprüfen zu können, muss klar sein, welches XML-<br />
Schema als Maßstab heranzuziehen ist. Dies kann zu Schwierigkeiten führen, sobald es<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 39<br />
von einem Schema mehrere Versionen gibt. Um dieses Problem zu lösen, wurde den<br />
XJustiz-Schemata folgendes Versionierungskonzept zu Grunde gelegt:<br />
a) Versionierung der Schema-Dateien<br />
Jede zu XJustiz gehörige XML-Schema-Datei erhält eine eigene Versionsnummer, die in<br />
einem dafür vorgesehenen Attribut version hinterlegt wird.<br />
(1) Bestandteile der Versionsnummer<br />
In der ersten Version von XJustiz hat die Versionsnummer bei allen Schema-Dateien den<br />
Wert 1.0.0. Im Rahmen der späteren Weiterentwicklung kann die Versionierung für jede<br />
einzelne Datei separat erfolgen. Derzeit steht das Versionsattribut des Grundmoduls auf<br />
1.3.1.<br />
<br />
Abbildung 17: Angabe der Versionsnummer im Kopf jeder Schema-Datei<br />
Die drei Stellen der Versionsnummer haben folgende Bedeutung:<br />
Die erste Stelle (1.x.x) identifiziert die Haupt-Version. Sie wird nur dann heraufgesetzt,<br />
wenn das Design von XJustiz grundlegende strukturelle Änderungen oder Erweiterungen<br />
erfährt.<br />
Die zweite Stelle (x.0.x) identifiziert die Unter-Version. Diese Stelle wird heraufgesetzt,<br />
wenn Änderungen an der Datenstruktur vorgenommen werden, die das grundlegende Design<br />
unberührt lassen.<br />
Die dritte Stelle (x.x.0) ist für die Beseitigung von Fehlern und die Vornahme kleinerer<br />
Änderungen ohne Auswirkungen auf die Datenstruktur vorgesehen.<br />
(2) Angabe der Versionsnummer im Dateinamen<br />
Die ersten beiden Stellen der Versionsnummer sind zugleich Bestandteil des Dateinamens<br />
jeder XML-Schema-Datei.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 40<br />
Beispiel: Die Version 1.0.0 des Grundmoduls hat den Dateinamen<br />
xj_0000_grunddatensatz_1_0.xsd. Dieser Dateinamen wird bei Versionen mit derselben<br />
Datenstruktur (z.B. 1.0.1, 1.0.2 usw.) beibehalten. Eine spätere Version 1.1 erhält dagegen<br />
den Dateinamen xj_0000_grunddatensatz_1_1.xsd. Die derzeitige Bezeichnung lautet<br />
xj_0000_grunddatensatz_1_3.xsd.<br />
Eine Änderung des Dateinamens beim Grundmodul hat zur Folge, dass von allen Fachmodulen,<br />
die auf die neue Version zugreifen sollen, ebenfalls eine neue Version angelegt<br />
werden muss, in der die xs:include-Befehle an den neuen Dateinamen angepasst sind.<br />
(3) Verwaltung auf dem Server<br />
Alle Versionen von XJustiz sind im Internet dauerhaft unter der Adresse<br />
http://www.<strong>xjustiz</strong>.de abrufbar. Damit die Versionshistorie nachvollzogen werden kann und<br />
damit auch ältere Versionen auf Dauer zur Verfügung stehen, wird die Ablage auf dem Server<br />
wie folgt eingerichtet:<br />
Im Hauptverzeichnis ist der jeweils letzte Stand aller Unterversionen (1.0, 1.1 usw.) zu<br />
finden.<br />
Das Verzeichnis archiv enthält ergänzend ein vollständiges Archiv aller veröffentlichten<br />
Versionen einschließlich aller Fehlerbereinigungen. Für jede Unterversion (1.0, 1.1 usw.)<br />
existiert ein Verzeichnis. Dieses wiederum enthält für jede Fehlerbereinigungs-Version<br />
(1.0.0, 1.0.1, 1.0.2 usw.) ein separates Unterverzeichnis.<br />
Insgesamt ergibt sich damit folgende Ablagestruktur:<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 41<br />
Abbildung 18: Ablagestruktur auf dem öffentlich zugänglichen Server<br />
b) Wiedergabe der Versionsnummer in Instanzdokumenten<br />
In den Instanzdokumenten wird die Version der zu Grunde liegenden Schemata an mehreren<br />
Stellen und auf mehrere logischen Ebenen wiedergegeben:<br />
(1) Bezugnahme auf das Fachmodul<br />
Die wichtigste Angabe ist bereits im Kopf jedes Instanzdokuments im Attribut<br />
xsi:SchemaLocation enthalten. Wie bereits unter II.3 beschrieben, muss hier das Fachmodul<br />
angegeben werden, auf dem das Instanzdokument beruht. Über den hier angegebenen<br />
Dateinamen sind die Haupt- und die Unterversion eindeutig bestimmt, und zwar sowohl für<br />
das Fachmodul als auch für das von diesem eingebundene Grundmodul nebst Wertelisten.<br />
<br />
Abbildung 19: Verweis auf das Fachmodul im Instanzdokument<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 42<br />
(2) Versionsnummer des Elements Grunddaten<br />
In der Definition des Datentyps T_Grunddaten ist ein Attribut XJustizVersion vorgesehen, in<br />
welchem nochmals die ersten beiden Stellen der Versionsnummer angegeben werden. Ein<br />
Instanzdokument ist nur gültig, wenn es dieses Attribut aufweist und wenn dessen Inhalt mit<br />
dem in der Schema-Datei festgelegten Wert übereinstimmt.<br />
<br />
Abbildung 20: Versions-Attribut des Elements Grunddaten<br />
(3) Versionsnummer der Wertelisten<br />
Alle Datentypen, die eine abschließende Werteliste vorsehen (also alle Datentypen mit Präfix<br />
WL_, vgl. oben II.2.b)) enthalten ein zwingendes Attribut wl_version und ein optionales<br />
Attribut wl_fassung.<br />
(a) Attribut wl_version<br />
Das Attribut wl_version enthält die ersten beiden Stellen der Versionsnummer. Maßgeblich<br />
ist dabei nicht die Versionsnummer des Grundmoduls, sondern die Versionsnummer der<br />
Schema-Datei, in der die Werteliste definiert ist. Diese kann von der Versionsnummer des<br />
Grundmoduls abweichen.<br />
Jedes Instanzdokument muss dieses Attribut zwingend enthalten. Das Instanzdokument<br />
ist nur gültig, wenn der Inhalt des Attributs identisch ist mit dem in der Schema-Datei der<br />
Werteliste vorgegebenen Wert.<br />
Zivilsachen<br />
Abbildung 21: Versions- und Fassungs-Attribut in Wertelisten<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 43<br />
(b) Attribut wl_fassung<br />
Das Attribut wl_fassung enthält die dritte Stelle der Versionsnummer. Dieses Attribut ist optional.<br />
Ein Instanzdokument, das dieses Attribut nicht enthält oder hier eine Fassung angibt, die<br />
nicht existiert, wird vom XML-Parser deshalb nicht beanstandet. In der Praxis sollte dennoch<br />
stets die korrekte Ziffer angegeben werden.<br />
Die Unterscheidung zwischen wl_version und wl_fassung wurde gewählt, um bei der Verwendung<br />
von Wertelisten ein Restmaß an Flexibilität zu bewahren. Würde die Versionsnummer<br />
bis zur letzten Stelle fest vorgegeben, hieße dies, dass jede Ergänzung einer Werteliste<br />
– zum Beispiel das Einfügen eines neuen Staatennamens in die Werteliste für Staaten<br />
– alle Fachmodule, die auf diese Werteliste Bezug nehmen, ebenfalls angepasst werden<br />
müssten. Der hier gewählte Ansatz ermöglicht es dagegen, solche Einfügungen vorzunehmen,<br />
ohne dass eine neue XJustiz-(Unter-)Version erstellt werden muss, und dennoch<br />
stets die Information zu haben, welche Fassung einer Werteliste dem Instanzdokument zu<br />
Grunde liegt.<br />
7. Parser<br />
Zur Prüfung, ob ein Instanzdokument den Regeln des zugehörigen XML-Schemas entspricht,<br />
wird ein so genannter Parser eingesetzt. Solche Parser sind Standard-Produkte und<br />
werden von verschiedenen Herstellern am Markt angeboten. Bei der Entwicklung von<br />
XJustiz wurde hierzu mit unter das Produkt XML Spy, Version 2004 release 2 bzw. XML<br />
Spy Version <strong>2005</strong> rel. 3 eingesetzt.<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc
XJustiz Version 1.3 Technische Dokumentation 44<br />
IV. Abbildungsverzeichnis:<br />
Abbildung 1a: Aufbau des Elements T_Grunddaten.............................................................. 8<br />
Abbildung 2b: Aufbau des Elements XDOMEA ..................................................................... 9<br />
Abbildung 3: Datentypen im Grundmodul............................................................................ 10<br />
Abbildung 4: Einbindung des Grundmoduls und der Wertelisten......................................... 13<br />
Abbildung 5: Aufbau des Basis-Fachmoduls ....................................................................... 14<br />
Abbildung 6: Aufbau des Fachmoduls Familie..................................................................... 15<br />
Abbildung 7: Definition des Datentyps T_Geldbetrag.......................................................... 24<br />
Abbildung 8: Verschachtelung der Elemente....................................................................... 25<br />
Abbildung 9: Übermittlung eines Leerstrings in einem Pflichtfeld ........................................ <strong>27</strong><br />
Abbildung 10: Schlüssel für Beteiligtennummer .................................................................. 30<br />
Abbildung 11: Schlüssel für Rollennummer......................................................................... 30<br />
Abbildung <strong>12</strong>: Schlüssel für Gerichte und Staatsanwaltschaften......................................... 31<br />
Abbildung 13: Fremdschlüsselbedingung für Teilnehmer (bis Version 1.2)......................... 32<br />
Abbildung 14: Fremdschlüsselbedingung für die Absender- und Empfängerangabe .......... 36<br />
Abbildung 15: Eindeutigkeit der Rollenbezeichnung............................................................ 37<br />
Abbildung 16: Definition des Typs WL_Familienstand......................................................... 38<br />
Abbildung 17: Angabe der Versionsnummer im Kopf jeder Schema-Datei ......................... 39<br />
Abbildung 18: Ablagestruktur auf dem öffentlich zugänglichen Server................................ 41<br />
Abbildung 19: Verweis auf das Fachmodul im Instanzdokument......................................... 41<br />
Abbildung 20: Versions-Attribut des Elements Grunddaten................................................. 42<br />
Abbildung 21: Versions- und Fassungs-Attribut in Wertelisten............................................ 42<br />
doku/<strong>xjustiz</strong>_<strong>techdok</strong>_<strong>2005</strong>-<strong>12</strong>-<strong>27</strong>_v131.doc