PropertyExchangeFormat — the XML schema #

The XML schema defines the DNA of the structured data in Prexfo. It is designed for longevity, flexibility and clarity — not for completeness at any cost.

Key facts #

PropertyValue
Namespacehttps://prexfo.org/schema/v1
Version1.0.0
EncodingUTF-8
ValidationXSD 1.0
LicenseApache 2.0

Structure #

The core schema prexfo-core.xsd references reusable base types and entity schemas:

schemas/
├── prexfo-core.xsd          # main schema
├── types/
│   ├── common-types.xsd     # address, contact, money, date …
│   └── identifiers.xsd      # ID and anchor formats
└── entities/
    ├── person.xsd
    ├── company.xsd
    ├── property.xsd
    ├── building.xsd
    └── unit.xsd

Design principles #

  • Naming conventionsUpperCamelCase for elements and attributes; type definitions carry the suffix Type (e.g. AddressType) so they are clearly distinguishable from elements.
  • Reusability — common structures such as address, bank details or contract terms are defined once as a complexType and included everywhere. This reduces redundancy and increases consistency.
  • Namespaces — each schema has a unique targetNamespace marking the origin of its elements and ruling out name clashes.

Versioning #

A clear versioning strategy is crucial for the stability of a standard. Prexfo draws a clean line:

Non-breaking changes #

New optional elements or attributes do not invalidate existing documents. The version number in the version attribute increases (e.g. 1.2 → 1.3); the targetNamespace stays the same. Smooth evolution.

Breaking changes #

Renamings or changed data types violate backward compatibility. Then the targetNamespace must change (e.g. …/v2/schema). This unmistakably signals to every system that new processing logic is required — and prevents silent errors.

Extensibility #

Prexfo supports the gradual structuring of data. At strategic points, the schema allows via

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

the embedding of custom, not-yet-standardized fields — inside an otherwise fully valid Prexfo document. This lets users store information that is not (yet) part of the official standard, without leaving the standard.

Pragmatism over perfection. Better to cover 80% of daily requirements with 100% data control than 100% of all conceivable cases with a highly complex, monolithic model. Extension points keep the door open for the rest.