使用XML架构作为表单模型创作自适应表单需要基本了解XML架构。 此外,建议在阅读本文之前通读以下内容。
Experience Manager Forms 支持使用现有XML架构作为表单模型来创建自适应表单。 此XML架构表示组织中的后端系统生成或使用数据的结构。
使用XML架构的主要功能包括:
XML架构由简单和复杂的元素类型组成。 元素具有向元素添加规则的属性。 将这些元素和属性拖动到自适应表单上时,会自动映射到相应的自适应表单组件。
带有自适应表单组件的XML元素映射如下:
XML元素或属性 | 自适应表单组件 |
---|---|
xs:string |
文本框 |
xs:boolean |
复选框 |
|
数值框 |
xs:date |
日期选取器 |
xs:enumeration
|
下拉列表 |
任何复杂类型的元素 | 面板 |
以下是XML架构的示例。
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="https://adobe.com/sample.xsd"
xmlns="https://adobe.com/sample.xsd"
xmlns:xs="https://www.w3.org/2001/XMLSchema"
>
<xs:element name="sample" type="SampleType"/>
<xs:complexType name="SampleType">
<xs:sequence>
<xs:element name="leaderName" type="xs:string" default="Enter Name"/>
<xs:element name="assignmentStartBirth" type="xs:date"/>
<xs:element name="gender" type="GenderEnum"/>
<xs:element name="noOfProjectsAssigned" type="IntType"/>
<xs:element name="assignmentDetails" type="AssignmentDetails"
minOccurs="0" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssignmentDetails">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="durationOfAssignment" type="xs:unsignedInt" use="required"/>
<xs:attribute name="numberOfMentees" type="xs:unsignedInt" use="required"/>
<xs:attribute name="descriptionOfAssignment" type="xs:string" use="required"/>
<xs:attribute name="financeRelatedProject" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="IntType">
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GenderEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="Female"/>
<xs:enumeration value="Male"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
确保XML架构只有一个根元素。 不支持具有多个根元素的XML架构。
可以将以下属性添加到XML架构元素,以将特殊属性添加到关联的自适应表单的字段。
架构属性 | 在自适应表单中使用 | 中支持 |
---|---|---|
use=required |
将字段标记为必填 |
属性 |
default="default value" |
添加默认值 | 元素和属性 |
minOccurs="3" |
指定最小出现次数 (对于可重复的子表单(复杂类型)) |
元素(复杂类型) |
maxOccurs="10"
|
指定最大发生次数 (对于可重复的子表单(复杂类型)) |
元素(复杂类型) |
将架构元素拖到自适应表单中时,会通过以下方式生成默认题注:
例如,如果添加 userFirstName
架构元素中,在自适应表单中生成的标题为 User First Name
.
您可以向XML架构元素添加以下限制,以限制自适应表单组件可以接受的值:
架构属性 |
数据类型 |
描述 |
组件 |
|
字符串 |
指定组件中允许的最大位数。 指定的位数必须大于零。 |
|
|
字符串 |
指定数值和日期的上限。 默认情况下,包含最大值。 |
|
|
字符串 |
指定数字值和日期的下限。 默认情况下,包含最小值。 |
|
|
布尔值 |
如果为true,则表单组件中指定的数值或日期必须小于为maximum属性指定的数值或日期。 如果为false,则表单组件中指定的数值或日期必须小于或等于为maximum属性指定的数值或日期。 |
|
|
布尔值 |
如果为true,则表单组件中指定的数值或日期必须大于为最小属性指定的数值或日期。 如果为false,则表单组件中指定的数值或日期必须大于或等于为最小属性指定的数值或日期。 |
|
|
字符串 |
指定组件中允许的最小字符数。 最小长度必须等于或大于零。 |
|
|
字符串 |
指定组件中允许的最大字符数。 最大长度必须大于零。 |
|
|
字符串 |
指定组件中允许的确切字符数。 长度必须等于或大于零。 |
|
|
字符串 |
指定组件中允许的最多小数位数。 fractionDigits必须等于或大于零。 |
|
|
字符串 |
指定字符的序列。 如果字符符合指定的模式,组件将接受这些字符。 pattern属性映射到相应自适应表单组件的验证模式。 |
|
如何知道树中的哪个元素与哪个XML元素关联?
在Content Finder中双击某个元素时,会有一个弹出窗口显示一个字段名称和一个名为的属性 bindRef
. 此属性将树元素映射到架构中的元素或属性。
bindRef 字段显示树元素与架构中的元素或属性之间的关联。
属性具有 @
符号位于它们的 bindRef
值,以将其与元素区分开。 例如:/config/projectDetails/@duration
。
为什么我无法为可重复的子表单(minOccours或maxOccurs值大于1)拖动子表单的单个元素(从任何复杂类型生成的结构)?
在可重复的子表单中,您必须使用“完成”子表单。 如果只需要选择字段,请使用整个结构并删除不需要的字段。
我在内容查找器中有一个长且复杂的结构。 如何查找特定元素?
您有两个选项:
什么是bindRef?
A bindRef
是自适应表单组件与架构元素或属性之间的连接。 它规定 XPath
其中从此组件或字段捕获的值在输出XML中可用。 A bindRef
在从预填充(预填充)的XML中预填充字段值时也可使用。