{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://b2base.eu/schemas/1.0.0-draft.1/person/nameandbirthdetails.schema.json", "title": "Name und Geburt", "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.", "type": "object", "description": "Internationale Namens- und Geburtsangaben.", "properties": { "name": { "type": "object", "description": "Die vollständige Anzeige ist maßgeblich; eine Zerlegung ist optional.", "properties": { "preferredName": { "type": "string", "minLength": 1, "description": "Vollständiger, von der Person gewünschter Anzeigename; auch ein einzelner Name ist erlaubt." }, "originalScript": { "type": "string", "minLength": 1, "description": "Optionaler vollständiger Originalname, wenn preferredName eine andere Darstellung verwendet." }, "transliteratedName": { "type": "string", "minLength": 1, "description": "Optionale Umschrift; Original niemals damit überschreiben." }, "language": { "$ref": "#/$defs/LanguageTag" }, "titles": { "type": "array", "description": "Optionale Titel.", "items": { "$ref": "#/$defs/NamePart" } }, "givenNames": { "type": "array", "description": "Optionale Vornamen.", "items": { "$ref": "#/$defs/NamePart" } }, "familyNames": { "type": "array", "description": "Optionale Familiennamen.", "items": { "$ref": "#/$defs/NamePart" } }, "additions": { "type": "array", "description": "Optionale weitere Bestandteile.", "items": { "$ref": "#/$defs/NamePart" } } }, "required": [ "preferredName" ], "additionalProperties": false }, "birthDate": { "type": "string", "minLength": 1, "description": "Vollständig bekanntes Geburtsdatum im gregorianischen Kalender: YYYY-MM-DD.", "format": "date" }, "birthDatePartial": { "type": "string", "minLength": 1, "description": "Nur bekanntes Jahr oder Jahr und Monat. Keinen unbekannten Tag erfinden.", "pattern": "^[0-9]{4}(-(0[1-9]|1[0-2]))?$" }, "birthDateOriginal": { "type": "string", "minLength": 1, "description": "Optionale Originalangabe einschließlich abweichenden Kalenders; nicht automatisch als gregorianisch auswerten." }, "birthPlace": { "type": "object", "description": "Bekannte Geburtsortangaben; historische Bezeichnungen bleiben möglich.", "properties": { "city": { "type": "string", "minLength": 1, "description": "Ort." }, "district": { "type": "string", "minLength": 1, "description": "Ortsteil." }, "stateOrRegion": { "type": "string", "minLength": 1, "description": "Region." }, "province": { "type": "string", "minLength": 1, "description": "Weitere Verwaltungsebene." }, "country": { "$ref": "#/$defs/CountryCode" }, "historicalCountryName": { "type": "string", "minLength": 1, "description": "Historische Bezeichnung ohne erfundenen aktuellen Ländercode." } }, "additionalProperties": false, "minProperties": 1 }, "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": [ "name" ], "additionalProperties": false, "not": { "required": [ "birthDate", "birthDatePartial" ] }, "$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})*$" }, "NamePart": { "type": "object", "description": "Optionaler Namensbestandteil; keine zwingende westliche Aufteilung.", "properties": { "value": { "type": "string", "minLength": 1, "description": "Originalschreibweise des Bestandteils." }, "position": { "type": "integer", "description": "Optionale Position über alle Bestandteile hinweg, beginnend bei 0. Mehrfachvergabe gesondert prüfen.", "minimum": 0 } }, "required": [ "value" ], "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}$" } }, "examples": [ { "name": { "preferredName": "Sukarno" }, "birthDatePartial": "1984" }, { "name": { "preferredName": "張偉", "language": "zh-Hant-TW", "transliteratedName": "Zhang Wei" }, "birthDate": "1990-05-10" } ] }