使用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架構元素,以限制最適化表單元件可接受的值:
架構屬性 |
資料類型 |
說明 |
元件 |
|
字串 |
指定元件中允許的位數上限。 指定的位數必須大於零。 |
|
|
字串 |
指定數值和日期的上界。 預設會包含最大值。 |
|
|
字串 |
指定數值和日期的下界。 預設會包含最小值。 |
|
|
布林值 (Boolean) |
如果為true,則在表單元件中指定的數值或日期必須小於為maximum屬性指定的數值或日期。 如果為false,表單元件中指定的數字值或日期必須小於或等於為maximum屬性指定的數字值或日期。 |
|
|
布林值 (Boolean) |
如果為true,則表單元件中指定的數值或日期必須大於最小屬性指定的數值或日期。 如果為false,表單元件中指定的數值或日期必須大於或等於為最小屬性指定的數值或日期。 |
|
|
字串 |
指定元件中允許的字元數目下限。 最小長度必須等於或大於零。 |
|
|
字串 |
指定元件中允許的最大字元數。 最大長度必須大於零。 |
|
|
字串 |
指定元件中允許的字元數。 長度必須等於或大於零。 |
|
|
字串 |
指定元件中允許的小數位數上限。 fractionDigits必須等於或大於零。 |
|
|
字串 |
指定字元的順序。 如果字元符合指定的模式,則元件接受字元。 該模式屬性映射到相應自適應表單元件的驗證模式。 |
|
我要如何知道樹中的哪個元素與哪個XML元素相關聯?
當您連按兩下「內容搜尋器」中的元素時,快顯視窗會顯示欄位名稱和名為bindRef
的屬性。 此屬性將樹元素映射到方案中的元素或屬性。
bindRef欄位顯示樹元素與模式中的元素或屬性之間的關聯。
屬性的bindRef
值中有一個@
符號,以區別它們與元素。 例如,/config/projectDetails/@duration
。
為什麼我無法將子表單的個別元素(從任何複雜類型產生的結構)拖曳至可重複的子表單(minOccours或maxOccuns值大於1)?
在可重複的子表單中,您必須使用「完整」子表單。 如果您只想要選擇欄位,請使用整個結構並刪除不要的欄位。
我在Content Finder中有很長的複雜結構。如何尋找特定元素?
您有兩個選項:
什麼是bindRef?
bindRef
是自適應表單元件與模式元素或屬性之間的連接。 它指定了XPath
,從此元件或欄位捕獲的值可用於輸出XML。 從預先填入(預先填入)的XML中預先填入欄位值時,也會使用bindRef
。