PropertyExchangeFormat — das XML-Schema #

Das XML-Schema definiert die DNA der strukturierten Daten in Prexfo. Es ist auf Langlebigkeit, Flexibilität und Klarheit ausgelegt — nicht auf Vollständigkeit um jeden Preis.

Eckdaten #

EigenschaftWert
Namespacehttps://prexfo.org/schema/v1
Version1.0.0
EncodingUTF-8
ValidierungXSD 1.0
LizenzApache 2.0

Aufbau #

Das Kernschema prexfo-core.xsd verweist auf wiederverwendbare Basistypen und Entitäts-Schemas:

schemas/
├── prexfo-core.xsd          # Haupt-Schema
├── types/
│   ├── common-types.xsd     # Adresse, Kontakt, Geld, Datum …
│   └── identifiers.xsd      # ID- und Anker-Formate
└── entities/
    ├── person.xsd
    ├── company.xsd
    ├── property.xsd         # Liegenschaft
    ├── building.xsd         # Gebäude
    └── unit.xsd             # Einheit

Designprinzipien #

  • NamenskonventionenUpperCamelCase für Elemente und Attribute; Typdefinitionen tragen das Suffix Type (z. B. AddressType), damit sie klar von Elementen zu unterscheiden sind.
  • Wiederverwendbarkeit — häufige Strukturen wie Adresse, Bankverbindung oder Vertragsdetails sind als complexType einmal definiert und werden überall eingebunden. Das reduziert Redundanz und erhöht die Konsistenz.
  • Namespaces — jedes Schema hat einen eindeutigen targetNamespace, der die Herkunft der Elemente kennzeichnet und Namenskonflikte ausschließt.

Versionierung #

Eine klare Versionierungsstrategie ist entscheidend für die Stabilität eines Standards. Prexfo unterscheidet sauber:

Nicht-brechende Änderungen #

Neue optionale Elemente oder Attribute machen bestehende Dokumente nicht ungültig. Die Versionsnummer im version-Attribut steigt (z. B. 1.2 → 1.3), der targetNamespace bleibt gleich. Reibungslose Weiterentwicklung.

Brechende Änderungen #

Umbenennungen oder geänderte Datentypen verletzen die Abwärtskompatibilität. Dann muss der targetNamespace wechseln (z. B. …/v2/schema). Das signalisiert jedem System unmissverständlich, dass neue Verarbeitungslogik nötig ist — und verhindert stille Fehler.

Erweiterbarkeit #

Prexfo unterstützt das schrittweise Strukturieren von Daten. An strategischen Stellen erlaubt das Schema über

<xs:any namespace="##other" processContents="lax"/>

das Einbetten benutzerdefinierter, noch nicht standardisierter Felder — in einem ansonsten voll validen Prexfo-Dokument. So können Anwender Informationen ablegen, die (noch) nicht Teil des offiziellen Standards sind, ohne den Standard zu verlassen.

Pragmatismus vor Perfektion. Lieber 80 % der täglichen Anforderungen mit 100 % Datenkontrolle abdecken, als 100 % aller denkbaren Fälle mit einem hochkomplexen, monolithischen Modell. Erweiterungspunkte halten den Weg für den Rest offen.