擴展預設元模型 extend-the-default-meta-model
automated forms conversion服務(AFCS)會識別來源表單並從中擷取表單物件。 語意對應程式可協助服務決定如何以最適化表單呈現擷取的物件。 例如,來源表單可以有許多不同型別的日期表示。 語意對應程式有助於將來源表單的日期表單物件與調適型表單的日期元件對應到所有表示方式。 語意對應程式也允許服務在轉換期間預先設定並套用驗證、規則、資料模式、說明文字和協助工具屬性至調適型表單元件。
中繼模型是JSON結構描述。 開始使用中繼模型之前,請確定您已精通JSON。 您必須具備建立、編輯和讀取以JSON格式儲存之資料的經驗。
預設元模型 default-meta-model
automated forms conversion服務(AFCS)有預設的中繼模型。 它是JSON結構描述,並與Adobe服務(AFCS)的其他元件一起駐留在Automated forms conversion雲端。 您可以在下列網址,在本機AEM伺服器上找到中繼模型的復本: http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
。 您也可以按一下這裡來存取或下載英文結構描述。 法文、德文 西班牙文、義大利文和葡萄牙文語言的中繼模型也可供下載。
中繼模型的結構描述衍生自https://schema.org/docs/schemas.html上的結構描述實體。 它有Person、PostalAddress、LocalBusiness和https://schema.org上定義的更多實體。 中繼模型的每個實體都會遵守JSON結構描述物件型別。 下列程式碼代表範例中繼模型結構:
"Entity": {
"id": "Entity",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"description": "Description of the item"
}
}
}
下載預設的中繼模型 download-the-default-meta-model
執行以下步驟,將預設元模型下載至本機檔案系統:
- 登入您的AEM Forms執行個體。
- 導覽至 Forms > Forms & Documents > Meta Model 資料夾。
- 選取 global.schema.json 檔案並點選 Download。 將會顯示下載對話方塊。 選取 Download asset(s) as binary files 選項。 點選 Download。已下載封存。
瞭解中繼模型 understanding-the-meta-model
元模型是指包含實體的JSON結構描述檔案。 JSON結構描述檔案中的所有實體都會包含名稱和ID。 每個實體可以包含多個屬性。 圖元及其屬性會因領域而異。 您可以使用關鍵字和欄位設定來擴充結構描述檔案,以將結構描述屬性對應至最適化表單元件。
"Event": {
"id": "Eventid",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"startDate": {
"type": "string",
"format": "date",
"description": "Specify the start date and time of the event in ISO 8601 date format."
},
"endDate": {
"type": "string",
"format": "date",
"description": "Specify the end date and time of the event in ISO 8601 date format."
},
"location": {
"$ref": "#PostalAddress",
"description": "Specify the location of the event."
}
}
}
]
}
在此範例中,Event 代表 id 值為 Eventid 的實體名稱。 Event實體包含多個屬性:
- startDate
- endDate
- 位置
中繼模型中的 allOf 建構可啟用實體間的繼承。
每個屬性可進一步包含:
轉換服務會根據使用 aem:affKeyword 所參考的關鍵字,對來源表單欄位執行搜尋作業。 轉換服務會將JSON結構描述屬性和其他屬性套用至符合搜尋條件的欄位。
在此範例中,轉換服務會在來源表單中搜尋電話、電話、行動電話、公司電話、住家電話、電話號碼、電話號碼和電話號碼關鍵字。 轉換服務會根據包含這些關鍵字的欄位,在轉換後將型別、模式和aem:afProperties套用至調適型表單欄位。
所產生的最適化表單欄位的JSON結構描述屬性 jsonschemaproperties
中繼模型支援使用Automated forms conversion服務(AFCS)產生的調適型表單欄位的下列JSON結構描述共同屬性:
關鍵字式搜尋,將屬性套用至產生的自適應表單欄位 keywordsearch
automated forms conversion服務(AFCS)會在轉換期間在來源表單上執行關鍵字搜尋。 篩選符合搜尋條件的欄位後,轉換服務會將中繼模型中為這些欄位定義的屬性套用至產生的調適型表單欄位。
使用 aem:affKeyword 屬性參考關鍵字。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"]
}
}
在此範例中,轉換服務使用 aem:affKeyword 中的文字做為搜尋關鍵字。 擷取表單中的 銀行帳號 文字後,轉換服務會使用 type 屬性將欄位轉換為 number 型別。
產生的最適化表單欄位的其他屬性 additionalproperties
您可以在中繼模型中使用 aem:afProperties 屬性,為使用Automated forms conversion服務(AFCS)產生的調適型表單欄位定義下列其他屬性:
以您自己的語言建立自訂中繼模型 language-specific-meta-model
您可以建立特定語言的中繼模型。 這類中繼模型可協助您以您選擇的語言建立對應規則。 automated forms conversion服務(AFCS)可讓您使用下列語言建立中繼模型:
- English(en)
- French(fr)
- German(de)
- Spanish(es)
- Italian(it)
- 葡萄牙文(pt-br)
將 aem:Language metatag標籤新增至中繼模型頂端,以指定其語言。 例如,
"metaTags": {
"aem:Language": "fr"
}
若未指定語言,服務會認為中繼模型為英文。
建立特定語言中繼模型的注意事項
-
確定每個金鑰的名稱都是英文名稱。 例如,emailAddress。
-
請確定所有實體參照和所有ID鍵的預定義值只包含ASCII字元。 例如"id": "ContactPoint" / "$ref": "#ContactPoint"。
-
請確定與下列鍵值對應的所有值都使用指定的元模型語言:
- aem:affKeyword
- 標題
- 說明
- enumName
- shortDescription
- validatePictureClauseMessage
例如,當中繼模型的語言是法文(「aem:Language」:「fr」)時,請確定所有說明和訊息都是法文。
-
請確定所有JSON結構描述屬性都只使用支援的值。 例如,type屬性只能跨越字串、數字、整數和布林值的選取值。
下圖顯示英文中繼模型和對應的法文中繼模型的範例:
使用自訂中繼模型修改最適化表單欄位 modify-adaptive-form-fields-using-custom-meta-model
除了預設元模型中列出的模式與驗證之外,您的組織還可以有這些模式與驗證。 您可以擴充預設元模型,以新增特定於貴組織的陣列、驗證和圖元。 automated forms conversion服務(AFCS)會在轉換期間將自訂中繼模型套用至表單欄位。 當發現組織特定的新陣列、驗證和圖元時,您可以繼續更新元模型。
automated forms conversion服務(AFCS)會使用儲存在下列位置的預設中繼模型,在轉換期間將來源表單欄位對應到調適型表單欄位:
http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
不過,您可以將自訂中繼模型儲存在資料夾中,並修改轉換服務屬性以在轉換期間使用自訂中繼模型。
在轉換期間使用自訂中繼模型 use-custom-meta-model-during-conversion
執行以下步驟以在轉換期間使用自訂中繼模型:
-
在 Forms > Forms & Documents 中建立資料夾,並將自訂中繼模型JSON結構描述檔案上傳至資料夾。
-
使用以下專案開啟轉換服務屬性:
Tools > Cloud Services > Automated Forms Conversion Configuration > <所選組態的屬性>
-
在 Basic 索引標籤中,在 Custom Meta-model 欄位中指定自訂中繼模型的位置,然後點選 Save & Close。
-
執行轉換,將自訂中繼模型套用至轉換程式。
自訂中繼模型範例 custommetamodelexamples
使用自訂中繼模型修改最適化表單欄位屬性的常見範例包括:
- 修改表單欄位的標籤
- 修改表單欄位的型別
- 新增說明文字至表單欄位
- 將表單欄位轉換為最適化表單中的多選單選按鈕
- 修改表單欄位的格式
- 將驗證新增至最適化表單欄位
- 將表單欄位轉換為最適化表單中的下拉式清單選項
- 新增其他選項至下拉式清單
- 將字串欄位轉換為多行欄位
修改表單欄位的標籤 modify-the-label-of-a-form-field
範例: 將表單中的銀行帳號標籤修改成最適化表單中的自訂帳號。
在此自訂中繼模型中,轉換服務使用 title 屬性作為搜尋關鍵字。 擷取表單中的 銀行帳號 文字後,轉換服務會以 aem:afProperties 區段中 jcr:title 屬性提及的 客戶帳號 字串取代文字。
{
"numberfields": {
"type": "number",
"title": "Bank account number",
"aem:afProperties" : {
"jcr:title" : "Customer account number"
}
}
}
修改表單欄位的型別 modify-the-type-of-a-form-field
範例:先修改表單中文字型別的 銀行帳號 欄位,然後再轉換至最適化表單中的數字型別欄位。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 銀行帳號 文字後,轉換服務會使用 type 屬性將欄位轉換為數字型別。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"]
}
}
新增說明文字至表單欄位 add-help-text-to-a-form-field
範例:將說明文字新增至最適化表單的 銀行帳號 欄位。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 銀行帳號 文字後,轉換服務會使用 說明 屬性將說明文字新增至最適化表單欄位。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"description": "Specify your bank account number."
}
}
將表單欄位轉換為最適化表單中的多選核取方塊 convert-a-form-field-to-multiple-choice-check-boxes-in-the-adaptive-form
範例:轉換前先將表單中字串型別的 國家 欄位轉換為轉換後最適化表單中的核取方塊。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 國家/地區 文字後,轉換服務會使用 列舉 屬性將欄位轉換為下列核取方塊:
- 印度
- 英國
- 澳洲
- 紐西蘭
sling:resourceType 和 guideNodeClass 屬性將表單欄位對應至核取方塊最適化表單元件。
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidecheckbox",
"guideNodeClass": "guidecheckbox"
}
}
}
修改表單欄位的格式 modify-the-format-of-a-form-field
範例:將 電子郵件地址 欄位的格式修改成電子郵件格式。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 電子郵件地址 文字後,轉換服務會使用 格式 屬性將欄位轉換為電子郵件格式。
{
"additionalDetails" : {
"aem:affKeyword": ["E-mail Address"],
"type" : "string",
"format" : "email"
}
}
將驗證新增至最適化表單欄位 add-validations-to-adaptive-form-fields
範例1: 新增驗證至最適化表單的 郵遞區號 欄位。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 郵遞區號 文字後,轉換服務會使用 aem:afProperties 區段中定義的 validatePictureClause 屬性,將驗證新增至欄位。 根據驗證,您在轉換後為最適化表單中的 郵遞區號 欄位指定的輸入必須包含6個字元。
{
"postalCode" : {
"aem:affKeyword": ["Postal Code"],
"type" : "string",
"aem:afProperties" : {
"validatePictureClause" : "\\d{6}"
}
}
}
範例2: 新增驗證至最適化表單的 銀行帳號 欄位。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 銀行帳號 文字後,轉換服務會使用 aem:afProperties 區段中定義的 強制 屬性,將驗證新增至欄位。 根據驗證,您必須先指定 銀行帳號 欄位的值,才能在轉換後提交表單。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"aem:afProperties" : {
"mandatory": "true"
}
}
}
將文字欄位轉換為最適化表單中的下拉式清單 convert-a-text-field-to-drop-down-list-in-the-adaptive-form
範例:轉換前先將表單中字串型別的 國家 欄位轉換為轉換後最適化表單中的下拉式選項。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 國家/地區 文字後,轉換服務會使用 列舉 屬性將欄位轉換為下列下拉式清單選項:
- 印度
- 英國
- 澳洲
- 紐西蘭
sling:resourceType 和 guideNodeClass 屬性將表單欄位對應到下拉式最適化表單元件。
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidedropdownlist",
"guideNodeClass": "guideDropDownlist"
}
}
}
新增其他選項至下拉式清單 add-additional-options-to-the-drop-down-list
範例: 使用自訂中繼模型,將 Sri Lanka 新增為現有下拉式清單的額外選項。
若要新增額外選項,請使用新選項更新 enum 屬性。 在此範例中,將 enum 屬性更新為 Sri Lanka 作為額外選項。 列舉 屬性的值會顯示在下拉式清單中。
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand",
"Sri Lanka"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidecheckbox",
"guideNodeClass": "guidecheckbox"
}
}
}
將字串欄位轉換為多行欄位 convert-a-string-field-to-a-multi-line-field
範例: 轉換後,將字串型別的 Address 欄位轉換為表單中的多行欄位。
在此自訂中繼模型中,轉換服務使用 aem:affKeyword 中的文字作為搜尋關鍵字。 擷取表單中的 位址 文字後,服務會使用 aem:afProperties 區段中定義的 multiLine 屬性,將文字欄位轉換為多行欄位。
{
"multiLine" : {
"aem:affKeyword": [
"Address"
],
"type" : "string",
"aem:afProperties": {
"multiLine": "true"
}
}
}