擴展預設元模型

automated forms conversion服務識別並從來源表單中擷取表單物件。 語義映射器有助於服務決定如何以最適化形式表示擷取的物件。 例如,源表單可以有許多不同類型的日期表示。 語義映射器幫助將源表單的日期表單對象的所有表示與自適應表單的日期元件映射。 語義映射器還允許服務在轉換期間將驗證、規則、資料模式、幫助文本和輔助功能屬性預配置並應用到最適化表單元件。

中繼模型是JSON結構描述。 開始使用中繼模型之前,請確定您熟悉JSON。 您必須具備建立、編輯和讀取JSON格式儲存之資料的經驗。

預設元模型

automated forms conversion服務具有預設元模型。 此為JSON結構,與Automated forms conversion服務的其他元件一起駐留在Adobe雲端。 您可以在本機AEM伺服器上找到中繼模型的復本:http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json。 您也可以按一下這裡來存取或下載英文架構。 法文德文 西班牙文義大利文葡萄牙文語言的元模型也可供下載。

元模型的模式是從https://schema.org/docs/schemas.html上的架構實體派生的。 https://schema.org上定義了人員、郵遞區號、本地業務和更多實體。 元模型的每個實體都遵守JSON結構描述物件類型。 以下代碼表示元模型結構示例:

   "Entity": {
      "id": "Entity",
      "properties": {
        "name": {
          "type": "string"
        },

        "description": {
          "type": "string",
          "description": "Description of the item"
        }
      }
    }

下載預設元模型

執行以下步驟將預設元模型下載到本地檔案系統:

  1. 登入您的AEM Forms執行個體。

  2. 導覽至​Forms > Forms & Documents Meta Model​資料夾。

  3. 選取​global.schema.json​檔案,然後點選​Download。 下載對話框隨即出現。 選擇​Download asset(s) as binary files​選項。 點選​Download。 已下載封存。

了解元模型

中繼模型是指包含實體的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。 事件實體包含多個屬性:

  • startDate
  • endDate
  • 位置

元模型中的​allOf​結構允許實體之間的繼承。

每個屬性可進一步包括:

元模型屬性

根據使用​aem:affKeyword​參考的關鍵字,轉換服務會對來源表單欄位執行搜尋操作。 轉換服務會將JSON結構屬性和其他屬性套用至符合搜尋條件的欄位。

在此示例中,轉換服務在源表單中搜索電話、電話、行動電話、工作電話、家庭電話、電話號碼、電話號碼和電話號碼關鍵字。 根據包含這些關鍵字的欄位,轉換服務會在轉換後將類型、模式和aem:afProperties套用至最適化表單欄位。

產生的最適化表單欄位的JSON結構屬性

中繼模型支援下列使用Automated forms conversion服務產生的適用性表單欄位的JSON結構通用屬性:

屬性名稱 說明

標題

在中繼模型的標題屬性中提及的文字可作為搜尋關鍵字,以對產生的最適化表單欄位執行動作。 例如,修改最適化表單欄位的標籤。 如需詳細資訊,請參閱自訂元模型範例中的修改表單欄位的標籤。

說明

說明屬性會為產生的最適化表單欄位設定說明文字。 有關詳細資訊,請參閱自定義元模型示例中的向表單欄位添加幫助文本。

類型

type屬性會定義所產生最適化表單欄位的資料類型。 標題屬性的可能值包括:

  • 字串:產生文字資料類型的最適化表單欄位。
  • 數字:產生數值資料類型的最適化表單欄位。
  • 整數:生成將子類型設定為整數的數值資料類型的自適應表單欄位。
  • 布林值:生成交換機自適應表單元件。

有關在元模型中使用type屬性的詳細資訊,請參閱自定義元模型示例中的修改表單欄位的類型

圖樣

模式屬性會根據規則運算式來限制所產生適用性表單欄位的值。 例如,元模型中的下列程式碼會將產生的最適化表單欄位值限制為十位數:
"pattern":"/\\d{10}/"
同樣地,元模型中的以下代碼將欄位的值限制為特定日期格式。
"pattern":"date{DD MMM, YYYY}",

格式

format屬性會根據命名模式(而非規則運算式)來限制所產生適用性表單欄位的值。 format屬性的可能值包括:

  • 電子郵件:產生電子郵件最適化表單元件。
  • 主機名:生成文本框最適化表單元件。
有關在元模型中使用format屬性的詳細資訊,請參閱自定義元模型示例中的修改表單欄位的格式。

enum和enumNames

enum和enumNames屬性將下拉式清單、核取方塊或選項按鈕欄位的值限制為固定集。 enumNames中列出的值顯示在用戶介面上。 使用列舉屬性列出的值用於計算。
如需詳細資訊,請 參閱在最適化表單中將表單欄位轉換為多選核取方塊在最適化表單中將文字欄位轉換為下拉式清單,以及 在自訂中繼模型範例中新增其選項。

以關鍵字為基礎的搜尋,將屬性套用至產生的最適化表單欄位

automated forms conversion服務在轉換期間對來源表單執行關鍵字搜尋。 篩選符合搜尋准則的欄位後,轉換服務會將元模型中這些欄位所定義的屬性套用至產生的最適化表單欄位。

使用​aem:affKeyword​屬性參考關鍵字。

{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"]
 }
}

在此範例中,轉換服務使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​銀行帳號​文字後,轉換服務會使用​type​屬性,將欄位轉換為​number​類型。

產生的最適化表單欄位的其他屬性

您可以使用中繼模型中的​aem:afProperties​屬性,為使用Automated forms conversion服務產生的適用性表單欄位定義下列其他屬性:

屬性名稱 說明

multiLine

multiLine屬性在轉換後將源表單欄位轉換為最適化表單中的多行欄位。 如需詳細資訊,請參閱自訂元模型範例中的將字串欄位轉換為多行欄位

強制

強制屬性會將轉換後適用性表單欄位的輸入設為強制。
如需詳細資訊,請參 閱自訂中繼模型範例中 的將 驗證新增至最適化表單欄位。

jcr:title

jcr:title屬性與標題JSON結構屬性可讓您在轉換後修改最適化表單欄位的標籤。
如需詳細資訊,請 參閱自訂元模型範例中修改表單欄位標籤。
請參 閱使用JSON結構建 立最適化表單,以取得更多可使用JSON結構套用至最適化表單欄位的屬性資訊。

sling:resourceType和guideNodeClass

sling:resourceType和guideNodeClass屬性可讓您將表單欄位對應至對應的最適化表單元件。
如需詳細資訊, 請參閱自適性表單中的「將表單欄位轉換為多選項」核取方塊,以及訂中繼模型範例中的「將文字欄位轉換為 下拉 式清單」。

validatePictureClause

validatePictureClause屬性設定轉換後自適應表單欄位中允許的格式的驗證。
如需詳細資訊,請參 閱自訂中繼模型範例中 的將 驗證新增至最適化表單欄位。

以您自己的語言建立自訂元模型

您可以建立語言特定的元模型。 此類元模型可協助您以所選擇的語言建立對應規則。 automated forms conversion服務可讓您以下列語言建立元模型:

  • English(en)
  • French(fr)
  • German(de)
  • Spanish(es)
  • Italian(it)
  • 葡萄牙文(pt-br)

將​aem:Language​中繼標籤標籤新增至中繼模型頂端,以指定其語言。 例如,

"metaTags": {
        "aem:Language": "fr"
    }

當未指定語言時,服務會認為元模型使用英語。

建立語言特定元模型的考量

  • 確保每個索引鍵的名稱都使用英文。 例如, emailAddress。

  • 請確定所有id鍵的所有實體參考和預先定義值僅包含ASCII字元。 例如"id":"ContactPoint" / "$ref":"#ContactPoint"。

  • 確保與以下鍵對應的所有值都使用指定的元模型語言:

    • aem:affKeyword
    • 標題
    • 說明
    • enumNames
    • shortDescription
    • validatePictureClauseMessage

    例如,當元模型的語言是法文時(「aem:Language」:"fr"),請確定所有說明和訊息都使用法文。

  • 請確定所有JSON結構屬性僅使用支援的值。 例如,type屬性只能跨越字串、數字、整數和布林的選定值。

下圖顯示了英語元模型和相應的法語元模型的示例:

使用自訂中繼模型修改最適化表單欄位

除了預設元模型中列出的模式和驗證之外,您的組織還可以具有模式和驗證。 您可以擴展預設元模型,以添加特定於貴組織的模式、驗證和實體。 automated forms conversion服務會在轉換期間將自訂中繼模型套用至表單欄位。 您可以隨著發現組織特有的新模式、驗證和實體而持續更新元模型。

automated forms conversion服務使用儲存在以下位置的預設元模型,在轉換期間將來源表單欄位對應至最適化表單欄位:

http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json

不過,您可以在資料夾中儲存自訂中繼模型,並修改轉換服務屬性,以便在轉換期間使用自訂中繼模型。

轉換期間使用自訂中繼模型

執行下列步驟以在轉換期間使用自訂中繼模型:

  1. 在​Forms > Forms & Documents​中建立資料夾,並將自訂中繼模型JSON結構檔案上傳至資料夾。

  2. 使用下列項目開啟轉換服務屬性:

    Tools > Cloud Services > Automated Forms Conversion Configuration>所 <>選配置的屬性>

  3. 在​Basic​標籤中,在​Custom Meta-model​欄位中指定自訂元模型的位置,然後點選​Save & Close

  4. 執行轉 換以將自訂元模型套用至轉換程式。

自訂元模型範例

使用自訂中繼模型來修改最適化表單欄位屬性的一些常見範例包括:

  • 修改表單欄位的標籤
  • 修改表單欄位的類型
  • 將幫助文本添加到表單欄位
  • 在最適化表單中將表單欄位轉換為多選選項按鈕
  • 修改表單欄位的格式
  • 將驗證新增至最適化表單欄位
  • 將表單欄位轉換為最適化表單中的下拉式清單選項
  • 新增其他選項至下拉式清單
  • 將字串欄位轉換為多行欄位

修改表單欄位的標籤

範例: 轉換後,將表單中的「銀行帳號」標籤修改為最適化表單中的「自訂帳號」。

在此自訂中繼模型中,轉換服務使用​title​屬性作為搜尋關鍵字。 擷取表單中的​銀行帳號​文字後,轉換服務會以​aem:afProperties​區段中​jcr:title​屬性提及的​客戶帳號​字串取代文字。

{
  "numberfields": {
      "type": "number",
   "title": "Bank account number",
   "aem:afProperties" : {
    "jcr:title" : "Customer account number"
   }
   }
}

修改表單欄位的類型

範例:在轉換 後, 修改表單中文本類型的銀行帳戶編號欄位,然後再轉換為最適化表單中的編號類型欄位。

在此自訂中繼模型中,轉換服務會使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​銀行帳號​文字後,轉換服務會使用​type​屬性將欄位轉換為數字類型。

{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"]
 }
}

將幫助文本添加到表單欄位

範例:將「說明」文字新增至 最適化 表單的「銀行帳戶編號」欄位。

在此自訂中繼模型中,轉換服務會使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​銀行帳號​文字後,轉換服務會使用​description​屬性,將「說明」文字新增至最適化表單欄位。

{
  "numberfields": {
      "type": "number",
      "aem:affKeyword": ["Bank account number"],
   "description": "Specify your bank account number."
 }
}

將表單欄位轉換為最適化表單中的多選核取方塊

範例:轉換前 ​將表單中字串類型的「國家/地區」欄位轉換為轉換後最適化表單中的核取方塊。

在此自訂中繼模型中,轉換服務使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​Country​文字後,轉換服務會使用​enum​屬性,將欄位轉換為下列核取方塊:

  • 印度
  • 英格蘭
  • 澳大利亞
  • 紐西蘭

sling: resourceTypeand ​guideNodeClassproperties將表單欄位對應至核取方塊適用性表單元件。

{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidecheckbox",
      "guideNodeClass": "guidecheckbox"
    }
  }
}

修改表單欄位的格式

範例:將「電子郵件地址」 的格 式修改為電子郵件格式。

在此自訂中繼模型中,轉換服務使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​電子郵件地址​文字後,轉換服務會使用​format​屬性將欄位轉換為電子郵件格式。

{
   "additionalDetails" : {
      "aem:affKeyword": ["E-mail Address"],
       "type" : "string",
       "format" : "email"
  } 
}

將驗證新增至最適化表單欄位

範例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"
      }   
   }
}

將文字欄位轉換為最適化表單中的下拉式清單

範例:將轉換 ​前表單中字串類型的「國家/地區」欄位轉換為轉換後最適化表單中的下拉式選項。

在此自訂中繼模型中,轉換服務使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​Country​文字後,轉換服務會使用​enum​屬性,將欄位轉換為下列下拉式清單選項:

  • 印度
  • 英格蘭
  • 澳大利亞
  • 紐西蘭

sling: resourceTypeand ​guideNodeClassproperties將表單欄位對應至下拉式最適化表單元件。

{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidedropdownlist",
      "guideNodeClass": "guideDropDownlist"
    }
  }
}

新增其他選項至下拉式清單

範例: 使 自訂中繼模型,將Sri Lankaas新增為現有的下拉式清單中的額外選項。

若要新增額外的選項,請使用新選項更新​enum​屬性。 在此範例中,以​斯里蘭卡​作為額外選項更新​enum​屬性。 列於​enum​屬性中的值會顯示在下拉式清單中。

{
"title": {
    "aem:affKeyword": [
      "country"
    ],
    "type" : "string",
    "enum": [
      "India",
      "England",
      "Australia",
      "New Zealand",
   "Sri Lanka"
    ],
    "aem:afProperties": {
      "sling:resourceType": "fd/af/components/guidecheckbox",
      "guideNodeClass": "guidecheckbox"
    }
  }
}

將字串欄位轉換為多行欄位

範例: 轉換 ​後,將字串類型的「位址」欄位轉換為表單中的多行欄位。

在此自訂中繼模型中,轉換服務使用​aem:affKeyword​內的文字作為搜尋關鍵字。 擷取表單中的​Address​文字後,服務會使用​aem:afProperties​區段中定義的​multiLine​屬性,將文字欄位轉換為多行欄位。

{
 "multiLine" : {
   "aem:affKeyword": [
      "Address"
    ],
    "type" : "string",
    "aem:afProperties": {
      "multiLine": "true"
    }
  }
}

本頁內容