自適應表單的XML架構設計

必備條件

使用XML架構作為其表單模型創作自適應表單需要對XML架構有基本的瞭解。 此外,建議在本文之前閱讀以下內容。

將XML架構用作表單模型

Experience Manager Forms 支援使用現有XML架構作為表單模型建立自適應表單。 此XML架構表示組織中後端系統生成或使用資料的結構。

使用XML架構的主要功能是:

  • XSD的結構在Adaptive Form的創作模式下的「內容查找器」頁籤中顯示為樹。 您可以將元素從XSD層次結構拖放到自適應表單中。
  • 可以使用與關聯方案相容的XML預填充表單。
  • 在提交時,用戶輸入的資料將作為與關聯架構對齊的XML提交。

XML架構由簡單和複雜的元素類型組成。 元素具有向元素添加規則的屬性。 當這些元素和屬性被拖到「自適應表單」上時,它們將自動映射到相應的「自適應表單」元件。

XML元素與Adaptive Form元件的映射如下:

XML元素或屬性 自適應表單元件
xs:string 文本框
xs:boolean 複選框
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • 所有類型的數值
數字框
xs:date 日期選取器
xs:enumeration 下拉
任何複雜類型元素 面板

示例XML架構

這是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架構向欄位添加特殊屬性

可以將以下屬性添加到XML架構元素,以便將特殊屬性添加到關聯的自適應表單的欄位中。

架構屬性 在自適應窗體中使用 支援
use=required 將欄位標籤為必填
屬性
default="default value" 添加預設值 元素和屬性
minOccurs="3"

指定最小發生次數

(對於可重複子表單(複雜類型))

元素(複雜類型)
maxOccurs="10"

指定最大發生次數

(對於可重複子表單(複雜類型))

元素(複雜類型)
注意

將架構元素拖動到自適應表單時,預設標題由以下方法生成:

  • 正在大寫元素名稱的第一個字元
  • 在駱駝大小寫邊界處插入空白。

例如,如果 userFirstName 模式元素,自適應表單中生成的標題為 User First Name

限制自適應表單元件的可接受值

可以將以下限制添加到XML架構元素中,以限制Adaptive Form元件可接受的值:

架構屬性

資料類型

說明

元件

totalDigits

字串

指定元件中允許的最大位數。 指定的位數必須大於零。

  • 數字框
  • 數值步進器

maximum

字串

指定數值和日期的上限。 預設情況下,包括最大值。

  • 數字框
  • 數值步進器
  • 日期挑選器

minimum

字串

指定數值和日期的下界。 預設情況下,包括最小值。

  • 數字框
  • 數值步進器
  • 日期挑選器

exclusiveMaximum

布林值 (Boolean)

如果為true,則在窗體元件中指定的數值或日期必須小於為maximum屬性指定的數值或日期。

如果為false,則在表單元件中指定的數值或日期必須小於或等於為maximum屬性指定的數值或日期。

  • 數字框
  • 數值步進器
  • 日期挑選器

exclusiveMinimum

布林值 (Boolean)

如果為true,則在窗體元件中指定的數值或日期必須大於為minimum屬性指定的數值或日期。

如果為false,則表單元件中指定的數值或日期必須大於或等於為最小值屬性指定的數值或日期。

  • 數字框
  • 數值步進器
  • 日期挑選器

minLength

字串

指定元件中允許的最小字元數。 最小長度必須等於或大於零。

  • 文本框

maxLength

字串

指定元件中允許的最大字元數。 最大長度必須大於零。

  • 文本框

length

字串

指定元件中允許的字元數。 長度必須等於或大於零。

  • 文本框

fractionDigits

字串

指定元件中允許的最大小數位數。 fractionDigits必須等於或大於零。

  • 具有資料類型浮點或小數的數字框

pattern

字串

指定字元的順序。 如果字元符合指定的模式,則元件將接受字元。

模式屬性映射到相應的「自適應表單」元件的驗證模式。

  • 映射到XSD架構的所有自適應Forms元件

常見問題

我在Content Finder中有一個很長的複雜結構。 如何找到特定元素?

您有兩個選擇:

  • 滾動瀏覽樹結構
  • 使用「搜索」框查找元素

什麼是bindRef?

A bindRef 是Adaptive Form元件與模式元素或屬性之間的連接。 它決定了 XPath 其中,從此元件或欄位捕獲的值在輸出XML中可用。 A bindRef在從預填充(預填充)XML中預填充欄位值時也使用。

為什麼無法為可重複子表單拖動子表單(從任何複雜類型生成的結構)的單個元素(minOccours或maxOccurs值大於1)?

在可重複子窗體中,必須使用「完成」子窗體。 如果只需要選擇欄位,請使用整個結構並刪除不需要的欄位。

本頁內容