XML スキーマを使ったアダプティブフォームの作成

前提条件

フォームモデルとして XML スキーマを使用してアダプティブフォームをオーサリングする場合、XML スキーマの基本を理解している必要があります。また、この記事を読む前に次のコンテンツを読んでおくことをお勧めします。

フォームモデルとして XML スキーマを使用

Experience Manager Forms では、既存の XML スキーマをフォームモデルとして使用したアダプティブフォームの作成がサポートされています。XML スキーマは、組織のバックエンドシステムによりデータの生成や消費が行われる構造を表しています。

XML スキーマの使用の主な特長は、次のとおりです。

  • XSD の構造は、アダプティブフォームのオーサリングモードの「コンテンツファインダー」タブでツリーとして表示されます。XSD 階層からアダプティブフォームに要素をドラッグして追加できます。
  • 関連付けられたスキーマに準拠する XML を使用して、フォームに事前入力できます。
  • ユーザーが入力したデータは、送信時には関連付けられたスキーマに適合する XML として送信されます。

XML スキーマは、単純型要素と複合型要素で構成されています。要素には、その要素にルールを追加する属性が含まれています。これらの要素や属性がアダプティブフォーム上にドラッグされると、自動的に該当するアダプティブフォームコンポーネントにマッピングされます。

この XML 要素とアダプティブフォームコンポーネントのマッピングは、次のように行われます。

XML要素または属性 アダプティブフォームコンポーネント
xs:string テキストボックス
xs:boolean チェックボックス
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • すべてのタイプの数値
数値ボックス
xs:date 日付選択
xs:enumeration ドロップダウン
任意の複合型要素 パネル

XML スキーマのサンプル

XML スキーマの例を示します。

<?xml version="1.0" encoding="utf-8" ?>
    <xs:schema targetNamespace="https://adobe.com/sample.xsd"
                    xmlns="https://adobe.com/sample.xsd"
                    xmlns:xs="https://www.w3.org/2001/XMLSchema"
                >

        <xs:element name="sample" type="SampleType"/>

        <xs:complexType name="SampleType">
            <xs:sequence>
                <xs:element name="leaderName" type="xs:string" default="Enter Name"/>
                <xs:element name="assignmentStartBirth" type="xs:date"/>
                <xs:element name="gender" type="GenderEnum"/>
                <xs:element name="noOfProjectsAssigned" type="IntType"/>
                <xs:element name="assignmentDetails" type="AssignmentDetails"
                                            minOccurs="0" maxOccurs="10"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="AssignmentDetails">
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="durationOfAssignment" type="xs:unsignedInt" use="required"/>
            <xs:attribute name="numberOfMentees" type="xs:unsignedInt" use="required"/>
             <xs:attribute name="descriptionOfAssignment" type="xs:string" use="required"/>
             <xs:attribute name="financeRelatedProject" type="xs:boolean"/>
       </xs:complexType>
  <xs:simpleType name="IntType">
            <xs:restriction base="xs:int">
            </xs:restriction>
        </xs:simpleType>
  <xs:simpleType name="GenderEnum">
            <xs:restriction base="xs:string">
                <xs:enumeration value="Female"/>
                <xs:enumeration value="Male"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>
メモ

XML スキーマには root 要素が 1 つだけ含まれていることを確認します。2 つ以上の root 要素を持つ XML スキーマはサポートされていません。

XML スキーマを使用したフィールドへの特別なプロパティの追加

次の属性を XML スキーマ要素に追加して、関連付けられたアダプティブフォームのフィールドに特別なプロパティを追加できます。

スキーマプロパティ アダプティブフォームでの使用 サポート対象
use=required 必須フィールドのマーク
属性
default="default value" デフォルト値の追加 要素および属性
minOccurs="3"

最小発生回数の指定

(繰り返し可能なサブフォーム(複合型)の場合)

要素(複合型)
maxOccurs="10"

最大発生回数の指定

(繰り返し可能なサブフォーム(複合型)の場合)

要素(複合型)
メモ

スキーマ要素をアダプティブフォームにドラッグすると、デフォルトのキャプションが次の規則に基づいて生成されます。

  • 要素名の最初の文字を大文字にします。
  • キャメルケースの単語の境界にスペースを挿入します。

例えば、userFirstNameスキーマ要素を追加した場合、アダプティブフォームで生成されるキャプションはUser First Nameになります。

アダプティブフォームコンポーネントで許容される値の制限

XMLスキーマ要素に次の制限を追加して、アダプティブフォームコンポーネントに許容される値を制限することができます。

スキーマプロパティ

データタイプ

説明

コンポーネント

totalDigits

String

コンポーネントで許可される最大桁数を指定します。桁数は 0 以上である必要があります。

  • 数値ボックス
  • 数値ステッパー

maximum

文字列

数値および日付の上限を指定します。デフォルトでは、最大値が含まれます。

  • 数値ボックス
  • 数値ステッパー
  • 日付選択

minimum

文字列

数値および日付の下限を指定します。デフォルトでは、最小値が含まれます。

  • 数値ボックス
  • 数値ステッパー
  • 日付選択

exclusiveMaximum

ブール型

true の場合、フォームのコンポーネントで指定された数値または日付は、maximum プロパティに指定された数値または日付よりも小さい値である必要があります。

false の場合、フォームのコンポーネントで指定された数値または日付は、maximum プロパティに指定された数値または日付以下の値である必要があります。

  • 数値ボックス
  • 数値ステッパー
  • 日付選択

exclusiveMinimum

ブール型

true の場合、フォームのコンポーネントで指定された数値または日付は、minimum プロパティに指定された数値または日付よりも大きい値である必要があります。

false の場合、フォームのコンポーネントで指定された数値または日付は、minimum プロパティに指定された数値または日付以上の値である必要があります。

  • 数値ボックス
  • 数値ステッパー
  • 日付選択

minLength

文字列

コンポーネントで許可される最小文字数を指定します。最小の長さは 0 以上である必要があります。

  • テキストボックス

maxLength

文字列

コンポーネントで許可される最大文字数を指定します。最大長さには 0 より大きい数を指定する必要があります。

  • テキストボックス

length

文字列

コンポーネントで許可される正確な文字数を指定します。長さは 0 以上である必要があります。

  • テキストボックス

fractionDigits

文字列

コンポーネントで許可される小数の位を指定します。fractionDigits は 0 以上である必要があります。

  • 浮動小数点数または小数のデータタイプを持つ数値ボックス

pattern

文字列

文字のシーケンスを指定します。文字が指定されたパターンに適合すると、コンポーネントはその文字を受け入れます。

この pattern プロパティは、対応するアダプティブフォームコンポーネントの検証パターンにマッピされます。

  • XSDスキーマにマップされているすべてのアダプティブフォームコンポーネント

よくある質問

ツリーのどの要素がどの XML 要素に関連付けられているかをどうやって判断しますか?

コンテンツファインダーで要素を重複クリックすると、ポップアップウィンドウにフィールド名とbindRefというプロパティが表示されます。 このプロパティはツリー要素をスキーマ内の要素または属性にマッピングします。

XML スキーマ要素の bindref フィールド

bindRefフィールドは、ツリー要素とスキーマ内の要素または属性との関連付けを示します。

メモ

属性のbindRef値には@記号が含まれており、属性と要素を区別します。 例:/config/projectDetails/@duration

繰り返し可能なサブフォーム(minOccours 値または maxOccurs 値が 1 より大きい)では、サブフォーム(任意の複合型から生成された構造)の個々の要素をドラッグできないのはなぜですか?

繰り返し可能なサブフォームでは、Completeサブフォームを使用する必要があります。 選択した一部のフィールドのみを使用する場合は、構造全体を使用し、不要部分を削除します。

コンテンツファインダーに長く複雑な構造があります。特定の要素を見つけるにはどうすればよいですか?

次の 2 つのオプションがあります。

  • ツリー構造をスクロールします。
  • 「検索」ボックスを使用して、要素を検索します。

bindRef とは何ですか?

bindRef は、アダプティブフォームコンポーネントとスキーマ要素または属性との接続です。これは、このコンポーネントまたはフィールドから取得された値が出力 XML で使用できる、XPath を指定しています。bindRef は、事前入力された XML からフィールドの値を事前に入力する際にも使用されます。

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now