使用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結構描述元素,以限制最適化表單元件可接受的值:
結構描述屬性 |
資料類型 |
說明 |
Component |
|
字串 |
指定元件中允許的最大位數。 指定的位數必須大於零。 |
|
|
字串 |
指定數值和日期的上限。 依預設,會包含最大值。 |
|
|
字串 |
指定數值和日期的下限。 依預設,會包含最小值。 |
|
|
布林值 |
如果為true,則表單元件中指定的數值或日期必須小於為最大屬性指定的數值或日期。 如果為false,則表單元件中指定的數值或日期必須小於或等於為最大屬性指定的數值或日期。 |
|
|
布林值 |
如果為true,則表單元件中指定的數值或日期必須大於為最小屬性指定的數值或日期。 如果為false,則表單元件中指定的數值或日期必須大於或等於為最小屬性指定的數值或日期。 |
|
|
字串 |
指定元件中允許的最小字元數。 最小長度必須等於或大於零。 |
|
|
字串 |
指定元件中允許的最大字元數。 最大長度必須大於零。 |
|
|
字串 |
指定元件中允許字元的確切數量。 長度必須等於或大於零。 |
|
|
字串 |
指定元件中允許的小數位數上限。 fractionDigits必須等於或大於零。 |
|
|
字串 |
指定字元順序。 如果字元符合指定的模式,元件會接受字元。 pattern屬性對應至對應的最適化表單元件的驗證模式。 |
|
我如何知道樹狀結構中的哪個元素與哪個XML元素有關聯?
在「內容尋找器」中按兩下元素時,快顯視窗會顯示欄位名稱和屬性,稱為 bindRef
. 此屬性會將樹狀元素對應至結構描述中的元素或屬性。
bindRef 欄位顯示樹狀元素與結構描述中元素或屬性之間的關聯。
屬性具有 @
符號在其中 bindRef
值,以便與元素加以區分。 例如, /config/projectDetails/@duration
.
為什麼我無法為可重複的子表單(minOccours或maxOccurs值大於1)拖曳子表單的個別元素(由任何複雜型別產生的結構)?
在可重複的子表單中,您必須使用「完成」子表單。 如果您只想使用選擇性欄位,請使用整個結構並刪除不需要的結構。
我在內容尋找器中有個長而複雜的結構。 如何找到特定元素?
您有兩個選項:
什麼是bindRef?
A bindRef
最適化表單元件與結構描述元素或屬性之間的連線。 它會指定 XPath
其中從這個元件或欄位擷取的值可在輸出XML中使用。 A bindRef
從預先填入(預先填入)的XML預先填入欄位值時,也會使用。