XML 形式

XML (Extensible Markup Language) は、構造化されたデータを交換するための言語です。XML は厳密なファイル形式ではなく、複数のグループがデータ交換に使用することができる合意済みの形式を定義するための言語です。多くの個人、組織、および企業が、XML を使用して製品情報、取引、在庫データなどの業務データを転送しています。

XML のインポートおよびエクスポートのサンプルファイルは、アップデートとリリースノートページからダウンロードできます。XML の一般情報、XML に関する役立つ情報へのリンクについては、Claris の Web サイトを参照してください。

XML のインポート

FileMaker Pro は、XML のインポート用に FMPXMLRESULT 文法をサポートしています。XML が別の形式の場合は、インポートの際に XSLT (Extensible Stylesheet Language for Transformations) スタイルシートを適用して、XML を FMPXMLRESULT 文法に変換することができます。

XML のエクスポート

FileMaker Pro では、FMPXMLRESULT と FMPDSORESULTという 2 つの XML 文法でデータをエクスポートすることができます。エクスポートの際に XSLT スタイルシートを適用して、これらのいずれかの文法を別の XML 形式に、または HTML や標準のテキストなどの別の形式に変換することができます。たとえば、XML のエクスポート機能を使用して、データ駆動型の Web ページや、カスタムフィールド区切り記号を使用するデータのテキストファイルを作成することができます。

メモ  FileMaker Pro の XML のインポートとエクスポートの機能では、libxml2 という XML パーサと libxslt という XSLT スタイルシートプロセッサを使用します。XML および XSL の開発中に、macOS で利用可能なコマンドラインツール xmllint および xsltproc など、libxml2 ベースのパーサと libxslt ベースのプロセッサを使用して、XML と XSL をテストできます。詳細については、libxml2 および libxslt リポジトリまたはその他のサードパーティのサイトを参照してください。

XML FMPDSORESULT 文法

FMPDSORESULT 文法は、CSS (Cascading Style Sheets) または XSL を使用して書式設定するデータベースをエクスポートする場合に便利です。

メモ  データフィールドの名前の先頭に数字をつける、または半角カタカナを含む名前の使用はできません (「7」など)。FMPDSORESULT 文法では、数字または半角カタカナ文字をフィールド名タグとして使用することはできないため、生成された XML ファイルがブラウザに表示されません。

エクスポートされた FMPDSORESULT 文法の各 ROW 要素には、エクスポートするフィールド名に対応する FIELD 要素が数多く格納されています。

フィールド名に含まれるスペースや 1 つのコロンは、要素名では下線に変換されます (たとえば、<FIRST_NAME>)。ポータルフィールド内の 2 つのコロンは、ピリオドに変換されます (たとえば、<PHONE.PHONE_NUMBER>)。これは、XML ではコロンが名前空間の指定のために予約されているという理由と、XML 要素名ではスペースを使用することができないという理由によります。

繰り返しフィールドおよび関連フィールドの場合、各 FIELD 要素に、各繰り返しレコードまたはポータルレコードに対応する DATA 要素が格納されます。

XML のエクスポートでは、オブジェクトフィールドデータのエクスポートはサポートされません。

XML の制限のため、各関連フィールドからエクスポートできるのは 1 レコードのみです。

XML FMPXMLRESULT 文法

FMPXMLRESULT 文法には、レコード数、フィールドタイプ、フィールド書式など、FMPDSORESULT 文法にない、データベースに関する追加の情報が含まれます。これらの要素と属性は、XML を正しく検証するために必要となります。

FMPXMLRESULT 文法は、この文法で提供される METADATA 情報が必要な場合に使用します。FileMaker Pro では、FMPXMLRESULT 文法でのインポートとエクスポートの両方がサポートされているため、この形式は、複数の FileMaker Pro ファイルの間でデータを転送する場合に便利です。

メモ  FMPXMLRESULT の文法は、CSS (Cascading Style Sheet) との併用には適しません。XML データで CSS を使用する場合は、FMPDSORESULT 文法を使用してください。

FMPXMLRESULT 文法では、DATABASE 要素に、NAME、RECORDS、DATEFORMAT、LAYOUT および TIMEFORMAT 属性が含まれます。

DATEFORMAT 属性は、XML ドキュメントの日付の書式を指定します。

フィールド

完全な形式

短い形式

yyyy (4 桁)

yy (2 桁)

Month

mm (2 桁)

M (1 桁または 2 桁)

Day

dd (2 桁)

d (1 桁または 2 桁)

TIMEFORMAT 属性は、XML ドキュメントの時刻の書式を指定します。

フィールド

完全な形式

短い形式

時 (1-12)

hh (2 桁)

h (1 桁または 2 桁)

時 (1-24)

kk (2 桁)

k (1 桁または 2 桁)

mm

 

ss

 

AM/PM

a

 

METADATA 要素には 1 つまたは複数の FIELD 要素が含まれ、各 FIELD 要素には 1 つのフィールド/列の情報が含まれます。この情報には、データベースで定義されているフィールドの名前、フィールドタイプ、空白フィールドの使用可否 (EMPTYOK 属性) を指定する Yes または No、および繰り返しフィールドの最大数 (MAXREPEAT 属性) が含まれます。フィールドタイプに対して有効な値は、TEXT、NUMBER、DATE、TIME、および CONTAINER です。

RESULTSET 要素には、XML 内のレコードデータを指定する ROW 要素がすべて含まれます。各 ROW 要素には、対象レコード内の 1 つの行に対するフィールド/列データが含まれます。これには、行のレコード ID、行の修正 ID、および行内の 1 つのフィールド/列のデータを含む COL 要素が含まれます (複数の DATA 要素は、繰り返しフィールドまたはポータルフィールドの値の 1 つを表します)。

XML のエクスポートでは、オブジェクトフィールドデータのエクスポートはサポートされません。

XML の制限のため、各関連フィールドからエクスポートできるのは 1 レコードのみです。

COL 要素の順序は、METADATA 要素内の FIELD 要素の順序に対応します。たとえば、METADATA に「First Name」、「Last Name」、および「Department」要素が記述されている場合、「Joe」、「Smith」、および「Engineering」が同じ順序で RESULTSET ROW に記述されます。

メモ 

  • XML をインポートする前に、libxml2 ベースの XML パーサおよび libxslt ベースの XSLT プロセッサを使用し、FileMaker Pro は XSLT スタイルシート (指定した場合) を適用して XML データを変換します。エラーメッセージが表示される場合は、エラーを修正してから再度インポートしてください。

  • インポートする XML は FMPXMLRESULT 文法に準拠していなければなりませんが、特定の要素と属性はインポート中には使用されません。次の表は、XML のインポート中に使用される要素と属性、および属性に対して使用可能なデフォルト値の一覧を示します。ほとんどの場合、属性値は、NULL (TIMEFORMAT=""など) にすることができます。また、必ず FMPXMLRESULT 要素で、この文法に対する FileMaker 名前空間を宣言してください。

  • 要素

    属性

    XML インポート時の使用有無

    デフォルト値

    FMPXMLRESULT

     

    xmlns="http://www.filemaker.com/ fmpxmlresult"

    ERRORCODE

     

    いいえ

     

    PRODUCT

     

    いいえ

    " "

     

    NAME

    いいえ

    " "

     

    VERSION

    いいえ

    " "

     

    BUILD

    いいえ

    " "

    DATABASE

     

    いいえ

     

     

    NAME

    いいえ

    " "

     

    RECORDS

    いいえ

    " "

     

    DATEFORMAT

    いいえ

    " "

     

    TIMEFORMAT

    いいえ

    " "

     

    LAYOUT

    いいえ

    " "

    METADATA

     

     

        FIELD

     

     

     

    NAME

    はい

    " "

     

    TYPE

    はい

    "TEXT"、"DATE"、"NUMBER"、"TIME"、"TIMESTAMP"、または "CONTAINER"

     

    EMPTYOK

    いいえ

    "YES" または "NO"

     

    MAXREPEAT

    いいえ

    " "

    RESULTSET

     

     

     

    FOUND

    いいえ

    " "

        ROW

     

     

     

    RECORDID

    いいえ

    " "

     

    MODID

    いいえ

    " "

        COL

     

     

          DATA