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.
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:
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:
Elemento o attributo XML | Componente per moduli adattivi |
---|---|
xs:string |
Casella di testo |
xs:boolean |
Casella di selezione |
|
Casella numerica |
xs:date |
Selettore data |
xs:enumeration
|
Elenco a discesa |
Qualsiasi elemento di tipo complesso | Pannello |
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>
Assicurati che lo schema XML abbia un solo elemento principale. Uno schema XML con più di un elemento principale non è supportato.
È possibile aggiungere i seguenti attributi agli elementi dello schema XML per aggiungere proprietà speciali ai campi del modulo adattivo associato.
Proprietà schema | Uso in modulo adattivo | Supportato in |
---|---|---|
use=required |
Contrassegna un campo obbligatorio |
Attributo |
default="default value" |
Aggiunge un valore predefinito | Elemento e attributo |
minOccurs="3" |
Specifica le occorrenze minime (Per sottomoduli ripetibili (tipi complessi)) |
Elemento (tipo complesso) |
maxOccurs="10"
|
Specifica le occorrenze massime (Per sottomoduli ripetibili (tipi complessi)) |
Elemento (tipo complesso) |
Quando si trascina un elemento dello schema in un modulo adattivo, una didascalia predefinita viene generata da:
Ad esempio, se aggiungi l’elemento dello schema userFirstName
, la didascalia generata nel modulo adattivo è User First Name
.
È possibile aggiungere le seguenti restrizioni agli elementi dello schema XML per limitare i valori accettabili per un componente modulo adattivo:
Proprietà schema |
Tipo di dati |
Descrizione |
Componente |
|
Stringa |
Specifica il numero massimo di cifre consentito in un componente. Il numero di cifre specificato deve essere maggiore di zero. |
|
|
Stringa |
Specifica il limite superiore per i valori numerici e le date. Per impostazione predefinita, è incluso il valore massimo. |
|
|
Stringa |
Specifica il limite inferiore per i valori numerici e le date. Per impostazione predefinita, è incluso il valore minimo. |
|
|
Booleano |
Se true, il valore numerico o la data specificati nel componente del modulo devono essere inferiori al valore numerico o alla data specificati per la proprietà maximum. Se false, il valore numerico o la data specificati nel componente del modulo deve essere minore o uguale al valore numerico o alla data specificata per la proprietà maximum. |
|
|
Booleano |
Se true, il valore numerico o la data specificati nel componente del modulo devono essere maggiori del valore numerico o della data specificati per la proprietà minima. Se false, il valore numerico o la data specificati nel componente del modulo devono essere maggiori o uguali al valore numerico o alla data specificata per la proprietà minima. |
|
|
Stringa |
Specifica il numero minimo di caratteri consentiti in un componente. La lunghezza minima deve essere uguale o maggiore di zero. |
|
|
Stringa |
Specifica il numero massimo di caratteri consentiti in un componente. La lunghezza massima deve essere maggiore di zero. |
|
|
Stringa |
Specifica il numero esatto di caratteri consentiti in un componente. La lunghezza deve essere uguale o maggiore di zero. |
|
|
Stringa |
Specifica il numero massimo di posizioni decimali consentite in un componente. La frazioneDigits deve essere uguale o maggiore di zero. |
|
|
Stringa |
Specifica la sequenza dei caratteri. Un componente accetta i caratteri se questi sono conformi al pattern specificato. La proprietà pattern è associata al pattern di convalida del componente modulo adattivo corrispondente. |
|
Come faccio a sapere quale elemento della struttura è associato a quale elemento XML?
Quando fai 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.
Il campo bindRef mostra l'associazione tra un elemento ad albero e un elemento o un attributo in uno schema.
Gli attributi hanno un simbolo @
nel loro valore 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:
Cos'è un bindRef?
Un bindRef
è la connessione tra un componente modulo adattivo e un elemento o attributo schema. Determina il XPath
dove il valore acquisito da questo componente o campo è disponibile nell'XML di output. Viene inoltre utilizzato un valore bindRef
per precompilare un valore di campo da un XML precompilato (precompilato).