O Adobe recomenda o uso da captura de dados moderna e extensível Componentes principais para criação de um novo Forms adaptável ou adição de Forms adaptável às páginas do AEM Sites. Esses componentes representam um avanço significativo na criação do Forms adaptável, garantindo experiências de usuário impressionantes. Este artigo descreve a abordagem mais antiga para criar o Forms adaptável usando componentes de base.
A criação de um formulário adaptável usando um esquema XML como modelo de formulário requer compreensão básica de esquemas XML. Além disso, é recomendável ler o conteúdo a seguir antes deste artigo.
Experience Manager Forms O oferece suporte à criação de um formulário adaptável usando um esquema XML existente como o modelo de formulário. Esse esquema XML representa a estrutura em que os dados são produzidos ou consumidos pelo sistema de back-end em sua organização.
Os principais recursos do uso de um esquema XML são:
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 |
|
Caixa numérica |
xs:date |
Seletor de data |
xs:enumeration
|
Lista suspensa |
Qualquer elemento de tipo complexo | Painel |
Este é 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 o esquema XML tenha apenas um elemento raiz. Não há suporte para um esquema XML com mais de um elemento raiz.
Você pode adicionar os seguintes atributos aos elementos do Esquema XML para adicionar propriedades especiais aos campos do formulário adaptável associado.
Propriedade do esquema | Uso no formulário adaptável | Compatível com o |
---|---|---|
use=required |
Marca um campo como obrigatório |
Atributo |
default="default value" |
Adiciona um valor padrão | Elemento e atributo |
minOccurs="3" |
Especifica o mínimo de ocorrências (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) |
Quando você arrasta um elemento de esquema para um formulário adaptável, uma legenda padrão é gerada por:
Por exemplo, se você adicionar a variável userFirstName
elemento de esquema, a legenda gerada no formulário adaptável é User First Name
.
Você pode 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 |
|
String |
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. |
|
|
String |
Especifica o limite superior para valores numéricos e datas. Por padrão, o valor máximo é incluído. |
|
|
String |
Especifica o limite inferior para valores numéricos e datas. Por padrão, o valor mínimo é incluído. |
|
|
Booleano |
Se true, o valor numérico ou a data especificada no componente do formulário deverá ser menor que o valor numérico ou a data especificada para a propriedade máxima. Se false, 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 maximum. |
|
|
Booleano |
Se true, o valor numérico ou a data especificada no componente do formulário deverá ser maior que o valor numérico ou a data especificada para a propriedade minimum. Se false, 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 minimum. |
|
|
String |
Especifica o número mínimo de caracteres permitidos em um componente. O comprimento mínimo deve ser igual ou maior que zero. |
|
|
String |
Especifica o número máximo de caracteres permitidos em um componente. O comprimento máximo deve ser maior que zero. |
|
|
String |
Especifica o número exato de caracteres permitidos em um componente. O comprimento deve ser igual ou maior que zero. |
|
|
String |
Especifica o número máximo de casas decimais permitidas em um componente. O número de dígitos da fração deve ser igual ou maior que zero. |
|
|
String |
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. |
|
Como sei qual elemento na árvore está associado a qual elemento XML?
Quando você clica duas vezes em um elemento no Localizador de conteúdo, uma janela 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.
A variável bindRef
o campo 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 seus bindRef
para diferenciá-los dos elementos. Por exemplo, /config/projectDetails/@duration
.
Por que não consigo arrastar elementos individuais de um subformulário (estrutura gerada de qualquer tipo complexo) para subformulários repetíveis (os valores minOccours ou maxOccurs são maiores que 1)?
Em um subformulário repetível, você deve usar o subformulário Concluído. Se desejar apenas campos seletivos, use a estrutura inteira e exclua os indesejados.
Tenho uma estrutura complexa longa no Localizador de conteúdo. Como posso encontrar um elemento específico?
Você tem duas opções:
O que é um bindRef?
A bindRef
é a conexão entre um componente de formulário adaptável e um elemento ou atributo de esquema. Ele dita que XPath
em que o valor capturado deste componente ou campo está disponível no XML de saída. A bindRef
também é usado ao preencher previamente um valor de campo do XML preenchido previamente (preenchido previamente).