Seção 2: Usuários Existentes

Q.2.5: Como controlar a formatação de XML?

Use uma planilha de estilo CSS ou XSLT2.

No HTML, o estilo padrão foi incluído no navegador porque o tagset do HTML era predefinido e já programado nos navegadores. Isto ainda é verdade para XHTML e HTML5 até certo ponto. Em outros XML, onde você pode definir sua própria tagset, não se pode ser exigido de navegadores que adivinhem ou saibam com antecedência quais nomes você irá utilizar e o que eles significam, então você precisa de uma planilha de estilo se deseja uma apresentação de texto formatada.

Navegadores que leêm XML aceitam e usam a planilha de estilo CSS de forma mínima, mas você também pode usar uma planilha de linguagem XSLT mais poderosa para transformar o seu XML em HTML -- as quais, navegadores, é claro, já saibam como apresentar (e visto que o HTML ainda possa utilizar a planilha CSS). Deste modo você tem todos os benefícios do gerenciamento do documento usando XML, mas não vai precisar se preocupar com seus leitores precisando de conhecimento sobre XML nos seus navegadores.

Essa transformação é geralmente feita pelo proprietário do documento, no seu servidor, então você ainda assim tem o HTML, possivelmente desatento ao fato de que era originalmente XML. Mas é também possível usar o (um tanto limitado) transformador embutido XSLT 1.0 em alguns navegadores, e operadores de serviço podem agora também usar Saxon CE, o qual é uma versão de XSLT2 disponível para download usada dentro de um navegador.

Mike Brown escreve:

XSLT é um documento XML de processamento de linguagem que utiliza fontes de código que está por acaso está escrita em XML. Um documento XSLT declara um grupo de regras para um processador XSLT usar quando este interpretar os conteúdos de um documento XML. Estas regras informa o processador XSLT como gerar uma nova estrutura de dados de aparência XML e como estes dados deveriam ser emitidos - como um documento XML, assim como um documento HTML, bem como textos simples, ou talvez em algum outro formato.

Esta transformação pode ser feita ou dentro do navegador, ou pelo servidor antes de o arquivo ser enviado. Transformação no navegador destitui o processo do servidor, mas pode apresentar dependências ao navegador, acarretando a exclusão de alguns dos seus leitores. Transformação nos servidores torna o processo independente do navegador, mas apresenta uma carga de processamento mais pesada no servidor.

Com qualquer sistema onde arquivos podem ser vistos aleatoriamente por usuários arbitrários, o autor não tem como saber quais fontes (tais como fonte) estão no sistema do usuário, então o mesmo cuidado é necessário com fontes que utilizam HTML. A fim de conseguir uma planilha de um arquivo XML para um processo isolado no navegador, inclua uma das planilhas de declaração:


<?xml-stylesheet href="foo.xsl" type="text/xsl"?> 
<?xml-stylesheet href="foo.css" type="text/css"?> 
      

(substituindo a URI da sua planilha, é claro). Veja http://www.w3.org/TR/xml-stylesheet/ para detalhes na íntegra. O Cascata de Especificação de Planilhas de Estilo (CSS) oferece uma sintaxe simples para designar estilo aos elementos, e tem sido implementada na maioria dos navegadores.

Dave Pawson Mantém um SXL FAQ compreensível em http://www.dpawson.co.uk/xsl/ , e o seu livro ( Pawson, 2002 ) [o livro raposa] está disponível em O’Reilly. XSL utiliza sintaxe XML (uma planilha XSL é apenas um arquivo XML) e tem o suporte amplo da maioria dos vendedores de navegadores ( veja as questões em navegadores e outros softwares ). XSL vêm em duas categorias:

  • O XSL propriamente dito, que é uma linguagem de formatação pura, dando caminho para Formatted Objects (FO), que necessita de um formatador de texto como FOP , XEP , ou outros que criam saídas que imprimam (PDF) (mas veja Alternativas para XSL:FO ). XSL direto com capitulação PDF;

  • XSLT (T para Transformação), o qual é uma linguagem para especificar conversão de XML em HTML ou dentro do navegador ou nos servidores antes da transmissão. Podem também especificar conversão de um vocabulário XML para outro, e de um XML para um texto simples (o que pode ser qualquer formato, incluindo RTF e L A T E X ).

Todas as versões atuais do Microsoft Internet Explorer, Firefox, Chrome, Mozilla, Safari, e Opera operam o XSLT 1.0 dentro do navegador. Fique atento para navegadores obsoletos como MSIE5.5 que precisa de cirurgia pós instalação para remover os, há muito obsoletos, WD-xsl e os substituir com os processadores de Transformação XSL atuais.

WYSIWYG para XSL

Houveram tentativas para produzir editores pseudo-WYSIWYG para criação de planilhas XSL[T], mas eles têm sido restritos em sua maioria a um simples mapeamento entre elementos de entrada e saída (eg um DocBook para um HTML p ). Qualquer coisa além disso parece ser fadado a falha devido a complexidade infinita do que as pessoas querem fazer com a sua informação. Se você acessar o banco de dados ACM, veja artigo por Pietriga, Vion-Dury, e Quint sobre VXT , provenientes da ACM DocEng’01 (Atlanta).

Gerando HTML no servidor

Existe uma necessidade crescente de processadores utilitários como Cocoon e outros, que permitem a criação, armazenamento, e gerenciamento da sua informação em XML mas que os servem auto-convertidos para HTML ou algum outro formato, permitindo então que a saída seja usada por qualquer navegador. XSLT é também amplamente usado para converter XML em formatos não-SGML para entrada em outros sistemas (por exemplo, para transformar XML em L A T E X para configuração de tipo).

Alternativas para XSL:FO

Ao invés de gerar PDF através de um processador FO, é possível usar XSLT2 para transformar XML em L A T E X ara configuração de tipo PDF (assim como é feito para versões impressas desse FAQ, do DocBook para o L A T E X ). Isto tem a vantagem de ser capaz de usar a extensa biblioteca do L A T E X de módulos de formato pré-escritos (‘packages’), o que impede muito daquela reinvenção cíclica atualmente requerida com XSL:FO.

Alternativamente xmltex de David Carlisle lê XML diretamente, oferecendo outra solução prática, senão experimental, para configuração de tipo XML. Um uso de um sistema T E X que possa configurar arquivos XML é um processador de apoio para XSL:FO, serializado como XML. O Passive T E X de Sebastian Rahtz ysa xmltex para atingir este objetivo.

O T E X FAQ está em http://www.tex.ac.uk/faq . Silmaril mantém uma versão online do livro de Peter Flynn sobre L A T E X , Informação de Formatação , o qual contém alguns exemplos de conversão XSLT2 ( Flynn, 2014 ).

Sistemas SGML usavam um mecanismo de planilha similar: alguns dos mais comuns eram os FOSI (Instância de Especificação de Saída Formatada), o qual era o padrão de defesa e a aplicação na engenharia industrial, especialmente quando se usando os editores Arbotext (Adept, na época Epic, e provavelmente algo novo na semana seguinte); as planilhas DynaText/DynaWeb usadas em publicação SGML para a web; e as planilhas Synex usadas em navegadores baseados nos mecanismos Synex (eg Panorama, o qual parte do perfil de interface foi parcialmente adotado em XMetaL), a especialidade da qual designers persistem no navegador DocZilla.