Skapa anpassningsbara formulär med XML-schema creating-adaptive-forms-using-xml-schema
Förutsättningar prerequisites
Att skapa ett anpassat formulär med ett XML-schema som formulärmodell kräver grundläggande kunskaper i XML-scheman. Du bör även läsa igenom följande innehåll före den här artikeln.
Använda ett XML-schema som formulärmodell using-an-xml-schema-as-form-model
AEM Forms har stöd för att skapa ett anpassat formulär genom att använda ett befintligt XML-schema som formulärmodell. Det här XML-schemat representerar strukturen i vilken data produceras eller används av det bakomliggande systemet i organisationen.
De viktigaste funktionerna i ett XML-schema är:
- Strukturen för XSD visas som ett träd på fliken Innehållssökning i redigeringsläget för ett anpassat formulär. Du kan dra och lägga till element från XSD-hierarkin i det adaptiva formuläret.
- Du kan fylla i formuläret i förväg med XML som är kompatibelt med det associerade schemat.
- När data skickas skickas skickas de som användaren anger som XML som överensstämmer med det associerade schemat.
Ett XML-schema består av enkla och komplexa elementtyper. Elementen har attribut som lägger till regler i elementet. När dessa element och attribut dras till ett adaptivt formulär mappas de automatiskt till motsvarande adaptiv formulärkomponent.
Den här mappningen av XML-element med adaptiva formulärkomponenter är följande:
XML-schema - exempel sample-xml-schema
Här är ett exempel på ett XML-schema.
<?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>
Lägga till specialegenskaper i fält med XML-schema adding-special-properties-to-fields-using-xml-schema
Du kan lägga till följande attribut i XML-schemaelement om du vill lägga till specialegenskaper i fälten i det tillhörande adaptiva formuläret.
- Inled det första tecknet i elementnamnet med versal
- Infoga tomt utrymme vid gränserna för Camera Case.
userFirstName
schemaelement, den bildtext som genereras i det adaptiva formuläret är User First Name
.Begränsa tillåtna värden för en adaptiv formulärkomponent limit-acceptable-values-for-an-adaptive-form-component
Du kan lägga till följande begränsningar i XML-schemaelement för att begränsa vilka värden som tillåts för en adaptiv formulärkomponent:
Vanliga frågor frequently-asked-questions
Hur vet jag vilket element i trädet som är associerat med vilket XML-element?
När du dubbelklickar på ett element i Innehållssökning visas ett fältnamn och en egenskap med namnet bindRef
. Den här egenskapen mappar trädelementet till elementet eller attributet i schemat.
BindRef fältet visar associationen mellan ett trädelement och ett element eller attribut i ett schema.
@
symbolen i sina bindRef
värde för att skilja dem från element. Till exempel, /config/projectDetails/@duration
.Varför kan jag inte dra enskilda element i ett delformulär (struktur som genereras från en komplex typ) för repeterbara delformulär (värdena minOcCours och maxOccurs är större än 1)?
I ett upprepningsbart delformulär måste du använda hela delformuläret. Om du bara vill ha selektiva fält använder du hela strukturen och tar bort de oönskade.
Jag har en lång komplex struktur i Content Finder. Hur hittar jag ett specifikt element?
Du har två alternativ:
- Bläddra genom trädstrukturen
- Använd sökrutan för att hitta ett element
Vad är en bindRef?
A bindRef
är anslutningen mellan en adaptiv formulärkomponent och ett schemaelement eller attribut. Det avgör XPath
där värdet som hämtas från den här komponenten eller det här fältet är tillgängligt i XML-utdata. A bindRef
används också när ett fältvärde fylls i i förväg från förfylld (förifylld) XML.