Show Menu
TÓPICOS×

Criação de formulários adaptáveis usando o Esquema XML

Pré-requisitos

A criação de um formulário adaptável usando um esquema XML como seu modelo de formulário requer uma compreensão básica dos esquemas XML. Além disso, é recomendável ler o seguinte conteúdo antes deste artigo.

Uso de um esquema XML como modelo de formulário

O AEM Forms oferece suporte à criação de um formulário adaptável usando um esquema XML existente como modelo de formulário. Este esquema XML representa a estrutura na qual os dados são produzidos ou consumidos pelo sistema back-end em sua organização.
Os principais recursos do uso de um esquema XML são:
  • A estrutura do XSD é exibida como uma árvore na guia Localizador de conteúdo no modo de criação de um formulário adaptável. Você pode arrastar e adicionar elementos da hierarquia XSD ao formulário adaptável.
  • É possível preencher previamente o formulário usando XML compatível com o esquema associado.
  • No envio, os dados inseridos pelo usuário são enviados como XML que se alinha ao esquema associado.
Um esquema XML consiste em tipos de elementos simples e complexos. Os elementos têm atributos que adicionam regras ao elemento. Quando esses elementos e atributos são arrastados para um formulário adaptável, eles são mapeados automaticamente para o componente de formulário adaptável correspondente.
Esse mapeamento de elementos XML com componentes de formulário adaptáveis é o seguinte:
Elemento ou atributo XML Componente de formulário adaptável
xs:string Caixa de texto
xs:boolean Caixa de seleção
  • xs:unsignedInt
  • xs:xs:int
  • xs:decimal
  • Todos os tipos de valores numéricos
Caixa numérica
xs:date Seletor de data
xs:enumeration Lista suspensa
Qualquer elemento de tipo complexo Painel

Exemplo de esquema XML

Aqui está um exemplo de um 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>

Certifique-se de que seu esquema XML tenha apenas um elemento raiz. Não há suporte para um esquema XML com mais de um elemento raiz.

Adicionar propriedades especiais a campos usando o esquema XML

É possível adicionar os seguintes atributos aos elementos do Esquema XML para adicionar propriedades especiais aos campos do formulário adaptável associado.
Propriedade do esquema Usar em forma adaptável Suportado em
use=required Marca um campo como obrigatório Atributo
default="default value" Adiciona um valor padrão Elemento e atributo
minOccurs="3"
Especifica ocorrências mínimas
(Para subformulários repetíveis (tipos complexos))
Elemento (tipo complexo)
maxOccurs="10"
Especifica o máximo de ocorrências
(Para subformulários repetíveis (tipos complexos))
Elemento (tipo complexo)
Ao arrastar um elemento de esquema para um formulário adaptável, uma legenda padrão é gerada por:
  • Colocar o primeiro caractere do nome do elemento em maiúsculas
  • Inserindo espaço em branco nos limites do Camel Case.
Por exemplo, se você adicionar o elemento de userFirstName esquema, a legenda gerada no formulário adaptável será User First Name .

Valores limite aceitáveis para um componente de formulário adaptável

É possível adicionar as seguintes restrições aos elementos do esquema XML para limitar os valores aceitáveis para um componente de formulário adaptável:
Propriedade do esquema
Tipo de dados
Descrição
Componente
totalDigits
Sequência de caracteres
Especifica o número máximo de dígitos permitidos em um componente. O número de dígitos especificado deve ser maior que zero.
  • Caixa numérica
  • Escalonador Numérico
maximum
Sequência de caracteres
Especifica o limite superior para valores numéricos e datas. Por padrão, o valor máximo é incluído.
  • Caixa numérica
  • Escalonador Numérico
  • Seletor de datas
minimum
Sequência de caracteres
Especifica o limite inferior para valores numéricos e datas. Por padrão, o valor mínimo é incluído.
  • Caixa numérica
  • Escalonador Numérico
  • Seletor de datas
exclusiveMaximum
Booleano
Se verdadeiro, o valor numérico ou a data especificada no componente do formulário deve ser menor que o valor numérico ou a data especificada para a propriedade máxima.
Se falso, o valor numérico ou a data especificada no componente do formulário deve ser menor ou igual ao valor numérico ou à data especificada para a propriedade máxima.
  • Caixa numérica
  • Escalonador Numérico
  • Seletor de datas
exclusiveMinimum
Booleano
Se verdadeiro, o valor numérico ou a data especificada no componente do formulário deve ser maior que o valor numérico ou a data especificada para a propriedade mínima.
Se falso, o valor numérico ou a data especificada no componente do formulário deve ser maior ou igual ao valor numérico ou à data especificada para a propriedade mínima.
  • Caixa numérica
  • Escalonador Numérico
  • Seletor de datas
minLength
Sequência de caracteres
Especifica o número mínimo de caracteres permitidos em um componente. O comprimento mínimo deve ser igual ou superior a zero.
  • Caixa de texto
maxLength
Sequência de caracteres
Especifica o número máximo de caracteres permitidos em um componente. O comprimento máximo deve ser maior que zero.
  • Caixa de texto
length
Sequência de caracteres
Especifica o número exato de caracteres permitidos em um componente. O comprimento deve ser igual ou maior que zero.
  • Caixa de texto
fractionDigits
Sequência de caracteres
Especifica o número máximo de casas decimais permitidas em um componente. fractionDigits deve ser igual ou maior que zero.
  • Caixa numérica com tipo de dados flutuante ou decimal
pattern
Sequência de caracteres
Especifica a sequência dos caracteres. Um componente aceita os caracteres se eles estiverem em conformidade com o padrão especificado.
A propriedade pattern mapeia para o padrão de validação do componente de formulário adaptável correspondente.
  • Todos os componentes de formulários adaptáveis que estão mapeados para um esquema XSD

Frequently asked questions

Como faço para saber qual elemento na árvore está associado a qual elemento XML?
Quando você clica duas vezes em um elemento no Localizador de conteúdo, um pop-up exibe um nome de campo e uma propriedade chamada bindRef . Essa propriedade mapeia o elemento de árvore para o elemento ou atributo no esquema.
O campo bindRef mostra a associação entre um elemento de árvore e um elemento ou atributo em um esquema.
Os atributos têm um @ símbolo em seu bindRef valor para diferenciá-los dos elementos. Por exemplo, /config/projectDetails/@duration .
Por que não consigo arrastar elementos individuais de um subformulário (estrutura gerada a partir de qualquer tipo complexo) para subformulários repetitivos (os valores minOccours ou maxOccurs são maiores que 1)?
Em um subformulário repetível, é necessário usar o subformulário completo. Se desejar apenas campos seletivos, use a estrutura inteira e exclua os não desejados.
Tenho uma estrutura longa e complexa no Localizador de conteúdo. Como posso encontrar um elemento específico?
Você tem duas opções:
  • Percorrer a estrutura em árvore
  • Use a caixa Pesquisar para localizar um elemento
O que é um bindRef?
A bindRef é a conexão entre um componente de formulário adaptável e um elemento ou atributo de esquema. Determina o local em XPath que o valor capturado desse componente ou campo está disponível no XML de saída. A também bindRef é usada ao pré-preencher um valor de campo a partir do XML pré-preenchido (pré-preenchido).