B2Base

Bürokratie vereinfachen durch Standards

Benutzer-Werkzeuge

Webseiten-Werkzeuge


schemes:person:identificationdocuments

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
schemes:person:identificationdocuments [2025/05/22 12:53] lars_gerulatschemes:person:identificationdocuments [2026/09/08 14:34] (aktuell) – B2Base-Schemaentwurf: internationale Datenmodelle, Beispiele und Erläuterungen 0.0.0.0
Zeile 1: Zeile 1:
-====== identificationdocuments ====== +====== Ausweisdokumente ======
-===== description ===== +
-Das Schema **[[schemes:person|person]]:identificationdocuments** definiert:+
  
-documents – Eine Liste von Identifikationsdokumenten einer PersonJedes Dokument enthält:+<WRAP b2hero> 
 +**B2Base · 1.0.0-draft.1 · Projektentwurf**
  
-  * type+Dokumentnummern, Aussteller, Gültigkeitsangaben und mehrsprachige Erläuterungen.
  
-      * valueArt des Dokuments (z. B. "passport", "idCard", "residencePermit").+[[schemes:scheme|Bibliothek]] · [[schemes:person|Personen]] · [[schemes:principles|Internationale Grundregeln]] 
 +</WRAP>
  
-scheme: URI eines kontrollierten Vokabulars (z. B. "b2:documenttypes").+===== Direkt verwenden =====
  
-language: Sprache der Bezeichnung (z. B"en", "de").+[[b2schema>1.0.0-draft.1/person/identificationdocuments.schema.json|Austauschschema (JSON)]] · [[b2schema>1.0.0-draft.1/person/identificationdocuments.editor.schema.json|Schema für den Designer]] · [[b2schema>1.0.0-draft.1/person/identificationdocuments.examples.json|Beispieldaten]]
  
-numberOffizielle Dokumentennummer.+**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]]
  
-issuer+===== Felder im Überblick =====
  
-authority: Ausstellende Behörde (z. B"Stadt Köln").+^ Feld ^ Typ ^ Pflicht im Modul ^ Bedeutung ^ 
 +| ''documents'' | array | Ja | Vorliegende Ausweisdokumente
 +| ''extensions'' | object | Nein | Vereinbarte Erweiterungen; Schlüssel als absolute URI des HerausgebersKeine stillschweigende Änderung von Kernfeldern|
  
-country: Länderkürzel nach ISO 3166-1 Alpha-2 (z. B"DE").+Pflichtangaben gelten für das jeweilige Objekt, wenn dieses Modul verwendet wirdZusätzliche Alternativen und Statusregeln stehen im AustauschschemaOptionale Felder weglassen, wenn sie unbekannt oder nicht anwendbar sind; ein leeres Pflichtfeld ist kein gültiger Ersatz.
  
-region: Optional, z. B. Bundesland oder Verwaltungseinheit.+===== International richtig einsetzen =====
  
-issueDate: Ausstellungsdatum im ISO-8601-Format (YYYY-MM-DD).+  * BCP-47-Sprachtags ersetzen die Beschränkung auf zwei Buchstaben und einen Ländersuffix. 
 +  * Internationale Aussteller benötigen nicht zwingend einen ISO-Ländercode. MRZ-Länderkürzel sind ein eigenes System und dürfen nicht unverändert in ISO-Alpha-2-Felder gelangen. 
 +  * Status, Zeitfolge, MRZ-Format, Prüfziffern und Echtheit benötigen gesonderte fachliche Prüfungen. Die Beispieldaten sind synthetisch und kein Musterausweis.
  
-expiryDate: Ablaufdatum im ISO-8601-Format (YYYY-MM-DD).+===== Gültige Beispiele =====
  
-validityStatus+Alle Beispiele sind synthetisch. Sie werden mit dem mitgelieferten Schema geprüft; daraus folgt keine fachliche Echtheit oder externe Erreichbarkeit.
  
-value: Gültigkeitsstatus (z. B. "valid", "expired", "revoked").+==== Beispiel 1 ====
  
-scheme: URI des verwendeten Status-Vokabulars. +<file json example-1.json>
- +
-machineReadableZone +
- +
-lines: Optional, ein- bis dreizeilige maschinenlesbare Zone (z. B. MRZ aus Reisepässen). +
- +
-notes +
- +
-language: Sprache des Hinweises (z. B. "de"). +
- +
-text: Freitextlicher Hinweis zum Dokument. +
- +
-linkedBiometrics +
- +
-type: Typ des biometrischen Merkmals (z. B. "face", "fingerprint"). +
- +
-reference: URI oder ID zur Referenz auf das Merkmal. +
- +
-translations +
- +
-language: Sprache der Übersetzung (z. B. "fr"). +
- +
-authorityTranslated: Übersetzung der ausstellenden Behörde. +
- +
-typeTranslated: Übersetzung des Dokumenttyps. +
-===== examples ===== +
-==== json-notation ==== +
-<code>+
 { {
   "documents": [   "documents": [
Zeile 64: Zeile 41:
       "type": {       "type": {
         "value": "passport",         "value": "passport",
-        "scheme": "b2:documenttypes", +        "scheme": "https://example.org/vocab/document-types/v1"
-        "language": "en"+
       },       },
-      "number": "C01X0006H",+      "number": "EXAMPLE-00042",
       "issuer": {       "issuer": {
-        "authority": "Stadt Köln", +        "authority": "Example Issuing Authority", 
-        "country": "DE"+        "country": "CA"
-        "region": "NW" +
-      }, +
-      "issueDate": "2017-03-01", +
-      "expiryDate": "2027-02-28", +
-      "validityStatus":+
-        "value": "valid", +
-        "scheme": "b2:validitystatuses" +
-      }, +
-      "machineReadableZone":+
-        "lines":+
-          "P<DEUDOE<<JOHN<<<<<<<<<<<<<<<<<<<<<<<<<<<", +
-          "C01X0006HDEU8007257M2702286<<<<<<<<<<<<<<02" +
-        ]+
       },       },
-      "notes": [ 
-        { 
-          "language": "de", 
-          "text": "Nur gültig für berufliche Reisen" 
-        } 
-      ], 
-      "linkedBiometrics": [ 
-        { 
-          "type": "face", 
-          "reference": "urn:b2base:biometric:face:1234567890" 
-        } 
-      ], 
       "translations": [       "translations": [
         {         {
-          "language": "fr", +          "language": "zh-Hant", 
-          "authorityTranslated": "Ville de Cologne", +          "typeTranslated": "護照"
-          "typeTranslated": "passeport"+
         }         }
       ]       ]
Zeile 107: Zeile 57:
   ]   ]
 } }
-</code> +</file>
-==== array-notation ==== +
-<code> +
-$person['identificationdocuments']['documents'][0]['type']['value'] = "passport"; +
-$person['identificationdocuments']['documents'][0]['type']['scheme'] = "b2:documenttypes"; +
-$person['identificationdocuments']['documents'][0]['type']['language'] = "en";+
  
-$person['identificationdocuments']['documents'][0]['number'"C01X0006H";+===== Umstellung aus dem bisherigen Wiki =====
  
-$person['identificationdocuments']['documents'][0]['issuer']['authority'] = "Stadt Köln"; +Die bisherigen Hauptfelder bleiben. type.scheme und validityStatus.scheme sind jetzt für eine eindeutige Bedeutung erforderlichissueDate und issuer.country nicht mehr pauschal. MRZ-Beispiele mit ungesicherter Prüfziffer wurden entfernt.
-$person['identificationdocuments']['documents'][0]['issuer']['country'] = "DE"; +
-$person['identificationdocuments']['documents'][0]['issuer']['region'] = "NW";+
  
-$person['identificationdocuments']['documents'][0]['issueDate'] = "2017-03-01"; +[[schemes:migration|Änderungsübersicht und Migrationsregeln]]
-$person['identificationdocuments']['documents'][0]['expiryDate'= "2027-02-28";+
  
-$person['identificationdocuments']['documents'][0]['validityStatus']['value'"valid"; +===== Vollständiges Schema =====
-$person['identificationdocuments']['documents'][0]['validityStatus']['scheme'"b2:validitystatuses";+
  
-$person['identificationdocuments']['documents'][0]['machineReadableZone']['lines'][0] = "P<DEUDOE<<JOHN<<<<<<<<<<<<<<<<<<<<<<<<<<<"; +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 Servereine Veröffentlichung unter der kanonischen Domain ist damit nicht behauptet.
-$person['identificationdocuments']['documents'][0]['machineReadableZone']['lines'][1] = "C01X0006HDEU8007257M2702286<<<<<<<<<<<<<<02";+
  
-$person['identificationdocuments']['documents'][0]['notes'][0]['language'] = "de"; +<file json identificationdocuments.schema.json>
-$person['identificationdocuments']['documents'][0]['notes'][0]['text'] = "Nur gültig für berufliche Reisen"; +
- +
-$person['identificationdocuments']['documents'][0]['linkedBiometrics'][0]['type'] = "face"; +
-$person['identificationdocuments']['documents'][0]['linkedBiometrics'][0]['reference'] = "urn:b2base:biometric:face:1234567890"; +
- +
-$person['identificationdocuments']['documents'][0]['translations'][0]['language'] = "fr"; +
-$person['identificationdocuments']['documents'][0]['translations'][0]['authorityTranslated'] = "Ville de Cologne"; +
-$person['identificationdocuments']['documents'][0]['translations'][0]['typeTranslated'] = "passeport"; +
-</code> +
- +
-===== schema ===== +
-<code>+
 { {
   "$schema": "https://json-schema.org/draft/2020-12/schema",   "$schema": "https://json-schema.org/draft/2020-12/schema",
-  "$id": "https://b2base.eu/schema/person/identificationdocuments.json", +  "$id": "https://b2base.eu/schemas/1.0.0-draft.1/person/identificationdocuments.schema.json", 
-  "title": "Identification Documents", +  "title": "Ausweisdokumente", 
-  "description": "Standardisiertesinternationales Schema für Identifikationsdokumente von Personen",+  "$comment": "B2Base 1.0.0-draft.1. Projektentwurfkein durch ISO oder andere Normungsgremien verabschiedeter Standard.",
   "type": "object",   "type": "object",
 +  "description": "Ausweisdokumente einer Person.",
   "properties": {   "properties": {
     "documents": {     "documents": {
       "type": "array",       "type": "array",
 +      "description": "Vorliegende Ausweisdokumente.",
       "items": {       "items": {
-        "type": "object", +        "$ref": "#/$defs/IdentityDocument" 
-        "properties":+      }, 
-          "type": { +      "minItems":
-            "type": "object", +    }, 
-            "properties":+    "extensions":
-              "value": { "type": "string" }, +      "type": "object", 
-              "scheme": { "type": "string", "format": "uri" }, +      "description": "Vereinbarte Erweiterungen; Schlüssel als absolute URI des Herausgebers. Keine stillschweigende Änderung von Kernfeldern.", 
-              "language": { "type": "string", "pattern": "^[a-z]{2}(-[A-Z]{2})?$" } +      "properties": {}, 
-            }, +      "additionalProperties": true, 
-            "required": ["value"] +      "propertyNames": { 
-          }, +        "format": "uri" 
-          "number": { +      } 
-            "type": "string", +    } 
-            "description": "Die offizielle Dokumentennummer"+  }, 
 +  "required":
 +    "documents" 
 +  ], 
 +  "additionalProperties": false, 
 +  "$defs":
 +    "IdentityDocument":
 +      "type": "object", 
 +      "description": "Ein Ausweisdokument; fachliche Dokumentarten kommen aus einem benannten Vokabular.", 
 +      "properties":
 +        "type": { 
 +          "$ref": "#/$defs/CodedValue" 
 +        }, 
 +        "number":
 +          "type": "string"
 +          "minLength": 1, 
 +          "description": "Offizielle Dokumentnummer in Originalschreibweise." 
 +        }, 
 +        "issuer": { 
 +          "$ref": "#/$defs/Issuer" 
 +        }, 
 +        "issueDate":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Bekanntes Ausstellungsdatum.", 
 +          "format": "date" 
 +        }, 
 +        "expiryDate": { 
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Ablaufdatum, falls vorhanden; unbefristete Dokumente brauchen kein erfundenes Datum.", 
 +          "format": "date" 
 +        }
 +        "validityStatus": { 
 +          "$ref": "#/$defs/CodedValue", 
 +          "description": "Statusbehauptung aus benanntem System; keine automatische Verifikation." 
 +        }, 
 +        "statusCheckedAt": 
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Zeitpunkt der Statusprüfung, falls tatsächlich erfolgt.", 
 +          "format": "date-time" 
 +        }, 
 +        "machineReadableZone": { 
 +          "type": "object", 
 +          "description": "Originalzeilen einer MRZ. Aufbau und Prüfziffern benötigen das konkrete Dokumentprofil.", 
 +          "properties": { 
 +            "lines":
 +              "type": "array", 
 +              "description": "MRZ-Zeilen unverändert und ohne Zeilenumbrüche innerhalb der Einträge.", 
 +              "items":
 +                "type": "string", 
 +                "minLength": 1, 
 +                "description": "Eine MRZ-Zeile."
 +                "pattern": "^[A-Z0-9<]+$" 
 +              }, 
 +              "minItems": 2, 
 +              "maxItems":
 +            }
           },           },
-          "issuer": {+          "required":
 +            "lines" 
 +          ], 
 +          "additionalProperties": false 
 +        }, 
 +        "notes":
 +          "type": "array", 
 +          "description": "Sprachlich bezeichnete Hinweise.", 
 +          "items":
 +            "$ref": "#/$defs/LocalizedText" 
 +          } 
 +        }, 
 +        "linkedBiometrics":
 +          "type": "array", 
 +          "description": "Verweise auf getrennte Nachweise, keine eingebetteten Rohdaten.", 
 +          "items": {
             "type": "object",             "type": "object",
 +            "description": "Nachweisreferenz.",
             "properties": {             "properties": {
-              "authority": { "type": "string" }, +              "type": { 
-              "country": { "type": "string", "pattern": "^[A-Z]{2}$}+                "type": "string"
-              "region": "type": "string" }+                "minLength": 1, 
 +                "description": "Verfahren oder Nachweisart." 
 +              }, 
 +              "reference": { 
 +                "type": "string", 
 +                "minLength": 1, 
 +                "description": "Nachweis-URI.", 
 +                "format": "uri" 
 +              }
             },             },
-            "required": ["authority", "country"] +            "required": [ 
-          }, +              "type", 
-          "issueDate": { +              "reference
-            "type": "string"+            ]
-            "format": "date" +            "additionalProperties": false 
-          }, +          
-          "expiryDate": { +        }, 
-            "type": "string", +        "translations": { 
-            "format": "date" +          "type": "array", 
-          }+          "description": "Optionale Übersetzungen; Originale bleiben maßgeblich.", 
-          "validityStatus": {+          "items": {
             "type": "object",             "type": "object",
 +            "description": "Übersetzte Bezeichnungen.",
             "properties": {             "properties": {
-              "value": { "type": "string" }, +              "language": { 
-              "scheme": { "type": "string", "format": "uri"+                "$ref": "#/$defs/LanguageTag"
-            }, +
-            "required": ["value"+
-          }, +
-          "machineReadableZone":+
-            "type": "object", +
-            "properties":+
-              "lines": { +
-                "type": "array", +
-                "items": { "type": "string" }, +
-                "minItems": 1, +
-                "maxItems":+
-              } +
-            } +
-          }, +
-          "notes":+
-            "type": "array", +
-            "items":+
-              "type": "object", +
-              "properties":+
-                "language": { "type": "string", "pattern": "^[a-z]{2}(-[A-Z]{2})?$" }, +
-                "text": { "type": "string" }+
               },               },
-              "required": ["text"+              "authorityTranslated": { 
-            } +                "type": "string", 
-          }, +                "minLength": 1
-          "linkedBiometrics": { +                "description": "Übersetzung der Ausstellerbezeichnung."
-            "type": "array", +
-            "items":+
-              "type": "object", +
-              "properties": { +
-                "type": { "type": "string" }+
-                "reference": { "type": "string", "format": "uri}+
               },               },
-              "required": ["type", "reference"+              "typeTranslated": { 
-            } +                "type": "string", 
-          }, +                "minLength": 1
-          "translations":+                "description": "Übersetzung der Dokumentart.
-            "type": "array", +              
-            "items":+            }, 
-              "type": "object", +            "required": [ 
-              "properties": { +              "language" 
-                "language":"type": "string", "pattern": "^[a-z]{2}(-[A-Z]{2})?$" }+            ], 
-                "authorityTranslated": { "type": "string" }+            "additionalProperties": false
-                "typeTranslated": "type": "string" } +
-              }, +
-              "required": ["language"+
-            }+
           }           }
         },         },
-        "required": ["type", "number", "issuer", "issueDate"] +        "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": [ 
 +        "type", 
 +        "number", 
 +        "issuer" 
 +      ], 
 +      "additionalProperties": false 
 +    }, 
 +    "CodedValue":
 +      "type": "object", 
 +      "description": "Fachlicher Code mit benanntem Vokabular.", 
 +      "properties":
 +        "value":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Code aus dem bezeichneten Vokabular; als Text unverändert übernehmen." 
 +        }, 
 +        "scheme":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Absolute URI des Vokabulars, einschließlich einer Version, falls dessen Bedeutung veränderlich ist.", 
 +          "format": "uri" 
 +        }, 
 +        "label":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Optionale lesbare Bezeichnung." 
 +        }, 
 +        "language":
 +          "$ref": "#/$defs/LanguageTag", 
 +          "description": "Sprache der Bezeichnung, nicht Staatsangehörigkeit." 
 +        } 
 +      }, 
 +      "required":
 +        "value", 
 +        "scheme" 
 +      ], 
 +      "additionalProperties": false 
 +    }
 +    "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})*$" 
 +    }, 
 +    "Issuer":
 +      "type": "object", 
 +      "description": "Aussteller einschließlich internationaler Organisationen.", 
 +      "properties":
 +        "authority":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Originalname der Behörde oder Organisation." 
 +        }, 
 +        "id":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Stabile Kennung des Ausstellers.", 
 +          "format": "uri" 
 +        }, 
 +        "country":
 +          "$ref": "#/$defs/CountryCode", 
 +          "description": "Optional: Land des Ausstellers; keine erfundene Länderkennung für internationale Organisationen." 
 +        }, 
 +        "region":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Optionale Verwaltungseinheit oder Zuständigkeitsbezeichnung." 
 +        } 
 +      }, 
 +      "required":
 +        "authority" 
 +      ], 
 +      "additionalProperties": false 
 +    }, 
 +    "CountryCode":
 +      "type": "string", 
 +      "minLength": 1, 
 +      "description": "ISO 3166-1 Alpha-2, Großbuchstaben. Das Muster prüft nur die Schreibweise; zugewiesenen Code und Gültigkeitszeitpunkt gesondert prüfen.", 
 +      "pattern": "^[A-Z]{2}$" 
 +    }, 
 +    "LocalizedText":
 +      "type": "object", 
 +      "description": "Text mit expliziter Sprache; Originalschreibweise erhalten.", 
 +      "properties":
 +        "text":
 +          "type": "string", 
 +          "minLength": 1, 
 +          "description": "Inhalt in Unicode." 
 +        }, 
 +        "language":
 +          "$ref": "#/$defs/LanguageTag" 
 +        } 
 +      }, 
 +      "required":
 +        "text", 
 +        "language" 
 +      ], 
 +      "additionalProperties": false
     }     }
   },   },
-  "required": ["documents"]+  "examples": [ 
 +    { 
 +      "documents": [ 
 +        { 
 +          "type":
 +            "value": "passport", 
 +            "scheme": "https://example.org/vocab/document-types/v1" 
 +          }, 
 +          "number": "EXAMPLE-00042", 
 +          "issuer":
 +            "authority": "Example Issuing Authority", 
 +            "country": "CA" 
 +          }, 
 +          "translations":
 +            { 
 +              "language": "zh-Hant", 
 +              "typeTranslated": "護照" 
 +            } 
 +          ] 
 +        } 
 +      ] 
 +    } 
 +  ]
 } }
-</code>+</file> 
 + 
 +===== Quellen und Abgrenzung ===== 
 + 
 +  * [[https://www.rfc-editor.org/rfc/rfc5646.html|IETF RFC 5646: BCP-47-Sprachtags]] 
 +  * [[https://www.iso.org/iso-3166-country-codes.html|ISO: ISO 3166-Ländercodes]] 
 +  * [[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]]
  
schemes/person/identificationdocuments.1747911234.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki