Crear formularios adaptables mediante el esquema XML creating-adaptive-forms-using-xml-schema

CAUTION
AEM 6.4 ha llegado al final de la compatibilidad ampliada y esta documentación ya no se actualiza. Para obtener más información, consulte nuestra períodos de asistencia técnica. Buscar las versiones compatibles here.

Requisitos previos prerequisites

La creación de un formulario adaptable con un esquema XML como modelo de formulario requiere una comprensión básica de los esquemas XML. Además, se recomienda leer el siguiente contenido antes que este artículo.

Uso de un esquema XML como modelo de formulario using-an-xml-schema-as-form-model

AEM Forms admite la creación de un formulario adaptable utilizando un esquema XML existente como modelo de formulario. Este esquema XML representa la estructura en la que el sistema back-end de su organización produce o consume datos.

Estas son las características clave del uso de un esquema XML:

  • La estructura del XSD se muestra como un árbol en la pestaña Buscador de contenido en el modo de creación de un formulario adaptable. Puede arrastrar y agregar un elemento de la jerarquía XSD al formulario adaptable.
  • Puede rellenar previamente el formulario utilizando XML que cumpla con el esquema asociado.
  • Al realizar el envío, los datos introducidos por el usuario se envían como XML que se ajusta al esquema asociado.

Un esquema XML consta de tipos de elementos simples y complejos. Los elementos tienen atributos que agregan reglas al elemento. Cuando estos elementos y atributos se arrastran a un formulario adaptable, se asignan automáticamente al componente del formulario adaptable correspondiente.

Esta asignación de elementos XML con componentes del formulario adaptable se produce de la siguiente forma:

Elemento o atributo XML
Componente de formulario adaptable
xs:string
Cuadro de texto
xs:boolean
Casilla de verificación
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • Todos los tipos de valores numéricos
Cuadro numérico
xs:date
Selector de fecha
xs:enumeration
Desplegable
Cualquier elemento de tipo complejo
Panel

Esquema XML de ejemplo sample-xml-schema

Este es un ejemplo de esquema 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
Asegúrese de que el esquema XML tenga solo un elemento raíz. No se admiten esquemas XML con más de un elemento raíz.

Adición de propiedades especiales a campos mediante un esquema XML adding-special-properties-to-fields-using-xml-schema

Puede agregar los siguientes atributos a los elementos de esquema XML para agregar propiedades especiales a los campos del formulario adaptable asociado.

Propiedad de esquema
Uso en formularios adaptables
Admitido en
use=required
Marca un campo obligatorio
Atributo
default="default value"
Agrega un valor predeterminado
Elemento y atributo
minOccurs="3"

Especifica ocurrencias mínimas

(Para subformularios repetibles (tipos complejos))

Elemento (tipo complejo)
maxOccurs="10"

Especifica el número máximo de ocurrencias

(Para subformularios repetibles (tipos complejos))

Elemento (tipo complejo)
NOTE
Al arrastrar un elemento de esquema a un formulario adaptable, se genera una descripción predeterminada de las siguientes formas:
  • al poner en mayúscula el primer carácter del nombre del elemento;
  • al insertar un espacio en blanco en los límites de Camel Case.
Por ejemplo, si agrega el elemento de esquema userFirstName, la descripción generada en el formulario adaptable es User First Name.

Limitar los valores aceptables para un componente de formulario adaptable limit-acceptable-values-for-an-adaptive-form-component

Puede agregar las siguientes restricciones a los elementos de esquema XML para limitar los valores aceptables para un componente de formulario adaptable:

Propiedad de esquema
Tipo de datos
Descripción
Componente
totalDigits
Cadena
Especifica el número máximo de dígitos permitidos en un componente. El número de dígitos especificado debe ser mayor que cero.
  • Cuadro numérico
  • Stepper numérico
maximum
Cadena
Especifica el límite superior para valores numéricos y fechas. Se incluye el valor máximo de forma predeterminada.
  • Cuadro numérico
  • Stepper numérico
  • Selector de fecha
minimum
Cadena
Especifica el límite inferior para valores numéricos y fechas. Se incluye el valor mínimo de forma predeterminada.
  • Cuadro numérico
  • Stepper numérico
  • Selector de fecha
exclusiveMaximum
Booleano

Si es true, el valor numérico o la fecha especificados en el componente del formulario deben ser menores que el valor numérico o la fecha especificados para la propiedad máxima.

Si es false, el valor numérico o la fecha especificados en el componente del formulario deben ser menores o iguales al valor numérico o a la fecha especificados para la propiedad máxima.

  • Cuadro numérico
  • Stepper numérico
  • Selector de fecha
exclusiveMinimum
Booleano

Si es true, el valor numérico o la fecha especificados en el componente del formulario deben ser mayores que el valor numérico o la fecha especificados para la propiedad mínima.

Si es false, el valor numérico o la fecha especificados en el componente del formulario deben ser mayores o iguales al valor numérico o la fecha especificados para la propiedad mínima.

  • Cuadro numérico
  • Stepper numérico
  • Selector de fecha
minLength
Cadena
Especifica el número mínimo de caracteres permitidos en un componente. La longitud mínima debe ser igual o mayor de cero.
  • Cuadro de texto
maxLength
Cadena
Especifica el número máximo de caracteres permitidos en un componente. La longitud máxima debe ser mayor que cero.
  • Cuadro de texto
length
Cadena
Especifica el número exacto de caracteres permitidos en un componente. La longitud debe ser igual o mayor que cero.
  • Cuadro de texto
fractionDigits
Cadena
Especifica el número máximo de decimales permitido en un componente. fractionDigits debe ser igual o mayor que cero.
  • Cuadro numérico con tipo de datos flotante o decimal
pattern
Cadena

Especifica la secuencia de caracteres. Un componente acepta los caracteres si se ajustan al patrón especificado.

La propiedad pattern se asigna al patrón de validación del componente de formulario adaptable correspondiente.

  • Todos los componentes de formulario adaptable asignados a un esquema XSD

Preguntas frecuentes frequently-asked-questions

¿Cómo sé qué elemento del árbol está asociado con qué elemento XML?

Al hacer doble clic en un elemento del Buscador de contenido, una ventana emergente muestra un nombre de campo y una propiedad denominada bindRef. Esta propiedad asigna el elemento de árbol al elemento o atributo del esquema.

Campo bindref de un elemento de esquema XML

bindRef El campo muestra la asociación entre un elemento del árbol y un elemento o atributo de un esquema.

NOTE
Los atributos tienen un símbolo @ en su valor bindRefpara distinguirlos de los elementos. Por ejemplo, /config/projectDetails/@duration.

¿Por qué no puedo arrastrar elementos individuales de un subformulario (estructura generada a partir de cualquier tipo complejo) para subformularios repetibles (los valores minOccours o maxOccurs son superiores a 1)?

En un subformulario repetible, debe utilizar el subformulario completo. Si solo le interesan los campos selectivos, utilice toda la estructura y elimine los no deseados.

Tengo una estructura larga y compleja en el Buscador de contenido. ¿Cómo puedo encontrar un elemento específico?

Tiene dos opciones:

  • Desplazarse por la estructura de árbol
  • Utilizar el cuadro Buscar para buscar un elemento

¿Qué es bindRef?

Un bindRef es la conexión entre un componente de formulario adaptable y un elemento o atributo de esquema. Determina en qué XPath está disponible el valor capturado de este componente o campo en el XML de salida. bindRef también se utiliza cuando se rellena previamente un valor de campo de un XML prerellenado (rellenado previamente).

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