• Nenhum resultado encontrado

Diretrizes para desenvolvimento da camada de apresentac~ao de sistemas

4.1 Formatac~ao da apresentac~ao

4.1.6 Uso de tecnologias baseadas em XML

O uso de XML 4] vemse tornando bastante popular e o numero de tecnologias de suporte a esta tem crescido bastante nos ultimos tempos. XML pode ser usada com diferentes propositos, inclusive para auxiliar o processo de montagens de paginas din^amicas 4]. Existem mecanismos simples e poderosos para transformac~ao de documentos XML em paginas HTML. Uma tecnologia que da suporte a este tipo de transformac~ao e o XSL (Extensible Stylesheet Language) 8]. O uso desta abordagem se resume a manipular documentos XML, que representam os dados da aplicac~ao, e por m formata-los para que possam ser visualizados pelo Web browser. Esta formatac~ao e feita atraves do uso da linguagem de transformac~ao XSL. O trecho abaixo mostra um exemplo bem simples de um documento XML que representa os dados de um usuario da aplicac~ao. Neste exemplo um usuario possui tr^es informac~oes: o nome, login e a data do ultimo acesso.

<usuario>

<nome>Gibeon Aquino</nome> <login> gsaj </login>

<ultimoacesso> 10/03/2002 </ultimoacesso> </usuario>

Para que estas informac~oes possam ser vistas pelo usuarioWeb no browsere necessario escrever codigo XSL que guie a transformac~ao do documento XML em uma vers~ao HTML. O trecho abaixo exemplica um documento XSL que dene as transformac~oes:

1: <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> 2: <xsl:template match="/"> 3: <HTML><BODY> 4: <xsl:apply-templates select="/usuario" /> 5: </BODY></HTML> 6: </xsl:template> 7: <xsl:template match="/usuario">

8: <H1> Login = <xsl:value-of select="./login" /> </H1>

9: Ultimo Acesso de <b> <xsl:value-of select="./nome" /> </b> 10: foi no dia <b> <xsl:value-of select="./ultimoacesso" /> </b> 11: </xsl:template>

12: </xsl:stylesheet>

Como pode ser visto no trecho acima, um documento XSL possui algumastagsespeciais que localiza os elementos contidos no documento XML e consultam seus valores. Atag xsl:template indica a denic~ao de um template e possui um atributo denominado match, que indica a que elemento do documento XML o template deve ser aplicado. No

exemplo anterior, o primeiro template (iniciado na linha 2) e aplicado a um elemento abstrato que referencia o documento XML como um todo. O resultado desta aplicac~ao e a abertura de uma pagina HTML (<HTML><BODY>), a aplicac~ao de outro template

ao elemento usuarioe, por m, o fechamento das tags de HTML (</BODY></HTML>).

O segundo template, que e aplicado para cada elemento usuario, seleciona os valores

contidos nos subelementoslogin, nomee ultimoacessomediante o uso da tagde XSL xsl:value-of, inserindo-os no meio de um trecho de codigo HTML. O resultado nal

do processamento deste XSL pode ser visto a seguir:

<HTML><BODY>

<H1> Login = gsaj </H1>

Ultimo Acesso de <b> Gibeon Aquino </b> foi no dia <b> 10/03/2002 </b>

</BODY></HTML>

De fato, XSL e muito simples e o seu objetivo e apenas de formatac~ao da pagina. Por este motivo, ela evita que o desenvolvedor misture codigo de processamento da requisic~ao com a logica de formatac~ao da apresentac~ao. Esta abordagem, apesar de interessante, apresenta algumas limitac~oes:

 XSL e uma linguagem bem limitada. Por isso, fazer alguns tipos de processamento

e tratamento dos dados (documento XML), e uma tarefa ardua e custosa ou, em muitos caso, imposs vel.

 Necessidade de conhecimento de uma terceira linguagem. Apesar da linguagem ser

simples, e necessario o conhecimento de alguns elementos basicos da sua sintaxe para que o desenvolvedor possa usa-la de forma correta e alcancar seus objetivos nais. O modelo de desenvolvimento com XSL e bastante diferente do modelo procedural da maioria das linguagens de programac~ao ela e baseada no casamento de elementos XML e na aplicac~ao detemplates aos mesmos.

 Os construtores da linguagem XSL geralmente se misturam com os de HTML,

o que causa uma certa confus~ao. Para transformac~oes de XML para HTML e necessaria a inclus~ao da parte estatica do documento HTML diretamente no do- cumento XSL. Isto faz com que os construtores das duas linguagens quem mistu- rados, o que pode tornar o documento XSL ileg vel em casos onde a transformac~ao ou a pagina nal e relativamente complexa.

 Causa umoverhead desnecessario em aplicac~oes cujos dados n~ao s~ao baseados em

XML. Em varias aplicac~oes, os dados ou entidades do sistemas s~ao representados por objetos Java, o que torna o sistema elegante e intuitivo. Estes tipos de apli- cac~oes precisam car convertendo os seus objetos Java em representac~oes XML para que ela possa ser processada por um XSL e gerar uma resposta HTML que sera visualizada pelo cliente Web. Esta convers~ao implica em overhead de pro- cessamento, o que pode custar caro para alguns tipos de aplicac~oes, e tambem aumenta a complexidade do programa, ja que torna-se necessario denir rotinas de convers~ao Java em XML para cada entidade do sistema que necessitar ser apre- sentada para o clienteWeb.