Creazione di moduli adattivi tramite lo schema XML

Prerequisiti

Per creare un modulo adattivo utilizzando uno schema XML come modello di modulo, è necessario conoscere gli schemi XML di base. Inoltre, si consiglia di consultare il contenuto seguente prima di questo articolo.

Uso di uno schema XML come modello di modulo

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 dell'organizzazione.

Le caratteristiche principali dell'utilizzo di uno schema XML sono:

  • La struttura di XSD viene visualizzata come struttura ad albero nella scheda Content Finder nella modalità di creazione per un modulo adattivo. È possibile trascinare e aggiungere elementi dalla gerarchia XSD al modulo adattivo.
  • È possibile precompilare il modulo utilizzando codice 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 hanno attributi che aggiungono regole all'elemento. Quando questi elementi e attributi vengono trascinati su un modulo adattivo, vengono mappati automaticamente sul componente modulo adattivo corrispondente.

La mappatura degli elementi XML con componenti per moduli adattivi è la seguente:

Elemento o attributo XML Componente modulo adattivo
xs:string Casella di testo
xs:boolean Casella di selezione
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • Tutti i tipi di valori numerici
Casella numerica
xs:date Selettore data
xs:enumeration Drop (Giù)
Qualsiasi elemento di tipo complesso Pannello

Schema XML di esempio

Esempio di uno 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>
Nota

Verificare che lo schema XML abbia un solo elemento principale. Uno schema XML con più di un elemento principale non è supportato.

Aggiunta di proprietà speciali ai campi utilizzando lo schema XML

È 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)
Nota

Quando si trascina un elemento dello schema in un modulo adattivo, viene generata una didascalia predefinita tramite:

  • Capitalizzazione del primo carattere del nome dell'elemento
  • Inserimento di spazio bianco ai bordi della cassa del cammello.

Ad esempio, se si aggiunge l'elemento userFirstName schema, la didascalia generata nel modulo adattivo è User First Name.

Limitare i valori accettabili per un componente modulo adattivo

È possibile aggiungere le seguenti limitazioni agli elementi dello schema XML per limitare i valori accettabili per un componente modulo adattivo:

Proprietà Schema

Tipo di dati

Descrizione

Componente

totalDigits

Stringa

Specifica il numero massimo di cifre consentito in un componente. Il numero di cifre specificato deve essere maggiore di zero.

  • Casella numerica
  • Stepper numerico

maximum

Stringa

Specifica il limite superiore per i valori numerici e le date. Per impostazione predefinita, è incluso il valore massimo.

  • Casella numerica
  • Stepper numerico
  • Selettore data

minimum

Stringa

Specifica il limite inferiore per i valori numerici e le date. Per impostazione predefinita, è incluso il valore minimo.

  • Casella numerica
  • Stepper numerico
  • Selettore data

exclusiveMaximum

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à massima.

Se è false, il valore numerico o la data specificati nel componente del modulo deve essere minore o uguale al valore numerico o alla data specificati per la proprietà massima.

  • Casella numerica
  • Stepper numerico
  • Selettore data

exclusiveMinimum

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 deve essere maggiore o uguale al valore numerico o alla data specificati per la proprietà minima.

  • Casella numerica
  • Stepper numerico
  • Selettore data

minLength

Stringa

Specifica il numero minimo di caratteri consentiti in un componente. La lunghezza minima deve essere uguale o maggiore di zero.

  • Casella di testo

maxLength

Stringa

Specifica il numero massimo di caratteri consentiti in un componente. La lunghezza massima deve essere maggiore di zero.

  • Casella di testo

length

Stringa

Specifica il numero esatto di caratteri consentiti in un componente. La lunghezza deve essere uguale o maggiore di zero.

  • Casella di testo

fractionDigits

Stringa

Specifica il numero massimo di posizioni decimali consentite in un componente. Il numero fractionDigits deve essere uguale o maggiore di zero.

  • Casella numerica con tipo di dati mobile o decimale

pattern

Stringa

Specifica la sequenza dei caratteri. Un componente accetta i caratteri se questi sono conformi al pattern specificato.

La proprietà pattern viene mappata sul pattern di convalida del componente modulo adattivo corrispondente.

  • Tutti i componenti di moduli adattivi mappati a uno schema XSD

Domande frequenti

Come si fa a sapere quale elemento della struttura è associato a quale elemento XML?

Quando si fa doppio clic su un elemento in Content Finder, viene visualizzato un nome di campo e una proprietà denominata bindRef. Questa proprietà associa l'elemento struttura all'elemento o all'attributo nello schema.

Un campo associato a un elemento dello schema XML

Il campo bindRef mostra l'associazione tra un elemento ad albero e un elemento o un attributo in uno schema.

Nota

Gli attributi hanno un @ simbolo nel relativo bindRefvalore 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 maxOccurs sono maggiori di 1)?

In un sottomodulo ripetibile, è necessario utilizzare il sottomodulo completo. Se desiderate solo campi selettivi, utilizzate l'intera struttura ed eliminate quelli indesiderati.

In Content Finder ho una struttura complessa molto lunga. Come posso trovare un elemento specifico?

Sono disponibili due opzioni:

  • Scorrere la struttura ad albero
  • Utilizzare la casella di ricerca per trovare un elemento

Cos'è un bindRef?

Una bindRef è la connessione tra un componente modulo adattivo e un elemento o attributo dello schema. Determina la XPath posizione in cui il valore acquisito da questo componente o campo è disponibile nell'XML di output. Un oggetto bindRefviene utilizzato anche per precompilare un valore di campo da un XML precompilato (precompilato).

In questa pagina