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

最終更新日: 2023-07-23
  • 作成対象:
  • Beginner
    Intermediate
    User
    Developer

Adobeでは、最新の拡張可能なデータキャプチャを使用することをお勧めします コアコンポーネント 対象 新しいアダプティブFormsの作成 または AEM SitesページへのアダプティブFormsの追加. これらのコンポーネントは、アダプティブFormsの作成における大幅な進歩を表し、印象的なユーザーエクスペリエンスを実現します。 この記事では、基盤コンポーネントを使用してアダプティブFormsを作成する古い方法について説明します。

前提条件

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 スキーマにはルート要素が 1 つだけ含まれていることを確認します。2 つ以上のルート要素を持つ XML スキーマはサポートされていません。

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

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

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

最小オカレンスを指定します

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

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

最大発生回数を指定します

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

要素(複合型)
メモ

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

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

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

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

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

スキーマプロパティ

データタイプ

説明

コンポーネント

totalDigits

文字列

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

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

maximum

文字列

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

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

minimum

文字列

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

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

exclusiveMaximum

ブール値

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

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

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

exclusiveMinimum

ブール値

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

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

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

minLength

文字列

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

  • テキストボックス

maxLength

文字列

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

  • テキストボックス

length

文字列

1 つのコンポーネントで使用できる正確な文字数を指定します。 長さは 0 以上である必要があります。

  • テキストボックス

fractionDigits

文字列

コンポーネントで許可する小数点以下の桁数の最大値を指定します。 fractionDigits は、0 以上である必要があります。

  • データタイプが浮動小数または小数の数値ボックス

pattern

文字列

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

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

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

よくある質問

ツリーのどの要素がどの XML 要素に関連付けられているかを知るには、どうすればよいですか?

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

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

この bindRef フィールドには、ツリー要素とスキーマ内の要素または属性との関連付けが表示されます。

メモ

属性には、bindRef 値に @ 記号が含まれているので、要素と区別できます。例えば、/config/projectDetails/@duration

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

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

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

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

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

bindRef とは

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

このページ