automated forms conversion服务从源表单中标识和提取表单对象。 语义映射器有助于服务确定如何以自适应形式表示提取的对象。 例如,源表单可以具有多种不同类型的日期表示形式。 语义映射器帮助将源表单的日期表单对象的所有表示与自适应表单的日期组件进行映射。 语义映射器还允许服务在转换期间将验证、规则、数据模式、帮助文本和辅助功能属性预配置并应用于自适应表单组件。
元模型是JSON模式。 在开始使用元模型之前,请确保您熟悉JSON。 您必须具有创建、编辑和读取JSON格式保存的数据的经验。
automated forms conversion服务具有默认的元模型。 它是JSON架构,并且与Adobe服务的其他组件一起驻留在Automated forms conversion云中。 您可以在本地AEM服务器上找到元模型的副本:http://<server>:<port>/aem/forms.htmlglobal.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"
}
}
}
执行以下步骤,将默认元模型下载到本地文件系统:
元模型是指包含实体的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 as Eventid. 事件实体包括多个属性:
的 allOf 在元模型中构造可以实现实体之间的继承。
每个属性还可以包括:
根据使用 aem:affKeyword,转换服务对源表单字段执行搜索操作。 转换服务将JSON架构属性和其他属性应用到满足搜索条件的字段。
在本例中,转换服务在源形式中搜索电话、电话、移动电话、工作电话、家庭电话、电话号码、电话号码和电话号码关键字。 根据包含这些关键词的字段,转化服务会在转化后将类型、模式和aem:afProperties应用到自适应表单字段。
元模型支持以下JSON模式通用属性,用于使用Automated forms conversion服务生成的自适应表单字段:
属性名称 | 描述 |
---|---|
页面 |
元模型的标题属性中提及的文本将用作搜索关键字,以对生成的自适应表单字段执行操作。 例如,修改自适应表单字段的标签。 有关更多信息,请参阅 修改表单字段的标签 in 自定义元模型示例。 |
描述 |
描述属性为生成的自适应表单字段设置帮助文本。 有关更多信息,请参阅 将帮助文本添加到表单字段 in 自定义元模型示例。 |
类型 |
type属性为生成的自适应表单字段定义数据类型。 title属性的可能值包括:
有关在元模型中使用type属性的更多信息,请参阅 修改表单字段的类型 in 自定义元模型示例。 |
图案 |
模式属性基于正则表达式限制生成的自适应表单字段的值。 例如,元模型中的以下代码将生成的自适应表单字段的值限制为10位: |
format |
format属性基于命名模式而不是正则表达式来限制生成的自适应表单字段的值。 format属性的可能值包括:
|
enum和enumNames |
enum和enumNames属性将下拉列表、复选框或单选按钮字段的值限制为固定集。 enumNames中列出的值显示在用户界面上。 使用枚举属性列出的值将用于计算。 |
automated forms conversion服务在转换期间对源表单执行关键词搜索。 过滤满足搜索标准的字段后,转换服务会将元模型中为这些字段定义的属性应用到生成的自适应表单字段。
使用 aem:affKeyword 属性。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"]
}
}
在此示例中,转换服务使用 aem:affKeyword 作为搜索关键词。 检索 银行帐号 文本,转换服务会将字段转换为 数字 使用 type 属性。
您可以使用 aem:afProperties 元模型中的属性,以为使用Automated forms conversion服务生成的自适应表单字段定义以下其他属性:
属性名称 | 描述 |
---|---|
multiLine |
多行属性在转换后将源表单字段转换为自适应表单中的多行字段。 有关更多信息,请参阅 将字符串字段转换为多行字段 in 自定义元模型示例。 |
mandatory |
“必填”属性将转换后自适应表单字段的输入设置为“必填”。 |
jcr:title |
jcr:title属性(带有标题JSON模式属性)允许您在转换后修改自适应表单字段的标签。 |
sling:resourceType和guideNodeClass |
sling:resourceType和guideNodeClass属性允许您将表单字段映射到相应的自适应表单组件。 |
validatePictureClause |
validatePictureClause属性对转换后自适应表单字段中允许的格式设置验证。 |
可以创建语言特定的元模型。 此类元模型可帮助您使用所选语言创建映射规则。 automated forms conversion服务允许您创建以下语言的元模型:
添加 aem:语言 元标记标记到顶部的元模型以指定其语言。 例如,
"metaTags": {
"aem:Language": "fr"
}
当未指定任何语言时,服务会认为元模型是英语。
确保每个键的名称都使用英语。 例如, emailAddress。
确保所有ID键的所有实体引用和预定义值仅包含ASCII字符。 例如“id”:"ContactPoint" / "$ref":“#ContactPoint”。
确保与以下键对应的所有值都使用指定的元模型语言:
例如,当元模型的语言为法语("aem:Language")时:“fr”),确保所有说明和消息都使用法语。
确保所有 JSON架构属性 仅使用支持的值。 例如,type属性只能跨选定的字符串、数字、整数和布尔值。
下图显示了英语元模型和相应法语元模型的示例:
除了默认元模型中列出的模式和验证之外,您的组织还可以具有这些模式和验证。 您可以扩展默认元模型,以添加特定于贵组织的模式、验证和实体。 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 > <properties of="" selected="" configuration="">
在 Basic 选项卡,在 Custom Meta-model 字段和点按 Save & Close.
运行转化 将自定义元模型应用到转换过程。
使用自定义元模型修改自适应表单字段属性的一些常见示例包括:
示例: 在转换后,将表单中的银行帐号标签修改为自适应表单中的自定义帐号。
在此自定义元模型中,转换服务使用 标题 属性。 检索 银行帐号 文本,转换服务会将文本替换为 客户帐号 字符串 jcr:title 属性 aem:afProperties 中。
{
"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 作为搜索关键词。 检索 银行帐号 文本,转换服务将使用 描述 属性。
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"description": "Specify your bank account number."
}
}
示例:转换 国家/地区 “转换前”表单中的“字符串类型”字段,以及“转换后”自适应表单中的复选框。
在此自定义元模型中,转换服务在 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"
}
}
}
示例:修改 电子邮件地址 字段来获取相应信息。
在此自定义元模型中,转换服务在 aem:affKeyword 作为搜索关键词。 检索 电子邮件地址 文本,转换服务会使用 格式 属性。
{
"additionalDetails" : {
"aem:affKeyword": ["E-mail Address"],
"type" : "string",
"format" : "email"
}
}
示例1: 向 邮政编码 自适应表单的字段。
在此自定义元模型中,转换服务在 aem:affKeyword 作为搜索关键词。 检索 邮政编码 文本,转换服务将使用 validatePictureClause 属性 aem:afProperties 中。 根据验证,您为 邮政编码 自适应表单中的字段必须包含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 作为搜索关键词。 检索 国家/地区 文本,转换服务会使用 枚举 属性:
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"
}
}
}
示例: 添加 斯里兰卡 作为使用自定义元模型的现有下拉列表的额外选项。
要添加额外选项,请更新 枚举 属性。 在本例中,更新 枚举 属性 斯里兰卡 作为额外选项。 中列出的值 枚举 属性。
{
"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 作为搜索关键词。 检索 地址 文本,该服务将使用 multiLine 属性 aem:afProperties 中。
{
"multiLine" : {
"aem:affKeyword": [
"Address"
],
"type" : "string",
"aem:afProperties": {
"multiLine": "true"
}
}
}