使用XML結構建立最適化表單 creating-adaptive-forms-using-xml-schema
必備條件 prerequisites
使用XML架構作為表單模型來製作最適化表單,需要基本了解XML架構。 此外,建議在本文之前閱讀下列內容。
使用XML架構作為表單模型 using-an-xml-schema-as-form-model
AEM 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>
NOTE
確保XML架構只有一個根元素。 不支援具有多個根元素的XML架構。
使用XML架構向欄位添加特殊屬性 adding-special-properties-to-fields-using-xml-schema
您可以將下列屬性新增至XML結構元素,以將特殊屬性新增至相關適用性表單的欄位。
NOTE
將結構元素拖曳至最適化表單時,會產生預設標題:
- 大寫元素名稱的第一個字元
- 在駝峰大小寫邊界插入空白字元。
例如,若您新增
userFirstName
綱要元素,最適化表單中產生的註解為 User First Name
.限制最適化表單元件的可接受值 limit-acceptable-values-for-an-adaptive-form-component
您可以將下列限制新增至XML架構元素,以限制最適化表單元件可接受的值:
常見問題 frequently-asked-questions
如何知道樹中的哪個元素與哪個XML元素關聯?
當您連按兩下「內容尋找器」中的元素時,快顯視窗會顯示欄位名稱和名為 bindRef
. 此屬性會將樹元素映射到架構中的元素或屬性。
bindRef 欄位顯示樹元素與架構中的元素或屬性之間的關聯。
NOTE
屬性具有
@
符號 bindRef
值來區分元素。 例如, /config/projectDetails/@duration
.為什麼我無法為可重複的子表單拖曳子表單的個別元素(從任何複雜類型產生的結構)(minOccours或maxOccurs值大於1)?
在可重複的子表單中,您必須使用完整的子表單。 如果您只想要選擇性欄位,請使用整個結構並刪除不需要的結構。
我在「內容尋找器」中有一個長而複雜的結構。 如何尋找特定元素?
您有兩個選項:
- 滾動瀏覽樹結構
- 使用「搜尋」方塊來尋找元素
什麼是bindRef?
A bindRef
是適用性表單元件與結構元素或屬性之間的連線。 這決定了 XPath
其中,從此元件或欄位捕獲的值在輸出XML中可用。 A bindRef
從預填(預填)的XML預填欄位值時,也會使用。
recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da