Mehr zu: publixx

PXF - Publixx Exchange Format

PXF Format – Das offene Austauschformat von Publixx

Version 2.3 | Stand: Januar 2026 | incoxx GmbH


Warum PXF?

PXF (Publixx Exchange Format) löst ein fundamentales Problem: Wie teilt man komplette Publikationen, ohne Abhängigkeiten zu schaffen?

Andere Systeme exportieren proprietäre Binärdateien, die nur mit derselben Software geöffnet werden können. PXF ist anders: Es ist offenes JSON – lesbar mit jedem Texteditor, versionierbar mit Git, analysierbar mit Standard-Tools.

Praktischer Nutzen:


Offenes JSON – Nichts versteckt

PXF-Dateien sind reines JSON. Kein proprietäres Binärformat, keine versteckten Strukturen. Sie können jede PXF-Datei öffnen und lesen:

{
  "version": "2.3.0",
  "created": "2025-01-07T14:30:00.000Z",
  "generator": "Publixx v1.4",
  
  "template": { ... },
  "datasets": [ ... ],
  "metadata": { ... },
  "config": { ... }
}

Was bedeutet "offen"?


Die drei Säulen: Template, Daten, Metadaten

Eine PXF-Datei besteht aus drei logisch getrennten Bereichen:

1. Template – Das Layout

Das Template definiert WIE Inhalte dargestellt werden:

"template": {
  "name": "Produktdatenblatt A4",
  "width": 2480,
  "height": 3508,
  "backgroundColor": "#ffffff",
  "elements": [
    {
      "id": "titel_001",
      "type": "text",
      "x": 100, "y": 80,
      "width": 600, "height": 50,
      "bind": "produktname",
      "fontSize": 36,
      "fontFamily": "Arial",
      "color": "#1a1a1a"
    },
    {
      "id": "bild_001",
      "type": "image",
      "x": 100, "y": 150,
      "width": 400, "height": 400,
      "bind": "produktbild"
    }
  ]
}

Enthält: Position, Größe, Styling, Bindings zu Datenfeldern

2. Datasets – Die Inhalte

Die Datasets enthalten WAS dargestellt wird:

"datasets": [
  {
    "produktname": "Hydraulikpumpe X200",
    "produktbild": "https://cdn.example.com/pumpe-x200.jpg",
    "preis": "1.299,00 €",
    "technische_daten": [
      { "label": "Leistung", "value": "2,5 kW" },
      { "label": "Druck", "value": "350 bar" }
    ]
  },
  {
    "produktname": "Hydraulikpumpe X300",
    "produktbild": "https://cdn.example.com/pumpe-x300.jpg",
    "preis": "1.799,00 €"
  }
]

Enthält: Texte, Bild-URLs, Tabellen, Listen – alle variablen Inhalte

3. Metadata & Config – Der Kontext

Metadaten beschreiben WOHER und WOFÜR:

"metadata": {
  "author": "Max Mustermann",
  "company": "ACME Industries",
  "tags": ["hydraulik", "pumpen", "industrie"],
  "language": "de",
  "exportDate": "2025-01-07"
},
"config": {
  "assetBase": "https://cdn.example.com/",
  "defaultFontFamily": "Arial",
  "testMode": false,
  "brandKit": { "name": "Corporate 2025", ... }
}

Enthält: Autor, Erstellungsdatum, Branding-Einstellungen, Asset-Pfade


zPXF – Mit eingebetteten Bildern

Das Problem: PXF referenziert Bilder per URL. Wenn die URL offline geht, fehlt das Bild.

Die Lösung: zPXF packt alles in ein ZIP-Archiv.

Struktur einer zPXF-Datei

kampagne-winter-2025.zpxf
│
├── manifest.json          ← Template + Daten + Metadata
│
└── assets/                ← Alle Bilder eingebettet
    ├── img_0001.jpg
    ├── img_0002.png
    └── img_0003.webp

Automatische URL-Konvertierung

Beim Export: URLs werden zu lokalen Pfaden

// Vorher (PXF)
"produktbild": "https://cdn.example.com/pumpe.jpg"

// Nachher (zPXF)
"produktbild": "assets/img_0001.jpg",
"_original_produktbild": "https://cdn.example.com/pumpe.jpg"

Beim Import: Lokale Pfade werden zu Blob-URLs

"produktbild": "blob:http://localhost/abc123-def456"

Die Original-URL bleibt als _original_* erhalten – für späteren Abgleich oder Re-Synchronisation.

Wann PXF, wann zPXF?

Anwendung Format Grund
Git-Versionierung PXF Kompakt, Diff-fähig
Schneller Austausch PXF Kleine Dateigröße
Offline-Präsentation zPXF Keine URL-Abhängigkeiten
Langzeit-Archivierung zPXF Vollständig autark
Händler-Distribution zPXF Funktioniert ohne Internet
API-Integration PXF JSON direkt nutzbar

Verschlüsselung – Enterprise-Grade Security

PXF unterstützt AES-256-GCM Verschlüsselung – derselbe Standard, den Banken und Regierungen verwenden.

Verschlüsselungsmodi

1. Unverschlüsselt (.pxf / .zpxf)

2. Lizenz-Key Verschlüsselung

3. Custom-Key Verschlüsselung (.pxf.enc / .zpxf.enc)

Technische Details

Algorithmus:      AES-256-GCM (Galois/Counter Mode)
Key-Derivation:   PBKDF2 mit 100.000 Iterationen
Hash:             SHA-256
Salt:             Fixed (Kompatibilität) + Random IV
Authentifizierung: Integriert (GCM-Tag)

Warum AES-256-GCM?

Verschlüsselungs-Scope (ab v2.1)

Manifest-Only (Legacy): Nur die JSON-Daten sind verschlüsselt, Bilder im Klartext.

Full (Enterprise): Manifest UND alle Assets verschlüsselt – maximaler Schutz.

{
  "encrypted": true,
  "encryptionScope": "full",
  "encryptionVersion": "1.1"
}

Dateiendungen im Überblick

Endung Format Verschlüsselung Bilder
.pxf JSON Nein URLs (extern)
.pxf.enc JSON AES-256-GCM URLs (extern)
.zpxf ZIP Nein Eingebettet
.zpxf.enc ZIP AES-256-GCM Eingebettet + verschlüsselt

Praxisbeispiel: Vollständige PXF-Datei

{
  "version": "2.3.0",
  "created": "2025-01-07T10:30:00.000Z",
  "generator": "Publixx v1.4.2",
  
  "template": {
    "name": "Produktdatenblatt",
    "width": 2480,
    "height": 3508,
    "unit": "px",
    "backgroundColor": "#ffffff",
    "pages": 1,
    "elements": [
      {
        "id": "elem_title",
        "type": "text",
        "x": 120, "y": 100,
        "width": 800, "height": 60,
        "bind": "title",
        "fontSize": 48,
        "fontFamily": "Arial Black",
        "fontWeight": "bold",
        "color": "#1a1a1a",
        "textAlign": "left"
      },
      {
        "id": "elem_image",
        "type": "image",
        "x": 120, "y": 200,
        "width": 600, "height": 600,
        "bind": "mainImage",
        "objectFit": "contain"
      },
      {
        "id": "elem_specs",
        "type": "table",
        "x": 800, "y": 200,
        "width": 500, "height": 400,
        "bind": "specifications"
      }
    ]
  },
  
  "datasets": [
    {
      "title": "Hydraulikpumpe X200",
      "mainImage": "https://assets.example.com/pumpe-x200.jpg",
      "specifications": [
        { "label": "Leistung", "value": "2,5 kW" },
        { "label": "Max. Druck", "value": "350 bar" },
        { "label": "Fördervolumen", "value": "45 l/min" },
        { "label": "Gewicht", "value": "28 kg" }
      ],
      "price": "1.299,00",
      "sku": "HP-X200-DE"
    }
  ],
  
  "metadata": {
    "author": "Produktmanagement",
    "company": "MAHLE Aftermarket",
    "language": "de",
    "tags": ["hydraulik", "pumpen", "ersatzteile"],
    "version": "1.0",
    "approved": true
  },
  
  "config": {
    "assetBase": "https://assets.example.com/",
    "defaultFontFamily": "Arial",
    "defaultFontSize": 14,
    "testMode": false
  }
}

Technische Zusammenfassung

Aspekt Spezifikation
Format JSON (UTF-8) bzw. ZIP
MIME-Type application/x-publixx-pxf
Encoding UTF-8 ohne BOM
Kompression ZIP Deflate (nur zPXF)
Verschlüsselung AES-256-GCM, PBKDF2
Max. Dateigröße Unbegrenzt (praktisch: 100 MB)
Bildformate JPEG, PNG, WebP, GIF, SVG
Abwärtskompatibilität v2.3 liest v2.0, v2.1, v2.2

Fazit

PXF ist das Format für professionellen Template-Austausch:

Offen: Reines JSON, keine versteckten Strukturen
Lesbar: Mit jedem Texteditor analysierbar
Portabel: zPXF enthält alles, funktioniert offline
Sicher: AES-256-GCM für sensible Daten
Zukunftssicher: Dokumentiert, versioniert, erweiterbar

Ein Template. Alle Daten. Ein Format.


© 2026 incoxx GmbH | Publixx Exchange Format v2.3