Inhaltsverzeichnis

Kontaktmöglichkeiten

B2Base · 1.0.0-draft.1 · Projektentwurf

E-Mail, Telefonnummern und Webkontakte ohne ein weltweit vorgeschriebenes Kontaktmittel.

Bibliothek · Personen · Internationale Grundregeln

Direkt verwenden

Austauschschema (JSON) · Schema für den Designer · Beispieldaten

Austauschschema: vollständige Strukturprüfung mit JSON Schema 2020-12. Designer-Fassung: gleiche Datenfelder mit reduzierten Strukturregeln zur Feldübernahme. Anleitung und Grenzen

Felder im Überblick

Feld Typ Pflicht im Modul Bedeutung
emails array Nein E-Mail-Adressen; Unicode ist zulässig.
phoneNumbers array Nein Internationale Telefonnummern.
socialMedia array Nein Weitere Plattformkontakte.
websites array Nein Webseiten.
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

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

example-1.json
{
  "phoneNumbers": [
    {
      "type": "work",
      "number": "+442079460958",
      "extension": "42"
    }
  ]
}

Beispiel 2

example-2.json
{
  "emails": [
    {
      "address": "δοκιμή@παράδειγμα.δοκιμή"
    }
  ],
  "websites": [
    {
      "url": "https://例え.テスト/"
    }
  ]
}

Umstellung aus dem bisherigen Wiki

Breaking Change: countryCode und areaCode werden nicht mehr als Telefonpflichtfelder geführt. number enthält jetzt die vollständige E.164-Nummer. Altdaten mit Landeskontext normalisieren und displayNumber zur Erhaltung der Originaldarstellung nutzen.

Ä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.

contactdetails.schema.json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://b2base.eu/schemas/1.0.0-draft.1/person/contactdetails.schema.json",
  "title": "Kontaktmöglichkeiten",
  "$comment": "B2Base 1.0.0-draft.1. Projektentwurf, kein durch ISO oder andere Normungsgremien verabschiedeter Standard.",
  "type": "object",
  "description": "Mindestens ein bekannter Kontaktkanal.",
  "properties": {
    "emails": {
      "type": "array",
      "description": "E-Mail-Adressen; Unicode ist zulässig.",
      "items": {
        "type": "object",
        "description": "Ein E-Mail-Kontakt.",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Verwendungszweck."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "Internationale E-Mail-Adresse; Zustellbarkeit und SMTPUTF8-Unterstützung separat prüfen.",
            "format": "idn-email"
          },
          "language": {
            "$ref": "#/$defs/LanguageTag"
          }
        },
        "required": [
          "address"
        ],
        "additionalProperties": false
      },
      "minItems": 1
    },
    "phoneNumbers": {
      "type": "array",
      "description": "Internationale Telefonnummern.",
      "items": {
        "type": "object",
        "description": "Eine vollständig normalisierte Rufnummer ohne Durchwahl.",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Verwendungszweck."
          },
          "number": {
            "type": "string",
            "minLength": 1,
            "description": "Pluszeichen und höchstens 15 Ziffern nach E.164; keine Aussage über tatsächliche Vergabe.",
            "pattern": "^\\+[1-9][0-9]{1,14}$"
          },
          "extension": {
            "type": "string",
            "minLength": 1,
            "description": "Durchwahl separat; kein Bestandteil der E.164-Rufnummer."
          },
          "displayNumber": {
            "type": "string",
            "minLength": 1,
            "description": "Optionale ursprüngliche Schreibweise."
          }
        },
        "required": [
          "number"
        ],
        "additionalProperties": false
      },
      "minItems": 1
    },
    "socialMedia": {
      "type": "array",
      "description": "Weitere Plattformkontakte.",
      "items": {
        "type": "object",
        "description": "Plattform und Kennung.",
        "properties": {
          "platform": {
            "type": "string",
            "minLength": 1,
            "description": "Plattform."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Unveränderter Benutzername."
          },
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "Optionaler Profil-Link.",
            "format": "uri"
          }
        },
        "required": [
          "platform",
          "handle"
        ],
        "additionalProperties": false
      },
      "minItems": 1
    },
    "websites": {
      "type": "array",
      "description": "Webseiten.",
      "items": {
        "type": "object",
        "description": "Eine Webseite.",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Verwendungszweck."
          },
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "Internationale Webadresse; Abruf gesondert entscheiden.",
            "format": "iri",
            "pattern": "^https?://"
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      },
      "minItems": 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"
      }
    }
  },
  "additionalProperties": false,
  "anyOf": [
    {
      "required": [
        "emails"
      ]
    },
    {
      "required": [
        "phoneNumbers"
      ]
    },
    {
      "required": [
        "socialMedia"
      ]
    },
    {
      "required": [
        "websites"
      ]
    }
  ],
  "$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})*$"
    }
  },
  "examples": [
    {
      "phoneNumbers": [
        {
          "type": "work",
          "number": "+442079460958",
          "extension": "42"
        }
      ]
    },
    {
      "emails": [
        {
          "address": "δοκιμή@παράδειγμα.δοκιμή"
        }
      ],
      "websites": [
        {
          "url": "https://例え.テスト/"
        }
      ]
    }
  ]
}

Quellen und Abgrenzung

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.

Zur Bibliothek · Integration · Häufige Fragen