====== Dokumentmetadaten ====== **B2Base · 1.0.0-draft.1 · Projektentwurf** Dateien und Nachweise referenzieren, beschreiben und auf Integrität prüfen. [[schemes:scheme|Bibliothek]] · [[schemes:process|Aufgaben, Dokumente und Übergaben]] · [[schemes:principles|Internationale Grundregeln]] ===== Direkt verwenden ===== [[b2schema>1.0.0-draft.1/process/document.schema.json|Austauschschema (JSON)]] · [[b2schema>1.0.0-draft.1/process/document.editor.schema.json|Schema für den Designer]] · [[b2schema>1.0.0-draft.1/process/document.examples.json|Beispieldaten]] **Austauschschema:** vollständige Strukturprüfung mit JSON Schema 2020-12. **Designer-Fassung:** gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. [[:guidelines#im_workflowdesigner_verwenden|Anleitung und Grenzen]] ===== Felder im Überblick ===== ^ Feld ^ Typ ^ Pflicht im Modul ^ Bedeutung ^ | ''id'' | string | Ja | Dokumentkennung. | | ''title'' | string | Ja | Lesbarer Titel. | | ''fileName'' | string | Nein | Angezeigter Dateiname; kein freigegebener lokaler Dateipfad. | | ''mediaType'' | string | Ja | IANA-Medientyp ohne Parameter; tatsächlichen Inhalt separat prüfen. | | ''byteSize'' | integer | Nein | Dateigröße in Byte, nicht Textzeichen. | | ''contentUri'' | string | Ja | Verweis auf den Inhalt; Berechtigungen und Abruf werden gesondert geregelt. | | ''sha256'' | string | Nein | Optionaler SHA-256-Hash der tatsächlichen Dateibytes. | | ''language'' | string | Nein | BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln. | | ''createdAt'' | string | Nein | Erstellungszeitpunkt. | | ''relatedParty'' | object | Nein | Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis. | | ''extensions'' | object | Nein | Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern. | Pflichtangaben gelten für das jeweilige Objekt, wenn dieses Modul verwendet wird. Zusätzliche Alternativen und Statusregeln stehen im Austauschschema. Optionale Felder weglassen, wenn sie unbekannt oder nicht anwendbar sind; ein leeres Pflichtfeld ist kein gültiger Ersatz. ===== International richtig einsetzen ===== * Inhalt und Beschreibung sind getrennt. Ein Link ersetzt keine Zugriffskontrolle und muss nicht öffentlich sein. * Medientyp und Dateiname garantieren keinen sicheren Inhalt. Der Hash muss über die unveränderten Dateibytes berechnet werden. * Der aktuelle Workspace transportiert Dateien in einem anderen Format. Ein Adapter muss Metadaten und Inhalt gezielt zuordnen. ===== Gültige Beispiele ===== Alle Beispiele sind synthetisch. Sie werden mit dem mitgelieferten Schema geprüft; daraus folgt keine fachliche Echtheit oder externe Erreichbarkeit. ==== Beispiel 1 ==== { "id": "urn:example:document:42", "title": "Antragsunterlagen", "fileName": "申請.pdf", "mediaType": "application/pdf", "contentUri": "https://example.org/documents/42", "language": "ja" } ===== Umstellung aus dem bisherigen Wiki ===== Neuer Standard für Dokumentmetadaten; bestehende Dokumentdaten im Workspace werden dadurch nicht automatisch migriert. [[schemes:migration|Änderungsübersicht und Migrationsregeln]] ===== Vollständiges Schema ===== Die Datei ist eigenständig: verwendete Bausteine sind unter ''$defs'' eingebettet, Referenzen bleiben lokal. ''$id'' ist die kanonische Kennung. Die Downloads oben verwenden den aktuellen Server; eine Veröffentlichung unter der kanonischen Domain ist damit nicht behauptet. { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://b2base.eu/schemas/1.0.0-draft.1/process/document.schema.json", "title": "Dokumentmetadaten", "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.", "type": "object", "description": "Beschreibung eines separat gespeicherten Dokuments.", "properties": { "id": { "type": "string", "minLength": 1, "description": "Dokumentkennung.", "format": "uri" }, "title": { "type": "string", "minLength": 1, "description": "Lesbarer Titel." }, "fileName": { "type": "string", "minLength": 1, "description": "Angezeigter Dateiname; kein freigegebener lokaler Dateipfad." }, "mediaType": { "type": "string", "minLength": 1, "description": "IANA-Medientyp ohne Parameter; tatsächlichen Inhalt separat prüfen.", "pattern": "^[A-Za-z0-9!#$&^_.+-]+/[A-Za-z0-9!#$&^_.+-]+$" }, "byteSize": { "type": "integer", "description": "Dateigröße in Byte, nicht Textzeichen.", "minimum": 0, "maximum": 9007199254740991 }, "contentUri": { "type": "string", "minLength": 1, "description": "Verweis auf den Inhalt; Berechtigungen und Abruf werden gesondert geregelt.", "format": "uri" }, "sha256": { "type": "string", "minLength": 1, "description": "Optionaler SHA-256-Hash der tatsächlichen Dateibytes.", "pattern": "^[a-f0-9]{64}$" }, "language": { "$ref": "#/$defs/LanguageTag" }, "createdAt": { "type": "string", "minLength": 1, "description": "Erstellungszeitpunkt.", "format": "date-time" }, "relatedParty": { "$ref": "#/$defs/PartyRef" }, "extensions": { "type": "object", "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.", "properties": {}, "additionalProperties": true, "propertyNames": { "format": "uri" } } }, "required": [ "id", "title", "mediaType", "contentUri" ], "additionalProperties": false, "$defs": { "LanguageTag": { "type": "string", "minLength": 1, "description": "BCP-47-Sprachtag, etwa de, zh-Hant-TW, sr-Latn oder x-internal. Das Muster prüft nur die Grundform, nicht Registrierung oder alle BCP-47-Regeln.", "pattern": "^[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*$" }, "PartyRef": { "type": "object", "description": "Verweis auf eine separat gespeicherte Person oder juristische Person; kein JSON-Schema-Verweis.", "properties": { "entityType": { "type": "string", "minLength": 1, "description": "Art der referenzierten Einheit.", "enum": [ "person", "legalEntity" ] }, "id": { "type": "string", "minLength": 1, "description": "Stabile absolute URI oder URN des Datensatzes, nicht dessen Name.", "format": "uri" }, "name": { "type": "string", "minLength": 1, "description": "Optionale Anzeige; nicht als Identitätsschlüssel verwenden." } }, "required": [ "entityType", "id" ], "additionalProperties": false } }, "examples": [ { "id": "urn:example:document:42", "title": "Antragsunterlagen", "fileName": "申請.pdf", "mediaType": "application/pdf", "contentUri": "https://example.org/documents/42", "language": "ja" } ] } ===== Quellen und Abgrenzung ===== * [[https://www.iana.org/assignments/media-types|IANA: Media Types]] * [[https://www.rfc-editor.org/rfc/rfc3339.html|IETF RFC 3339: Datum und Zeitstempel]] Quellen geprüft am 8. September 2026. Die B2Base-Felder und ihre Kombination sind ein eigener Entwurf. Code-Register, nationale Regeln, Echtheit, Zeitfolgen und Referenzziele benötigen die im jeweiligen Verfahren vereinbarten Zusatzprüfungen. [[schemes:scheme|Zur Bibliothek]] · [[:guidelines|Integration]] · [[:faq|Häufige Fragen]]