# XML Forms Architecture

XFA (auch bekannt als XFA-Formulare) steht für XML Forms Architecture, eine Familie proprietärer XML-Spezifikationen, die von JetForm entwickelt wurden, um die Verarbeitung von Webformularen zu verbessern. Es kann auch in PDF-Dateien ab PDF 1.5 verwendet werden. Die XFA-Spezifikation wird als externe Spezifikation referenziert, die für die vollständige Anwendung der ISO-32000-1-Spezifikation (PDF 1.7) erforderlich ist. Die XML Forms Architecture wurde nicht als ISO-Standard anerkannt und wurde in PDF 2.0 als veraltet eingestuft.

## Überblick

XFA erweitert XML durch rechnergestützte Tags. Zudem behalten alle aus einer XFA-Formularvorlage erstellten Instanzen die ursprünglichen Spezifikationen zur Datenerfassung, Darstellung und Manipulation bei. Ein wesentlicher Vorteil von XFA ist seine Kompatibilität mit anderen Systemen und Technologiestandards.
Laut JetForms' Einreichung beim World Wide Web Consortium ermöglicht XFA es Organisationen, „Informationen aus elektronischen Formularen sicher zu erfassen, darzustellen, zu übertragen, zu verarbeiten, auszugeben und zu drucken.“ Der Vorschlag wurde im Mai 1999 beim W3C eingereicht.
2002 wurde JetForm von Adobe Systems übernommen, die XFA-Formulare mit PDF 1.5 und den nachfolgenden Acrobat-Versionen (6 und 7) im Jahr 2003 einführte.
XFA-Formulare werden intern in PDF-Dateien gespeichert oder als XDP-Dateien (XML Data Package), die mit LiveCycle Designer von Adobe geöffnet werden können. XDP kann eine PDF-Datei zusammen mit XML-Formular- und Vorlagendaten enthalten.

### XFA-Formulartypen

XFA unterscheidet zwischen statischen (seit XFA 2.0) und dynamischen Formularen (seit XFA 2.1 oder 2.2).
Statische Formulare behalten ihr Layout bei, unabhängig vom Feldinhalt. Dynamische Formulare hingegen passen sich dem Inhalt an, indem sie Felder erweitern oder Seiten ausblenden.

## Verwendung mit PDF

PDF 1.7 unterstützt zwei Methoden zur Integration von Formulardaten:
* AcroForms – eingeführt in der PDF-1.2-Spezifikation.
* Adobe XML Forms Architecture (XFA) – eingeführt in der PDF-1.5-Spezifikation.
XFA-Formulare sind nicht mit AcroForms kompatibel und können nicht gemeinsam in einem Dokument verwendet werden. Das Erstellen von XFA-Formularen für Adobe Reader erfordert Adobe LiveCycle Designer.

### Profiltypen

Ab XFA 2.5 können Formulare eine Teilmenge der vollständigen XFA-Funktionen nutzen. Das derzeit einzige spezifizierte Profil ist XFAF.
XFA kann auf folgende Arten verwendet werden:
* Vollständiges XFA – ein Format, bei dem das gesamte Formular, einschließlich statischer Elemente, direkt in XFA definiert wird (entweder ohne PDF-Hintergrund oder mit minimalem PDF-Markup). Es wird für dynamische XFA-Formulare (seit XFA 2.1) sowie für sogenannte „traditionelle“ statische XFA-Formulare verwendet.
* XFAF (XFA Foreground) – eingeführt in XFA 2.5 – eine Architektur, bei der jede Seite des XFA-Formulars über einen PDF-Hintergrund gelegt wird. Sie kann nur für statische XFA-Formulare verwendet werden.

### Struktur und Speicherung

XFA-Formulare können als PDF-1.5–1.7-Dateien oder als XDP (XML Data Package) gespeichert werden. Das Format einer XFA-Ressource in PDF wird durch die XML Data Package Specification beschrieben.

#### Varianten der XFA-Formularstruktur

* als eigenständiges XML Data Package (XDP) (.xdp-Datei), das optional auch eine PDF-Datei enthalten kann.
* als Bestandteil eines regulären PDF-Dokuments – für statische XFAF-Formulare.
* innerhalb eines „Shell-PDFs“ – für vollständige XFA-Formulare (dynamisch oder traditionell statisch).
Das Einbetten eines XDP in ein PDF hat den Vorteil, dass die Datei kompakter ist, da PDFs komprimiert werden. Zudem kann XDP in PDF digital signiert werden, was mit einem eigenständigen XDP nicht möglich ist.

### Kompatibilität mit PDF-Viewern

Die meisten PDF-Reader unterstützen XFA nicht. Beim Generieren eines Shell-PDFs wird empfohlen, eine einfache, einseitige PDF-Warnung anzuzeigen (z. B. „Zum Anzeigen des vollständigen Inhalts dieses Dokuments benötigen Sie eine neuere Version des PDF-Viewers.“).
2013 entwickelte Adobe als Lösung für Plattformen ohne XFA-Unterstützung eine Software zur Erstellung von HTML5-Formularen aus XFA („Adobe Mobile Forms“).

### Rich Text

Rich Text kann in XFA-Formularen als Standardwert, Feldbeschriftung oder Inhalt vorkommen.
Seit PDF 1.5 (XFA 2.02) können Texte in Formularfeldern Formatierungsinformationen enthalten, um verschiedene Stile darzustellen. Diese Rich-Text-Strings sind XML-Dokumente, die den Rich-Text-Konventionen der XML Forms Architecture (XFA) entsprechen. XFA basiert auf einer Teilmenge von XHTML 1.0 mit eingeschränkten CSS2-Attributen.
In PDF 1.6 wurden Rich-Text-Elemente aus der XFA-Spezifikation 2.2 übernommen. In PDF 1.7 wurden die Rich-Text-Attribute der XFA-Spezifikation 2.4 ergänzt. PDF 2.0 (ISO 32000 Part 2) sollte ursprünglich XFA 3.1 referenzieren, jedoch wurde XFA in der endgültigen Version von PDF 2.0 als veraltet eingestuft.

### PDF/A

Beim Konvertieren eines XFA-Formulars in PDF/A werden sowohl das statische Layout als auch die Formularinhalte in einem PDF-Darstellungsstrom gespeichert. PDF/A verbietet aktive Inhalte und erlaubt nur das XML-Datenformular, also die vom Benutzer erstellten Formulardaten.

## Standardisierung

Die XFA-Spezifikation wurde nicht als ISO-Standard anerkannt. Obwohl sie in der ISO-32000-1-Spezifikation referenziert wird, ist sie nicht offiziell Teil des PDF-Standards. 2017 wurde XFA in PDF 2.0 als veraltet eingestuft.