recomendacao do World Wide Web Consortium (W3C) para gerar linguagens de marcacao para necessidades especiais. (1) E um dos subtipos da SGML (acronimo de: Standard Generalized Markup Language, ou: Linguagem Padronizada de Marcacao Generica), capaz de descrever diversos tipos de dados. Seu proposito principal, e a facilidade de compartilhamento de informacoes atraves da internet. (2) Em meados da decada de 1990, o W3C comecou a trabalhar em uma linguagem de marcacao que combinasse a flexibilidade da SGML com a simplicidade da HTML. O principio do projeto era criar uma linguagem que pudesse ser lida por software e integrar-se com as demais linguagens. Sua filosofia seria incorporada por varios principios importantes: (2)Separacao entre conteudo e formatacao;Simplicidade e legibilidade, tanto para humanos quanto para computadores;Possibilidade de criacao de tags sem limitacao;Criacao de arquivos para validacao de estrutura (chamados DTDs);Interligacao de bancos de dados distintos;Concentracao na estrutura da informacao, e nao na sua aparencia.O XML e um formato para a criacao de documentos com dados organizados de forma hierarquica, como se ve, frequentemente, em documentos de texto formatados, imagens vetoriais ou bancos de dados. (2) Por sua vez, o XSL Transformations, ou XSLT (eXtensible Stylesheet Language for Transformation - linguagem extensivel para folhas de estilo de transformacoes), e uma linguagem de marcacao XML usada para criar documentos XSL que, por sua vez, definem a apresentacao dos documentos XML nos browsers e outros aplicativos que a suportem. (3) E importante observar que o documento XSL nao altera o documento XML original, ou seja, nao cria outro documento. Neste sentido, ele (o documento XSL) atua como as folhas de estilos CSS: apenas determina como o browser apresenta o documento XML, ao qual esta associado ou anexado (de uma forma bem parecida a usada para associar uma folha de estilos CSS a um documento (X)HTML). O browser recebe o documento XML original, na integra, como ele foi criado e apresenta-o como o documento XSL determina. (3) Mas ha uma diferenca importante entre XSLT e CSS: o documento XSL pode adicionar conteudo a apresentacao do documento XML no browser e tambem, pode esconder conteudo do XML apresentado no browser. Portanto, XSLT possibilita transformacoes mais potentes do que as folhas de estilo CSS. (3) XSLT e parte da especificacao XSL (as outras partes sendo XSL-FO e XPath). Como a XML e a HTML, a especificacao XSLT e uma recomendacao desenvolvida pelo W3C. (3) Pela sua portabilidade, ja que e um formato que nao depende das plataformas de hardware ou de software, um banco de dados pode, atraves de uma aplicacao, escrever em um arquivo XML, e um outro banco distinto pode ler, entao, estes mesmos dados. (3) Como podemos ver, ao combinarmos PHP, XML e XSLT, podemos criar relatorios que podem ser facilmente modificados porque, se quisermos modificar a aparencia dos relatorios, basta mudar os arquivos XSL, se quisermos modificar a estrutura do banco de dados, basta alterarmos o codigo PHP que gera os dados em XML (veremos isso adiante). Podemos, inclusive, disponibilizar varios leiautes de relatorios a partir dos mesmos dados, apenas com um XSL diferente para cada leiaute.