Skapa anpassningsbara formulär med XML-schema creating-adaptive-forms-using-xml-schema

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

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-element eller -attribut
Adaptiv formkomponent
xs:string
Textruta
xs:boolean
Kryssruta
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • Alla typer av numeriska värden
Numerisk ruta
xs:date
Datumväljaren
xs:enumeration
Nedrullningsbar listruta
Alla komplexa element
Panel

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>
NOTE
Kontrollera att XML-schemat bara har ett rotelement. Ett XML-schema med mer än ett rotelement stöds inte.

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.

Schemaegenskap
Användning i anpassningsbar form
Stöds i
use=required
Markerar ett fält obligatoriskt
Attribut
default="default value"
Lägger till ett standardvärde
Element och attribut
minOccurs="3"

Anger minsta antal förekomster

(För repeterbara delformulär (komplexa typer))

Element (komplex text)
maxOccurs="10"

Anger högsta antal förekomster

(För repeterbara delformulär (komplexa typer))

Element (komplex text)
NOTE
När du drar ett schemaelement till ett anpassat formulär skapas en standardbildtext av:
  • Inled det första tecknet i elementnamnet med versal
  • Infoga tomt utrymme vid gränserna för Camera Case.
Om du till exempel lägger till 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:

Schemaegenskap
Datatyp
Beskrivning
Komponent
totalDigits
Sträng
Anger maximalt antal siffror som tillåts i en komponent. Det angivna antalet siffror måste vara större än noll.
  • Numerisk ruta
  • Numerisk stege
maximum
Sträng
Anger den övre gränsen för numeriska värden och datum. Som standard inkluderas maxvärdet.
  • Numerisk ruta
  • Numerisk stege
  • Datumväljaren
minimum
Sträng
Anger den nedre gränsen för numeriska värden och datum. Som standard inkluderas minimivärdet.
  • Numerisk ruta
  • Numerisk stege
  • Datumväljaren
exclusiveMaximum
Boolean

Om true måste det numeriska värdet eller datumet som anges i formulärets komponent vara mindre än det numeriska värdet eller datumet som anges för egenskapen maximum.

Om värdet är false måste det numeriska värdet eller datumet som anges i formulärets komponent vara mindre än eller lika med det numeriska värdet eller datumet som anges för egenskapen maximum.

  • Numerisk ruta
  • Numerisk stege
  • Datumväljaren
exclusiveMinimum
Boolean

Om true måste det numeriska värdet eller datumet som anges i formulärets komponent vara större än det numeriska värdet eller datumet som anges för egenskapen minimum.

Om värdet är false måste det numeriska värdet eller datumet som anges i formulärets komponent vara större än eller lika med det numeriska värdet eller datumet som anges för egenskapen minimum.

  • Numerisk ruta
  • Numerisk stege
  • Datumväljaren
minLength
Sträng
Anger det minsta antalet tecken som tillåts i en komponent. Minimilängden måste vara lika med eller större än noll.
  • Textruta
maxLength
Sträng
Anger maximalt antal tecken som tillåts i en komponent. Maxlängden måste vara större än noll.
  • Textruta
length
Sträng
Anger det exakta antalet tecken som tillåts i en komponent. Längden måste vara lika med eller större än noll.
  • Textruta
fractionDigits
Sträng
Anger maximalt antal decimaler som tillåts i en komponent. fractionDigits måste vara lika med eller större än noll.
  • Numerisk ruta med datatypen flyttal eller decimal
pattern
Sträng

Anger teckensekvensen. En komponent accepterar tecknen om tecknen överensstämmer med det angivna mönstret.

Egenskapen pattern mappar till valideringsmönstret för motsvarande adaptiva formulärkomponent.

  • Alla adaptiva formulärkomponenter som är mappade till ett XSD-schema

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.

Ett bindref-fält för ett XML-schemaelement

BindRef fältet visar associationen mellan ett trädelement och ett element eller attribut i ett schema.

NOTE
Attribut har en @ symbolen i sina bindRefvä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 bindRefanvänds också när ett fältvärde fylls i i förväg från förfylld (förifylld) XML.

recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da