10.05.2014 Aufrufe

xjustiz_techdok_2005-12-27_v131.pdf - OSCI

xjustiz_techdok_2005-12-27_v131.pdf - OSCI

xjustiz_techdok_2005-12-27_v131.pdf - OSCI

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!