Creazione di moduli adattivi tramite schema XML creating-adaptive-forms-using-xml-schema
Prerequisiti prerequisites
La creazione di un modulo adattivo utilizzando uno schema XML come modello di modulo richiede la comprensione di base degli schemi XML. Inoltre, è consigliabile consultare il seguente contenuto prima di questo articolo.
Utilizzo di uno schema XML come modello di modulo using-an-xml-schema-as-form-model
AEM Forms supporta la creazione di un modulo adattivo utilizzando uno schema XML esistente come modello di modulo. Questo schema XML rappresenta la struttura in cui i dati vengono prodotti o utilizzati dal sistema back-end della tua organizzazione.
Le caratteristiche principali dell'utilizzo di uno schema XML sono:
- La struttura di XSD viene visualizzata come una struttura nella scheda Content Finder nella modalità di creazione per un modulo adattivo. Puoi trascinare e aggiungere un elemento dalla gerarchia XSD al modulo adattivo.
- È possibile precompilare il modulo utilizzando un XML conforme allo schema associato.
- Al momento dell’invio, i dati immessi dall’utente vengono inviati come XML che si allinea allo schema associato.
Uno schema XML è costituito da tipi di elementi semplici e complessi. Gli elementi dispongono di attributi che aggiungono regole all’elemento. Quando questi elementi e attributi vengono trascinati in un modulo adattivo, vengono mappati automaticamente sul componente del modulo adattivo corrispondente.
Questa mappatura degli elementi XML con componenti per moduli adattivi è la seguente:
Schema XML di esempio sample-xml-schema
Ecco un esempio di 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>
Aggiunta di proprietà speciali ai campi utilizzando lo schema XML adding-special-properties-to-fields-using-xml-schema
È possibile aggiungere i seguenti attributi agli elementi dello schema XML per aggiungere proprietà speciali ai campi del modulo adattivo associato.
- Capitalizzazione del primo carattere del nome dell’elemento
- Inserimento di spazio bianco ai limiti Camel Case.
userFirstName
elemento schema, la didascalia generata nel modulo adattivo è User First Name
.Limitare i valori accettabili per un componente modulo adattivo limit-acceptable-values-for-an-adaptive-form-component
È possibile aggiungere le seguenti restrizioni agli elementi dello schema XML per limitare i valori accettabili per un componente modulo adattivo:
Domande frequenti frequently-asked-questions
Come faccio a sapere quale elemento della struttura è associato a quale elemento XML?
Quando si fa doppio clic su un elemento in Content Finder, un pop-up visualizza un nome di campo e una proprietà denominata bindRef
. Questa proprietà mappa l'elemento struttura all'elemento o all'attributo nello schema.
bindRef mostra l'associazione tra un elemento struttura e un elemento o un attributo in uno schema.
@
simbolo bindRef
per distinguerli dagli elementi. Esempio: /config/projectDetails/@duration
.Perché non è possibile trascinare singoli elementi di un sottomodulo (struttura generata da qualsiasi tipo complesso) per sottomoduli ripetibili (i valori minOccours o maxOccours sono maggiori di 1)?
In un sottomodulo ripetibile, è necessario utilizzare il sottomodulo completo. Se desideri solo campi selettivi, utilizza l’intera struttura ed elimina quelli indesiderati.
Ho una lunga struttura complessa in Content Finder. Come posso trovare un elemento specifico?
Sono disponibili due opzioni:
- Scorrere la struttura ad albero
- Utilizza la casella Ricerca per trovare un elemento
Cos'è un bindRef?
A bindRef
è la connessione tra un componente modulo adattivo e un elemento o attributo schema. Stabilisce la XPath
dove il valore acquisito da questo componente o campo è disponibile nell'XML di output. A bindRef
viene utilizzato anche durante la precompilazione di un valore di campo da XML precompilato (prepopolato).