automated forms conversion服务从源表单中识别和提取表单对象。 语义映射器帮助服务确定如何以自适应形式表示提取的对象。 例如,源表单可以具有许多不同类型的日期表示形式。 语义映射器帮助将源表单的日期表单对象的所有表示与自适应表单的日期组件进行映射。 语义映射器还允许服务在转换过程中将验证、规则、数据模式、帮助文本和辅助功能属性预配置并应用到自适应表单组件。
元模型是JSON模式。 在开始元模型之前,请确保您精通JSON。 您必须具备创建、编辑和阅读以JSON格式保存的数据的经验。
automated forms conversion服务具有默认元模型。 它是JSON模式,驻留在Adobe云上,包含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"
}
}
}
请执行以下步骤将默认元模型下载到本地文件系统:
登录您的AEM Forms实例。
导航到Forms > Forms & Documents > Meta Model文件夹。
选择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."
}
}
}
]
}
在本示例中,事件表示实体的名称,该实体的值用id表示Eventid。 事件实体包括多个属性:
元模型中的allOf构造允许实体之间的继承。
每个属性还可以包括:
根据使用aem:affKeyword引用的关键字,转换服务对源表单字段执行搜索操作。 转换服务将JSON模式属性和其他属性应用于满足搜索条件的字段。
在本例中,转换服务在源表单中搜索电话、电话、移动电话、工作电话、家庭电话、电话号码、电话号码和电话号码关键字。 转换服务基于包含这些关键字的字段,在转换后将类型、模式和aem:afProperties应用于自适应表单字段。
元模型支持以下JSON模式通用属性,这些属性适用于使用Automated forms conversion服务生成的自适应表单字段:
属性名称 | 描述 |
---|---|
页面 |
元模型中标题属性中提到的文本用作搜索关键字,以对生成的自适应表单字段执行操作。 例如,修改自适应表单字段的标签。 有关详细信息,请参阅自定义元模型示例中的修改表单字段的标签。 |
描述 |
description属性为生成的自适应表单字段设置帮助文本。 有关详细信息,请参阅自定义元模型示例中的将帮助文本添加到表单字段。 |
类型 |
type属性为生成的自适应表单字段定义数据类型。 标题属性的可能值包括:
有关在元模型中使用type属性的详细信息,请参阅自定义元模型示例中的修改表单字段的类型。 |
图案 |
模式属性基于常规表达式限制生成的自适应表单字段的值。 例如,元模型中的以下代码将生成的自适应表单字段的值限制为十位数: |
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属性在转换后将源表单字段转换为自适应表单中的多行字段。 有关详细信息,请参阅自定义元模型示例中的将字符串字段转换为多行字段。 |
mandatory |
强制属性将转换后自适应表单字段的输入设置为强制。 |
jcr:title |
jcr:title属性(带有标题JSON模式属性)允许您在转换后修改自适应表单字段的标签。 |
sling:resourceType和guideNodeClass |
sling:resourceType和guideNodeClass属性允许您将表单字段映射到相应的自适应表单组件。 |
validatePictureClause |
validatePictureClause属性设置转换后自适应表单字段中允许的格式验证。 |
除了默认元模型中列出的模式和验证之外,您的组织还可以具有这些模式和验证。 您可以扩展默认元模型,以添加特定于您的组织的模式、验证和实体。 automated forms conversion服务在转换过程中将自定义元模型应用于表单字段。 您可以继续更新元模型,因为发现了特定于您的组织的新模式、验证和实体。
automated forms conversion服务在转换过程中使用保存在以下位置的默认元模型将源表单字段映射到自适应表单字段:
http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
但是,可以将自定义元模型保存到文件夹中,并修改转换服务属性以在转换过程中使用自定义元模型。
在转换过程中,请执行以下步骤以使用自定义元模型:
在Forms > Forms & Documents中创建文件夹,并将自定义元模型JSON模式文件上传到该文件夹。
使用以下方式打开转换服务属性:
Tools >> Cloud Services >选 Automated Forms Conversion Configuration定配 <>置的属性>
在Basic选项卡中,在Custom Meta-model字段中指定自定义元模型的位置,然后点按Save & Close。
运行转 换以将自定义元模型应用到转换过程。
使用自定义元模型修改自适应表单字段属性的一些常见示例包括:
示例: 转换后,将表单中的银行帐号标签修改为自适应表单中的自定义帐号。
在此自定义元模型中,转换服务使用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中的文本用作搜索关键字。 在检索表单中的国家/地区文本后,转换服务使用枚举属性将字段转换为以下复选框:
sling:resourceType 和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属性向字段添加验证。 根据验证,转换后自适应表单中为邮政编码字段指定的输入必须包含六个字符。
{
"postalCode" : {
"aem:affKeyword": ["Postal Code"],
"type" : "string",
"aem:afProperties" : {
"validatePictureClause" : "\\d{6}"
}
}
}
示例2: 向自适应表单的 银行 帐户编号字段添加验证。
在此自定义元模型中,转换服务使用aem:affKeyword中的文本作为搜索关键字。 在检索表单中的银行帐号文本后,转换服务使用aem:afProperties部分中定义的mandatory属性向字段添加验证。 在转换后提交表单之前,必须根据验证为银行帐号字段指定一个值。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"aem:afProperties" : {
"mandatory": "true"
}
}
}
示例:转换 前将表单中字符串类型的“国家/地区”字段转换为转换后自适应表单中的下拉选项。
在此自定义元模型中,转换服务使用aem:affKeyword中的文本作为搜索关键字。 检索表单中的国家/地区文本后,转换服务使用枚举属性将字段转换为以下下拉列表选项:
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属性作为额外选项更新为斯里兰卡。 枚举属性中列出的值显示在下拉列表中。
{
"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中的文本作为搜索关键字。 在检索表单中的地址文本后,服务使用aem:afProperties部分中定义的multiLine属性将文本字段转换为多行字段。
{
"multiLine" : {
"aem:affKeyword": [
"Address"
],
"type" : "string",
"aem:afProperties": {
"multiLine": "true"
}
}
}