XForms - XForms

XForms é um formato XML usado para coletar entradas de formulários da web . XForms foi projetado para ser a próxima geração de formulários HTML / XHTML , mas é genérico o suficiente para que também possa ser usado de maneira autônoma ou com linguagens de apresentação diferentes de XHTML para descrever uma interface de usuário e um conjunto de tarefas comuns de manipulação de dados .

O XForms 1.0 (Terceira Edição) foi publicado em 29 de outubro de 2007. A especificação original do XForms tornou-se uma recomendação oficial do W3C em 14 de outubro de 2003, enquanto o XForms 1.1, que introduziu uma série de melhorias, atingiu o mesmo status em 20 de outubro de 2009.

Diferenças dos formulários da web

Em contraste com os formulários da web originais (originalmente definidos em HTML), os criadores de XForms usaram uma abordagem model – view – controller (MVC). O modelo consiste em um ou mais modelos XForms que descrevem os dados do formulário, as restrições desses dados e os envios. A visualização descreve quais controles aparecem no formulário, como eles são agrupados e a quais dados estão associados. CSS pode ser usado para descrever a aparência de um formulário.

Um documento XForms pode ser tão simples quanto um formulário da web (especificando apenas o elemento de envio na seção do modelo e colocando os controles no corpo), mas XForms inclui muitos recursos avançados. Por exemplo, novos dados podem ser solicitados e usados ​​para atualizar o formulário enquanto ele está em execução, da mesma forma que usar XMLHttpRequest / AJAX, exceto sem scripts. O autor do formulário pode validar os dados do usuário em relação aos tipos de dados do esquema XML , exigir certos dados, desabilitar os controles de entrada ou alterar as seções do formulário dependendo das circunstâncias, impor relações particulares entre os dados, inserir matrizes de comprimento variável de dados, gerar valores calculados derivados dos dados do formulário , preencha as entradas usando um documento XML, responda às ações em tempo real (versus no momento do envio) e modifique o estilo de cada controle dependendo do dispositivo em que são exibidos (navegador de desktop versus celular versus apenas texto, etc.). Freqüentemente, não há necessidade de qualquer script com linguagens como JavaScript. No entanto, XForms inclui um modelo de evento e ações para implementar comportamentos de formulário mais complexos. Ações e manipulação de eventos são especificados usando o dialeto XForms XML em vez de linguagens de script mais comuns como JavaScript.

Como os formulários da web, os XForms podem usar vários protocolos de envio não XML ( multipart / form-data , application / x-www-form-urlencoded ), mas um novo recurso é que os XForms podem enviar dados para um servidor no formato XML. Os documentos XML também podem ser usados ​​para preencher previamente os dados no formulário. Como o XML é um padrão, existem muitas ferramentas que podem analisar e modificar os dados no envio. Também existem ferramentas semelhantes para formulários legados. O próprio XForms é um dialeto XML e, portanto, pode criar e ser criado a partir de outros documentos XML usando XSLT . Usando transformações, os XForms podem ser criados automaticamente a partir de esquemas XML e os XForms podem ser convertidos em formulários XHTML.

Suporte de software

No momento em que este livro foi escrito, nenhum navegador da Web amplamente usado oferece suporte nativo a XForms. No entanto, existem vários plug-ins de navegador, extensões do lado do cliente e soluções de servidor / cliente. O seguinte lista algumas implementações:

  • A extensão Firefox XForms fazia parte do Projeto Mozilla. O suporte do XForms 1.0 SE não está completo, mas cobre a maior parte da especificação, com uma exceção notável de repetição baseada em atributos usada em tabelas HTML. A extensão estava disponível para Firefox 2 e Firefox 3, mas não foi atualizada para suportar Firefox 4 e superior. Em julho de 2011, o desenvolvedor líder escreveu que o suporte a XForms não seria mais atualizado. O suporte para XForms acabou sendo preterido no Firefox 19.
  • O IBM Lotus Forms suporta o desenvolvimento e implementação de formulários XML puros baseados em XForms. Downloads de teste estão disponíveis em um ambiente de design visual baseado em Eclipse e um visualizador do lado do cliente que pode executar formulários baseados em XForms no navegador da web e como um aplicativo de desktop independente.
  • O OpenOffice.org versões 2.0 e superiores e o LibreOffice suportam XForms.

Tecnologias de implementação comparadas

FormFaces , AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon e Smartsite Forms são baseados na tecnologia Ajax. A quantidade de processamento do lado do servidor e do lado do cliente varia entre essas implementações. Por exemplo, Ubiquity XForms, FormFaces e XSLTForms fornecem processamento 100% XForms do lado do cliente e atualizações do modelo de dados via processamento Ajax puro no padrão XForms. Os outros usam a transcodificação de processamento de XForms Java / .NET do lado do servidor para marcação Ajax antes de entregar o conteúdo ao navegador. Ambas as técnicas podem funcionar em vários navegadores. Cada implementação é significativamente diferente em relação a dependências, escalabilidade, desempenho, licenciamento, maturidade, tráfego de rede, capacidade offline e compatibilidade entre navegadores. Os arquitetos de sistema devem avaliar essas restrições em relação às suas necessidades para determinar os riscos e objetivos potenciais.

Plug-ins como o FormsPlayer e outras tecnologias do lado do cliente também podem ter alguns benefícios: como se integram ao navegador, funcionam com arquiteturas de servidor existentes, podem ser mais responsivos e exigem menos buscas no servidor.

A compensação entre as soluções de plug-in do lado do servidor e do cliente é onde o software é mantido; cada cliente deve instalar o plug-in necessário ou a arquitetura do servidor deve ser alterada para acomodar a tecnologia de linguagem do mecanismo do transcodificador XForms. Em teoria, é possível combinar ambas as soluções, por exemplo, testando o navegador para uma implementação de XForms do lado do cliente e servindo XForms nativos nesse caso, e padronizando para uma solução de servidor em outros casos.

Ubiquity XForms, FormFaces e XSLTForms fornecem uma solução "zero software" no cliente ou servidor: nenhum novo software precisa ser instalado no cliente e a solução pode ser usada em conjunto com qualquer arquitetura do lado do servidor. Isso é possível porque FormFaces e Ubiquity XForms são escritos 100% em Ajax e porque XSLTForms é escrito em XSLT e em Ajax. A desvantagem é que, em comparação com outras soluções, mais código é inicialmente baixado para o cliente (o código pode ser armazenado em cache no cliente) e o FormFaces ainda não oferece suporte à validação do esquema XML. Além disso, os envios de XForms com comportamento de substituição de "todos" normalmente não resultam em substituições de página reais e, portanto, interrompem o comportamento normal do botão Voltar.

Arquitetura do aplicativo XRX

Como o XForms facilita a edição de dados XML complexos, há muitas vantagens em usar XForms com bancos de dados XML nativos que frequentemente aproveitam as interfaces REST . A combinação de três tecnologias (XForms no cliente, interfaces REST e XQuery no servidor) é conhecida coletivamente como desenvolvimento de aplicativos XRX . O XRX é conhecido por sua arquitetura simples que usa XML tanto no cliente quanto no banco de dados e evita as transformações em estruturas de dados relacionais ou de objetos. Consulte " XRX: Simples, elegante, disruptivo ".

XForms para dispositivos móveis

Benefícios

XForms oferece benefícios específicos quando usado em dispositivos móveis:

  • As interfaces de usuário que usam XForms requerem menos viagens de ida e volta com o servidor e, nesse sentido, são mais autocontidas do que as interfaces de usuário que usam formulários HTML 4.
  • As capacidades dos dispositivos móveis variam muito; consequentemente, a quantidade de trabalho envolvida na geração de diferentes interfaces de usuário para diferentes dispositivos é uma preocupação particular no mundo móvel. O XForms foi projetado desde o início para permitir que os formulários sejam descritos independentemente do dispositivo, o que reduz a quantidade de trabalho necessária para atingir vários dispositivos.
  • XForms reduz a necessidade de JavaScript, o que é particularmente interessante, pois o suporte a JavaScript varia muito em dispositivos móveis e não pode ser amplamente confiável. Isso também permite que os sistemas nos quais o JavaScript está desabilitado por questões de segurança continuem operando sem falhas.

Implementações

Enketo

Enketo é um cliente XForms no navegador construído usando javascripts.

Xfolite

Xfolite é um cliente XForms leve para a plataforma J2ME. Ele foi originalmente criado no Nokia Research Center e inclui uma implementação DOM e XPath 1.0, bem como um mecanismo XForms que implementa a especificação XForms 1.1 quase completamente. O XFolite foi lançado como software beta e não deve ser considerado pronto para uso em produção como tal. No entanto, ele contém um mecanismo XForms maduro que foi projetado para funcionar com diferentes implementações de IU. Esquemas XML e CSS estão fora do escopo do projeto, no entanto. O Xfolite é open source e licenciado sob a licença LGPL, mas não está sendo desenvolvido ativamente.

JavaRosa

JavaRosa é um cliente XForms escrito em Java Mobile Edition (J2ME) e oferece suporte a uma ampla variedade de dispositivos, desde smartphones e PDAs de última geração com telas grandes e memória abundante, até dispositivos básicos como o Nokia 6085 e 2630. Fazendo JavaRosa utilizável em dispositivos de poucos recursos é uma das maiores prioridades do projeto. JavaRosa 1.0 Alpha foi lançado em setembro de 2010.

ODK Collect

ODK Collect faz parte do Open Data Kit e é um cliente XForms para dispositivos Android. O cliente exibe o XForm em ordem sequencial obedecendo à lógica do formulário, às restrições de entrada e às subestruturas de repetição. Os usuários trabalham com os prompts e salvam o envio como concluído ou parcialmente concluído (permitindo revisão posterior) e podem gravar as fotos, bem como sua localização, usando a câmera embutida do telefone e o dispositivo GPS, respectivamente.

Grupo Completo

Group Complete é um sistema de coleta de dados móveis que inclui Group Complete Mobile (GC Mobile), um cliente XForms para dispositivos Android. O GC Mobile fornece uma interface para criar XForms no dispositivo móvel, bem como entrada de dados XForms com recursos semelhantes ao ODKCollect. Formulários e dados são armazenados em bancos de dados CouchDB, permitindo que trabalhadores móveis façam alterações em formulários e dados enquanto estão offline, colaborem na entrada de dados e compartilhem dados coletados com membros da equipe e consumidores de dados de backoffice em tempo real. O Group Complete é compatível com todos os principais sistemas ODK. O Group Complete foi descontinuado em março de 2012 e o código lançado em fevereiro de 2013 como código aberto.

Veja também

Referências

  1. ^ Pemberton, Steven (junho de 2014). "Live XML Data". XML London 2014 : 96–102. doi : 10.14337 / XMLLondon14.Pemberton01 . ISBN 978-0-9926471-1-7.
  2. ^ Mozilla: Projeto Mozilla XForms - Download . Acessado em 12/03/2013.
  3. ^ Philipp Wagner: The Future of Mozilla XForms , 13 de julho de 2011
  4. ^ Mozilla Developer Network (MDN): XForms . Acessado em 12/03/2013.
  5. ^ Apache OpenOffice: [1] . Acessado em 2020-05-24.
  6. ^ The Document Foundation: XML Form Documents (XForms) . Acessado em 12/03/2013.
  7. ^ Anúncio do site completo do Grupo , 03/2012
  8. ^ Anúncio de conclusão do grupo no blog , 02/2013

links externos