Skapa anpassningsbara formulär med XML-schema creating-adaptive-forms-using-xml-schema
Adobe rekommenderar att du använder den moderna och utbyggbara datainhämtningen Core Componentsför att skapa nya adaptiva Formseller att lägga till adaptiva Forms på AEM Sites-sidor. De här komponenterna utgör ett betydande framsteg när det gäller att skapa adaptiva Forms-filer, vilket ger imponerande användarupplevelser. I den här artikeln beskrivs det äldre sättet att skapa Adaptiv Forms med baskomponenter.
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
Experience Manager 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 förbrukas 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
är den bildtext som genereras i det adaptiva formuläret 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:
Frågor och svar 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 popup-fönster med fältnamnet och egenskapen 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.
@
-symbol i sitt bindRef
-värde för att skilja dem från element. 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 delformuläret Fullständigt. 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?
En bindRef
är anslutningen mellan en adaptiv formulärkomponent och ett schemaelement eller attribut. Det anger 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. Ett bindRef
används också när ett fältvärde fylls i i förväg från förfylld (förifylld) XML.