アダプティブフォームの JSON スキーマのデザイン(コアコンポーネント) creating-adaptive-forms-using-json-schema
前提条件 prerequisites
フォームモデルとして JSON スキーマを使用して、コアコンポーネントに基づくアダプティブフォームをオーサリングする場合、JSON スキーマの基本を理解している必要があります。 この記事を読む前に、以下のコンテンツを読んでおくことをお勧めします。
フォームモデルとしての JSON スキーマの使用 using-a-json-schema-as-form-model
Adobe Experience Manager Formsでは、既存の JSON スキーマをフォームモデルとして使用した、コアコンポーネントに基づくアダプティブフォームの作成がサポートされています。 JSON スキーマは、組織内のバックエンドシステムによってデータが作成または使用される構造を表します。使用する JSON スキーマは、v4 仕様に準拠している必要があります。
JSON スキーマの使用上の主な特長を以下に示します。
- JSON の構造は、アダプティブフォームのオーサリングモードの「コンテンツファインダー」タブでツリーとして表示されます。JSON 階層からコアコンポーネントに基づくアダプティブフォームに要素をドラッグして追加できます。
- 関連付けられたスキーマに準拠する JSON を使用して、フォームに事前入力できます。
- ユーザーが入力したデータは、送信時には関連付けられたスキーマに適合する JSON として送信されます。
- 2012-20 バージョンの仕様に従って、JSON スキーマに基づいたフォームを作成することもできます。
JSON スキーマは、単純型要素と複合型要素で構成されています。要素には、その要素にルールを追加する属性が含まれています。これらの要素や属性がアダプティブフォーム上にドラッグされると、自動的に対応するアダプティブフォームコンポーネントにマッピングされます。
JSON 要素とアダプティブフォームコンポーネントのマッピングは、以下のように行われます。
"birthDate": {
"type": "string",
"format": "date",
"pattern": "date{DD MMMM, YYYY}",
"aem:affKeyword": [
"DOB",
"Date of Birth"
],
"description": "Date of birth in DD MMMM, YYYY",
}
共通のスキーマプロパティ common-schema-properties
アダプティブフォームは JSON スキーマで使用可能な情報を使用して、生成された各フィールドをマッピングします。具体的には、以下のようになります。
title
プロパティは、アダプティブフォームコンポーネントのラベルとして機能します。description
プロパティは、アダプティブフォームコンポーネントの詳細な説明として設定されます。default
プロパティは、アダプティブフォームフィールドの初期値として機能します。maxLength
プロパティは、テキストフィールドコンポーネントのmaxlength
属性として設定されます。minimum
、maximum
、exclusiveMinimum
およびexclusiveMaximum
プロパティは、数値ボックスコンポーネントに使用されます。DatePicker component
の範囲をサポートするために、追加の JSON スキーマプロパティminDate
およびmaxDate
が用意されています。minItems
およびmaxItems
プロパティは、パネルコンポーネントに追加または削除される可能性のある項目/フィールドの数を制限するために使用されます。readOnly
プロパティは、アダプティブフォームコンポーネントのreadonly
属性を設定します。required
プロパティは、アダプティブフォームフィールドを必須としてマークします。一方、パネル(タイプがオブジェクト)の場合、最終的に送信された JSON データには、そのオブジェクトに対応する空の値を持つフィールドがあります。pattern
プロパティは、アダプティブフォームで検証パターン(正規表現)として設定されます。- JSON スキーマファイルの拡張子は、.schema.json を維持する必要があります。例えば、<filename>.schema.json のように指定します。
JSON スキーマのサンプル sample-json-schema
code language-json |
---|
|
code language-json |
---|
|
JSON スキーマ v4 からバージョン 2020-12 仕様への主な変更点は次のとおりです。
- ID は
$id
として宣言されます - 定義は
$defs
として宣言されます
再使用可能なスキーマ定義 reusable-schema-definitions
定義キーを使用して、再使用可能なスキーマを識別します。再使用可能なスキーマ定義を使用して、フラグメントを作成します。定義を含む JSON スキーマのサンプルを以下に示します。
{
"$schema": "https://json-schema.org/draft-04/schema#",
"definitions": {
"address": {
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
},
"required": ["street_address", "city", "state"]
}
},
"type": "object",
"properties": {
"billing_address": { "$ref": "#/definitions/address" },
"shipping_address": { "$ref": "#/definitions/address" }
}
}
上記の例では、各顧客が出荷先と請求先の両方の住所を持つ顧客レコードを定義します。どちらの住所も構造(都道府県、市区町村、番地など)が同じ場合は、住所が重複しないようにすることをお勧めします。また、今後変更が行われたときに、簡単にフィールドを追加したり削除したりできます。
アダプティブフォームコンポーネントの許容値の制限 limit-acceptable-values-for-an-adaptive-form-component
JSON スキーマの要素に以下の制限を追加して、アダプティブフォームのコアコンポーネントで許容される値を制限できます。
スキーマ準拠データの有効化 enablig-schema-compliant-data
フォーム送信時にすべての JSON スキーマベースのアダプティブフォームでスキーマに準拠したデータを生成できるようにするには、次の手順に従います。
https://server:host/system/console/configMgr
で Experience Manager web コンソールに移動します。- アダプティブフォームおよびインタラクティブ通信 web チャネルの設定 を見つけます。
- その設定を選択して編集モードで開きます。
- スキーマ準拠データを生成 チェックボックスをオンにします。
- 設定を保存します。
サポート対象外の構成 non-supported-constructs
アダプティブフォームは以下の JSON スキーマ構成をサポートしていません。
- Null タイプ
- any などの Union タイプ
- OneOf、AnyOf、AllOf、NOT
- 同種の配列のみがサポートされます。そのため、項目制限は、配列でなくオブジェクトである必要があります。
- $ref での URI 参照
よくある質問 frequently-asked-questions
繰り返し可能なサブフォーム(minOccurs 値または maxOccurs 値が 1 より大きい)では、サブフォーム(任意の複合型から生成された構造)の個々の要素をドラッグできないのはなぜですか?
繰り返し可能なサブフォームでは、完全なサブフォームを使用する必要があります。選択した一部のフィールドのみを使用する場合は、構造全体を使用し、不要部分を削除します。
コンテンツファインダーに長く複雑な構造があります。特定の要素を見つけるにはどうすればよいですか?
以下の 2 つのオプションがあります。
- ツリー構造をスクロールする
- 検索ボックスを使用して、要素を検索する
JSON スキーマファイルの拡張子は何ですか。
JSON スキーマファイルの拡張子は、.schema.json にする必要があります。例えば、<filename>.schema.json のように指定します。
コアコンポーネントに基づ aem:afProperties
たアダプティブFormsでは、JSON スキーマの一部としてサポートされますか?
いいえ。コアコンポーネントでは aem:afProperties
はサポートされていません。 このプロパティは、基盤コンポーネントでのみサポートされます。
関連トピック see-also
- AEM アダプティブフォームの作成
- AEM Sites ページへ AEM アダプティブフォームを追加
- AEM アダプティブフォームへテーマを適用
- AEM アダプティブフォームへコンポーネントを追加
- AEM アダプティブフォームでの Captcha の使用
- AEM アダプティブフォームの PDF バージョン(DoR)を生成
- AEM アダプティブフォームを翻訳
- フォームの使用状況を追跡するアダプティブフォームの Adobe Analytics を有効にする
- Microsoft SharePoint へアダプティブフォームを接続
- Microsoft Power Automate へアダプティブフォームを接続
- Microsoft OneDrive へアダプティブフォームを接続
- Microsoft Azure Blob Storage へアダプティブフォームを接続
- Salesforce へアダプティブフォームを接続
- AEM アダプティブフォームで Adobe Sign を使用
- アダプティブフォームの新しいロケールを追加
- データベースへアダプティブフォームデータを送信
- REST エンドポイントへアダプティブフォームデータを送信
- AEM ワークフローへアダプティブフォームデータを送信
- フォームポータルを使用して AEM web サイト上の AEM アダプティブフォームを一覧表示
- アダプティブフォームへのバージョン管理、コメント、注釈の追加
- アダプティブフォームの比較