XFA ( XFAフォームとも呼ばれる)はXMLフォームアーキテクチャの略で、 Webフォームの処理を強化するためにJetFormが提案および開発した独自のXML仕様のファミリーです。PDF 1.5仕様以降ではPDFファイルでも使用できます。XFA仕様は、ISO 32000-1仕様(PDF 1.7)を完全に適用するために必要な外部仕様として参照されています。XMLフォームアーキテクチャはISO標準として標準化されておらず[ 3 ]、PDF 2.0で非推奨となっています[ 4 ] 。
XFAの主なXML拡張機能は、計算処理可能なタグです。さらに、特定のXFAフォームテンプレートから作成されたすべてのインスタンスは、元のテンプレートのデータ取得、レンダリング、および操作ルールの仕様を保持します。XFAのもう1つの大きな利点は、そのデータ形式が他のシステムや、他のテクノロジー、アプリケーション、および技術標準の変更との互換性を可能にすることです。
JetFormがWorld Wide Web Consortiumに提出した資料によると、「XFAは、電子フォームに関連する情報を安全に取得、表示、移動、処理、出力、印刷するという組織のニーズに対応します。」[ 5 ] XFAの提案は1999年5月にW3Cに提出されました。
2002年にJetForm CorporationはAdobe Systemsに買収され、Adobe Systemsは2003年にPDF 1.5とそれに続くAcrobatリリース(6と7)でXFAフォームを導入した。 [ 6 ]
XFAフォームは、内部的にはPDFファイルまたはAdobe LiveCycle Designerソフトウェアで開くことができるXDP(XMLデータパッケージ)ファイルとして保存されます。XDPは、PDFファイルとXMLフォームおよびテンプレートデータをパッケージ化できます。[ 7 ] XDPは、フォームコンポーネントを周囲のXMLコンテナ内にパッケージ化するメカニズムを提供します。
XFAはPDFを利用できますが、特定のページ記述言語に縛られるものではありません。
XFA仕様には、Adobe固有のXFA実装の詳細と、XFA仕様から逸脱するAdobe製品の動作について説明する付録が含まれています。
XFAフォームに入力されたデータは、HTTP POST操作を使用して、XDP形式、PDF形式、XFDF形式、XML 1.0形式、またはURLエンコード形式でホストに送信できます。
XFAは、XMLデータをXFAデータDOMにロードする前、またはXFAデータDOMからアンロードした後に、 XSLTを使用してXMLデータを変換することをサポートしています。
XFAのページネーション手法の一つは、XSL-FOのページネーションロジックと構文の大部分を複製するものである。
オーストラリア政府では、XFAフォームはSmartFormsと同義語として使われている。
XFAは、静的フォーム(XFA 2.0以前)と動的フォーム(XFA 2.1または2.2以降)を定義します。
静的フォームでは、フィールドの内容に関係なく、フォームの外観とレイアウトが固定されます。入力されていないフィールドもフォームに残ります。デフォルトでは、静的フォームは再レンダリングを必要としません。XFA は、2 種類の静的フォームを認識します。「旧式の静的フォーム」(「完全な XFA」を使用)と XFAF(完全な XFA のサブセットで、XFA 2.5 以降に定義)です。
動的フォーム(XFA 2.1または2.2以降で定義)は、データの変更に応じて外観をさまざまな方法で変更できます。動的フォームは、ファイルを開くときにコンテンツをレンダリングする必要があります。また、動的フォームは、フォームに提供されるデータの構造の変更に対応するために、構造を変更するように設計することもできます。たとえば、フォームのページにはデータがない場合、そのページを省略できます。別の例として、ページ上で可変のスペースを占めるフィールドがあり、コンテンツを効率的に保持するためにサイズが変更されます。動的フォームは、定型文のPDF表現に依存することはできません。なぜなら、定型文の位置とレイアウトは、フィールドの拡大縮小やサブフォームの省略と追加に伴って変化するからです。
PDF 1.7 は、データと PDF フォームを統合するための 2 つの異なる方法をサポートしています。[ 3 ] [ 8 ]
Adobe XFAフォームはAcroFormsと互換性がありません。XFAがPDFファイル内にパッケージ化されると、AcroFormドキュメントリソース辞書(「シェルPDF」)に格納されるか、ドキュメントカタログのAcroFormエントリから参照されます。
Adobe Readerで使用するXFAフォームを作成するには、Adobe LiveCycle Designerが必要です。[ 9 ] Adobe Readerには、XFAフォームを使用するための「無効化された機能」が含まれており、Adobeからのみ入手可能な有効化技術を使用して作成されたPDFドキュメントを開いたときにのみアクティブになります。[ 10 ] [ 11 ] XFAフォームは、バージョン6より前のAdobe Readerとは互換性がありません。
XFA 2.5以降のフォームでは、XFAの全機能の一部を使用できます。現在指定されているのはXFAFプロファイルのみです。
XFAは以下のように使用できます。
XFAフォームは、PDF 1.5 - 1.7ファイルまたはXDP(XMLデータパッケージ)として作成および使用できます。PDF内のXFAリソースの形式は、XMLデータパッケージ仕様で説明されています。[ 13 ] PDFにはXDP形式のXFAが含まれる場合がありますが、XFAにはPDFが含まれる場合もあります。[ 7 ]
XFAフォームで使用されるXFA(XMLフォームアーキテクチャ)文法をあるアプリケーションから別のアプリケーションに移動する場合、XMLデータパッケージとしてパッケージ化する必要があります。XDPはスタンドアロンのドキュメントである場合もあれば、PDFドキュメント内に含まれる場合もあります。[ 12 ]
XFAフォームパッケージングのバリエーション(XDPを使用):
PDF内にXDPをパッケージ化する利点は、PDFが圧縮されているため、よりコンパクトになることです。また、PDF内のXDPは、単体のXDPでは不可能な方法でデジタル署名を行うことができます。
一方、フォームコンポーネントをXMLコンテナ(XDP)内にパッケージ化することで、標準的なXMLアプリケーションからXFAフォームを容易に操作できるようになります。XMLコンポーネントは人間が読みやすく、編集も容易です(PDFソースコードとは対照的です)。XDP形式のXFAドキュメントは、XFA仕様に付属するスキーマを使用して検証できます。
ほとんどの PDF プロセッサは XFA コンテンツを処理できません。シェル PDF を生成する際には、警告メッセージを表示するシンプルな 1 ページの PDF 画像を PDF マークアップに含めることをお勧めします (例: 「このドキュメントの全コンテンツを表示するには、より新しいバージョンの PDF ビューアが必要です。」、 「このファイルの全コンテンツは、現在お使いの PDF ビューアでは表示できません。」、 「しばらくお待ちください... このメッセージが最終的にドキュメントの適切なコンテンツに置き換えられない場合、お使いの PDF ビューアはこのタイプのドキュメントを表示できない可能性があります。」など)。XFA コンテンツをレンダリングできる PDF プロセッサは、提供された警告ページの画像を表示しないか、または動的なフォームコンテンツで速やかに置き換える必要があります。
2013年、XFAをサポートしていないモバイルプラットフォームとデスクトッププラットフォーム向けのソリューションとして、AdobeはXFAからオンラインHTML5入力フォームを作成するソフトウェア(Adobe「モバイルフォーム」として知られる)を作成しました。モバイルフォームは、PDFやXDPのような単一のファイルではありません。[ 14 ] [ 15 ]
リッチテキストは、XFAフォームに提供されるデータ、XFAテンプレートのデフォルトテキスト値、フィールドキャプション、または定型文(描画)コンテンツとして表示される場合があります。
PDF 1.5 (XFA 2.02) 以降、可変テキストフォームフィールドのテキストコンテンツやマークアップ注釈には、書式情報 (スタイル情報) を含めることができます。これらのリッチテキスト文字列は、XML Forms Architecture 仕様で指定されているリッチテキスト規則に準拠した XML ドキュメントです。XML Forms Architecture 仕様自体は、XHTML 1.0 仕様のサブセットであり、制限された CSS2 スタイル属性セットで拡張されています。[ 13 ]
PDF 1.6 では、PDF は XML Forms Architecture (XFA) 仕様 2.2 で指定されているリッチテキスト要素と属性をサポートしています。PDF 1.7 では、PDF は XML Forms Architecture (XFA) 仕様 2.4 で指定されているリッチテキスト要素と属性をサポートしています。[ 13 ] 2011 年に、PDF 2.0 (ISO 32000 パート 2) が XFA 3.1 を参照することが発表されましたが、[ 16 ]公開された PDF 2.0 では XFA 3.1 は非推奨となりました。[ 4 ]
XFAフォームをPDF/Aに変換すると、定型文とフィールドコンテンツの両方がPDFの外観ストリームにフラット化されます。PDF/Aでは、アクティブコンテンツと、オプションでXMLデータドキュメント(ユーザーが作成したフォームデータ)を除くすべてのXFAコンテンツが禁止されます。
XMLフォームアーキテクチャ仕様は、PDF 1.7規格(ISO 32000-1:2008)には含まれておらず、Adobeが作成・公開した外部の独自仕様としてのみ参照されています。しかし、ISO 32000-1では、XFAが規範的かつISO 32000-1仕様の適用に不可欠なものとして参照されています。XFAはISO規格として標準化されていません。
2007年以来、PDF規格の開発はISOの技術委員会171/小委員会2/作業部会8(TC 171/SC 2/WG 8)によって行われてきました。
2011年、ISO委員会はAdobe Systemsに対し、XFA仕様書、XMLフォームアーキテクチャ(XFA)を標準化のためにISOに提出するよう促し、Adobe SystemsにXFA仕様書の安定化を要請した。委員会はXFA仕様書の安定性について懸念を表明した。[ 16 ]
2017 年に ISO 委員会は PDF 2.0 から XFA を非推奨にしました。[ 4 ]
どうやらAdobeはXFA(XML Forms Architecture)と呼ばれる新しいものを導入したようですが、標準化されていないようです。
Adobe Reader Mobile は LiveCycle Designer で作成された XFA ベースの PDF をサポートしておらず、今後もサポートする予定はありません。
XFAはまだISO標準ではありません。...委員会はAdobe Systemsに対し、XFA仕様書、XMLフォームアーキテクチャ(XFA)を標準化のためにISOに提出するよう要請します。...委員会はXFA仕様書の安定性について懸念しています。...パート2ではXFA 3.1を参照します。