Creazione di moduli adattivi tramite lo schema XML creating-adaptive-forms-using-xml-schema

L’Adobe consiglia di utilizzare l’acquisizione dati moderna ed estensibile Componenti coreper creazione di un nuovo Forms adattivoo aggiunta di Forms adattivo alle pagine AEM Sites. Questi componenti rappresentano un progresso significativo nella creazione di Forms adattivi, garantendo esperienze utente straordinarie. Questo articolo descrive un approccio precedente all’authoring di Forms adattivi utilizzando i componenti di base.

Prerequisiti prerequisites

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

Utilizzo di uno schema XML come modello di modulo using-an-xml-schema-as-form-model

Experience Manager 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 dell’XSD viene visualizzata come una struttura nella scheda Content Finder nella modalità di authoring di un modulo adattivo. Puoi trascinare e aggiungere un elemento dalla gerarchia XSD al modulo adattivo.
  • È possibile precompilare il modulo utilizzando XML conforme allo schema associato.
  • Al momento dell’invio, i dati immessi dall’utente vengono inviati come XML in linea con lo 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 al corrispondente componente del modulo adattivo.

Di seguito è riportata la mappatura degli elementi XML con i componenti dei moduli adattivi:

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
Elenchi a discesa
Qualsiasi elemento di tipo complesso
Pannello

Schema XML di esempio sample-xml-schema

Di seguito è riportato 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>
NOTE
Verificare che lo schema XML contenga un solo elemento principale. Schema XML con più elementi radice non supportato.

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.

Proprietà schema
Uso nei moduli adattivi
Supportato in
use=required
Contrassegna un campo come obbligatorio
Attributo
default="default value"
Aggiunge un valore predefinito
Elemento e attributo
minOccurs="3"

Specifica le occorrenze minime

(Per sottomaschere ripetibili (tipi complessi))

Elemento (tipo complesso)
maxOccurs="10"

Specifica le occorrenze massime

(Per sottomaschere ripetibili (tipi complessi))

Elemento (tipo complesso)
NOTE
Quando trascini un elemento schema in un modulo adattivo, viene generata una didascalia predefinita da:
  • Uso dell'iniziale maiuscola nel nome dell'elemento
  • Inserimento di uno spazio vuoto nei limiti della Camel Case.
Ad esempio, se aggiungi il userFirstName schema, la didascalia generata nel modulo adattivo è User First Name.

Limitare valori accettabili per un componente modulo adattivo limit-acceptable-values-for-an-adaptive-form-component

Per limitare i valori accettabili per un componente modulo adattivo, è possibile aggiungere le seguenti restrizioni agli elementi dello schema XML:

Proprietà schema
Tipo di dati
Descrizione
Componente
totalDigits
Stringa
Specifica il numero massimo di cifre consentite in un componente. Il numero di cifre specificato deve essere maggiore di zero.
  • Casella numerica
  • Stepper numerico
maximum
Stringa
Specifica il limite superiore per valori numerici e date. Per impostazione predefinita, il valore massimo è incluso.
  • 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à 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 specificati per la proprietà maximum.

  • 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à minimum.

Se false, il valore numerico o la data specificati nel componente del modulo devono essere maggiori o uguali al valore numerico o alla data specificati per la proprietà minimum.

  • Casella numerica
  • Stepper numerico
  • Selettore data
minLength
Stringa
Specifica il numero minimo di caratteri consentito 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. FractionDigits deve essere uguale o maggiore di zero.
  • Casella numerica con tipo di dati float o decimal
pattern
Stringa

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

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

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

Domande frequenti frequently-asked-questions

Come è possibile sapere quale elemento della struttura è associato a quale elemento XML?

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

Campo bindref di un elemento schema XML

Il bindRef mostra l’associazione tra un elemento della struttura e un elemento o un attributo in uno schema.

NOTE
Gli attributi hanno un @ simbolo nel loro bindRefper distinguerli dagli elementi. Esempio: /config/projectDetails/@duration.

Perché non è possibile trascinare singoli elementi di una sottomaschera (struttura generata da qualsiasi tipo complesso) per sottomaschere ripetibili (i valori minOccours o maxOccurs sono maggiori di 1)?

In una sottomaschera ripetibile è necessario utilizzare la sottomaschera Completa. Se desideri solo campi selettivi, utilizza l’intera struttura ed elimina quelli indesiderati.

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

Sono disponibili due opzioni:

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

Che cos'è un bindRef?

A bindRef è la connessione tra un componente modulo adattivo e un elemento o un attributo dello schema. Determina la XPath dove il valore acquisito da questo componente o campo è disponibile nel codice XML di output. A bindRefviene utilizzato anche quando si precompila un valore di campo da XML precompilato (precompilato).

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2