🌐 English version available here: README.md 👈
Dieses Dokument beschreibt die Nutzung des X.Justiz Core .NET SDKs für Softwareentwickler im deutschen Rechtswesen.
Das SDK wird als NuGet-Paket bereitgestellt. Sie können es über die Paket-Manager-Konsole oder die .NET CLI installieren:
# .NET CLI
dotnet add package xjustiz.core-dotnet
# Paket-Manager Konsole
Install-Package xjustiz.core-dotnet
Die aktuelle Version finden Sie auf nuget.org.
Das zentrale Modell für den Datenaustausch ist die Klasse UebermittlungSchriftgutobjekteNachricht. Sie bildet den standardisierten “Umschlag” für Akten und Dokumente ab.
using xjustiz.core_dotnet.Models;
var nachricht = new UebermittlungSchriftgutobjekteNachricht
{
Kopf = new Nachrichtenkopf
{
Erstellungszeitpunkt = DateTime.UtcNow,
EigeneNachrichtenId = Guid.NewGuid().ToString()
},
Grunddaten = new Grunddaten
{
// Verfahrensdaten, Beteiligte etc.
},
Schriftgutobjekte = new Schriftgutobjekte
{
// Akten und Dokumente
}
};
X.Justiz Core nutzt ein strukturiertes System von Codes (z. B. für Rollen, Gerichte, Dokumentklassen).
listVersionID.Die verfügbaren Codes finden Sie im Namespace xjustiz.core_dotnet.Models.Codes.
Das SDK ist für die Nutzung in ASP.NET Core Controllern optimiert und unterstützt sowohl XML als auch JSON.
[ApiController]
[Route("api/xjustiz")]
public class MyController : ControllerBase
{
// JSON Support (Standard in ASP.NET Core)
[HttpPost("json")]
public IActionResult ReceiveJson(UebermittlungSchriftgutobjekteNachricht nachricht)
{
// Verarbeitung...
return Ok();
}
// XML Support (erfordert .AddXmlSerializerFormatters() in Program.cs)
[HttpPost("xml")]
[Consumes("application/xml")]
public IActionResult ReceiveXml([FromBody] UebermittlungSchriftgutobjekteNachricht nachricht)
{
// Verarbeitung...
return Ok();
}
}
Ein vollständiges Beispiel finden Sie im example-api Projekt.
Das SDK unterstützt die Deserialisierung direkt aus Dateien.
var jsonString = File.ReadAllText("akte.json");
var nachricht = JsonSerializer.Deserialize<UebermittlungSchriftgutobjekteNachricht>(jsonString, new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
var serializer = new XmlSerializer(typeof(UebermittlungSchriftgutobjekteNachricht));
using var stream = File.OpenRead("akte.xml");
var nachricht = (UebermittlungSchriftgutobjekteNachricht?)serializer.Deserialize(stream);
Prüft, mit welchen X.Justiz- oder X.Justiz Core Versionen eine Instanz des Modells kompatibel ist (basierend auf verwendeten Feldern und Attributen).
using xjustiz.core_dotnet.Util.Versioning;
var compatibility = CompatibilityChecker.Check(nachricht);
Console.WriteLine($"Kompatibel mit Core: {string.Join(", ", compatibility.CompatibleXJustizCoreVersions)}");
Konvertiert Nachrichten zwischen verschiedenen Versionen von X.Justiz Core.
using xjustiz.core_dotnet.Util.Converter;
var converted = XJustizConverter.Convert(nachricht, XJustizCoreVersion.V0_1_0).Result;
Validiert XML-Dateien gegen die offiziellen XSD-Schemata von X.Justiz. Das SDK liefert die Schemata im Archiv mit.
using xjustiz.core_dotnet.Util;
var errors = await XmlValidator.ValidateAsync("pfad/zur/datei.xml", XJustizVersion.V3_5_1);
if (errors.Any()) { /* Fehlerbehandlung */ }
Erstellt X.Justiz-konforme ZIP-Archive, die sowohl die XML-Nachricht als auch die physischen Dokumentanhänge enthalten.
using xjustiz.core_dotnet.Util;
var attachments = new List<string> { "dokument1.pdf", "anhang.jpg" };
await Zipper.ArchiveToZipFileAsync(nachricht, "export.zip", attachments);
Weiterführende Beispiele finden Sie im /dotnet/example-api Ordner.