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 de este artículo.
Experience Manager 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 la organización produce o consume datos.
Las características clave del uso de un esquema XML son:
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 de formulario adaptable correspondiente.
Esta asignación de elementos XML con componentes de formulario adaptables es la siguiente:
Elemento o atributo XML | Componente de formulario adaptable |
---|---|
xs:string |
Cuadro de texto |
xs:boolean |
Casilla de verificación |
|
Cuadro numérico |
xs:date |
Selector de fecha |
xs:enumeration
|
Desplegable |
Cualquier elemento de tipo complejo | Panel |
Este es un ejemplo de un 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>
Asegúrese de que el esquema XML solo tenga un elemento raíz. No se admite un esquema XML con más de un elemento raíz.
Puede agregar los atributos siguientes a los elementos de Esquema XML para agregar propiedades especiales a los campos del formulario adaptable asociado.
Esquema, propiedad | Uso en formularios adaptables | Compatible con |
---|---|---|
use=required |
Marca un campo obligatorio |
Atributo |
default="default value" |
Añade un valor predeterminado | Elemento y atributo |
minOccurs="3" |
Especifica las incidencias mínimas (Para subformularios repetibles (tipos complejos)) |
Elemento (tipo complejo) |
maxOccurs="10"
|
Especifica el número máximo de incidencias (Para subformularios repetibles (tipos complejos)) |
Elemento (tipo complejo) |
Al arrastrar un elemento de esquema a un formulario adaptable, se genera un rótulo predeterminado mediante:
Por ejemplo, si agrega el elemento de esquema userFirstName
, el rótulo generado en el formulario adaptable será User First Name
.
Puede agregar las siguientes restricciones a los elementos de esquema XML para limitar los valores aceptables para un componente de formulario adaptable:
Esquema, propiedad |
Tipo de datos |
Descripción |
Componente |
|
Cadena |
Especifica el número máximo de dígitos permitidos en un componente. El número de dígitos especificado debe ser bueno a cero. |
|
|
Cadena |
Especifica el límite superior de los valores numéricos y las fechas. De forma predeterminada, se incluye el valor máximo. |
|
|
Cadena |
Especifica el límite inferior de los valores numéricos y las fechas. De forma predeterminada, se incluye el valor mínimo. |
|
|
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 debe ser menor o igual que el valor numérico o la fecha especificados para la propiedad máxima. |
|
|
Booleano |
Si es true, el valor numérico o la fecha especificados en el componente del formulario deben ser buenos 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 buenos o iguales al valor numérico o la fecha especificados para la propiedad mínima. |
|
|
Cadena |
Especifica el número mínimo de caracteres permitidos en un componente. La longitud mínima debe ser igual o buena a cero. |
|
|
Cadena |
Especifica el número máximo de caracteres permitidos en un componente. La longitud máxima debe ser buena a cero. |
|
|
Cadena |
Especifica el número exacto de caracteres permitidos en un componente. La longitud debe ser igual o buena a cero. |
|
|
Cadena |
Especifica el número máximo de decimales permitido en un componente. La fracciónDigits debe ser igual o buena a cero. |
|
|
Cadena |
Especifica la secuencia de los caracteres. Un componente acepta los caracteres si éstos se ajustan al patrón especificado. La propiedad pattern se asigna al patrón de validación del componente de formulario adaptable correspondiente. |
|
¿Cómo sé qué elemento del árbol está asociado con qué elemento XML?
Al hacer clic con el botón doble en un elemento del Buscador de contenido, una ventana emergente muestra un nombre de campo y una propiedad llamada bindRef
. Esta propiedad asigna el elemento de árbol al elemento o atributo del esquema.
El campo bindRef muestra la asociación entre un elemento de árbol y un elemento o atributo de un esquema.
Los atributos tienen un símbolo @
en su valor bindRef
para distinguirlos de los elementos. Por ejemplo, /config/projectDetails/@duration
.
¿Por qué no se pueden arrastrar elementos individuales de un subformulario (estructura generada a partir de cualquier tipo complejo) para subformularios repetibles (los valores minOccours o maxoccur son buenos a partir de 1)?
En un subformulario repetible, debe utilizar el subformulario Completar. Si solo desea campos selectivos, utilice toda la estructura y elimine los no deseados.
Tengo una estructura larga y compleja en Content Finder. ¿Cómo puedo encontrar un elemento específico?
Tiene dos opciones:
¿Qué es bindRef?
Un bindRef
es la conexión entre un componente de formulario adaptable y un elemento o atributo de esquema. Indica el XPath
donde el valor capturado de este componente o campo está disponible en el XML de salida. También se utiliza un bindRef
cuando se rellena previamente un valor de campo a partir de un XML prerelleno (prerellenado).