使用XML結構描述建立調適型表單 creating-adaptive-forms-using-xml-schema
Adobe 建議使用新式且可擴充的資料擷取核心元件,用來建立新的最適化表單或將最適化表單新增到 AEM Sites 頁面。這些元件代表最適化表單建立方面的重大進步,可確保令人印象深刻的使用者體驗。本文會介紹使用基礎元件編寫最適化表單的舊方法。
先決條件 prerequisites
使用XML結構描述作為其表單模型來製作調適型表單需要基本瞭解XML結構描述。 此外,建議您先閱讀下列內容,再閱讀本文。
使用XML結構描述作為表單模型 using-an-xml-schema-as-form-model
Experience Manager Forms支援使用現有的XML結構描述做為表單模型來建立最適化表單。 此XML結構描述代表組織中的後端系統產生或使用資料的結構。
使用XML結構描述的主要功能如下:
- XSD的結構在最適化表單的製作模式中,會以樹狀結構顯示在「內容尋找器」標籤中。 您可以從XSD階層拖曳元素並新增至最適化表單。
- 您可以使用與關聯結構描述相容的XML預先填入表單。
- 提交時,使用者輸入的資料會以符合關聯結構描述的XML格式提交。
XML結構描述包含簡單和複雜的元素型別。 元素具有將規則新增至元素的屬性。 將這些元素和屬性拖曳至最適化表單時,會自動對應至對應的最適化表單元件。
這種具有最適化表單元件的XML元素對應如下:
範例XML結構描述 sample-xml-schema
以下是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結構描述新增特殊屬性至欄位 adding-special-properties-to-fields-using-xml-schema
您可以將下列屬性新增至「XML結構描述」元素,以將特殊屬性新增至相關聯的最適化表單的欄位。
- 將元素名稱的第一個字元轉換為大寫
- 在駝峰式大小寫邊界插入空格。
userFirstName
結構描述元素,則最適化表單中產生的標題為User First Name
。限制最適化表單元件的可接受值 limit-acceptable-values-for-an-adaptive-form-component
您可以將下列限制新增至XML結構描述元素,以限制最適化表單元件可接受的值:
常見問題 frequently-asked-questions
我如何知道樹狀結構中的哪個專案與哪個XML專案相關聯?
當您在「內容尋找器」中按兩下某個元素時,快顯視窗會顯示欄位名稱和名為bindRef
的屬性。 此屬性會將樹狀元素對應至結構描述中的元素或屬性。
bindRef
欄位顯示樹狀元素與結構描述中元素或屬性之間的關聯。
bindRef
值中有@
符號,以便與元素區分開來。 例如,/config/projectDetails/@duration
。為什麼我無法為可重複的子表單(minOccours或maxOccurs值大於1)拖曳子表單的個別元素(由任何複雜型別產生的結構)?
在可重複的子表單中,您必須使用「完成」子表單。 如果您只想使用選擇性欄位,請使用整個結構並刪除不需要的結構。
我在內容尋找器中有長而複雜的結構。 如何找到特定專案?
您有兩個選項:
- 捲動瀏覽樹狀結構
- 使用搜尋方塊來尋找元素
什麼是bindRef?
bindRef
為最適化表單元件與結構描述元素或屬性之間的連線。 它指定從這個元件或欄位擷取的值可在輸出XML中使用的XPath
。 從預填(預填) XML預先填入欄位值時,也會使用bindRef
。