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 #
| Eigenschaft | Wert |
|---|---|
| Namespace | https://prexfo.org/schema/v1 |
| Version | 1.0.0 |
| Encoding | UTF-8 |
| Validierung | XSD 1.0 |
| Lizenz | Apache 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 #
- Namenskonventionen —
UpperCamelCasefür Elemente und Attribute; Typdefinitionen tragen das SuffixType(z. B.AddressType), damit sie klar von Elementen zu unterscheiden sind. - Wiederverwendbarkeit — häufige Strukturen wie Adresse, Bankverbindung oder
Vertragsdetails sind als
complexTypeeinmal 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.