Projeto Final
João Frederico Pereira
João Duarte
2018-01-21 |
21 de Janeiro de 2018 |
Universidade do Minho
Palavras-chave:
XML,XSL,HTML,PDF,Website,Publicação Eletrónica
Este projeto surge inserido no seguimento do trabalho desenvolvido ao longo do ano
na unidade curricular de Publicação Eletrónica,
e visa integrar e aplicar o maior número de conhecimentos adquiridos sobre as linguagens
HTML e PDF com o intuito de concretizar os objetivos propostos.
Partindo deste princípio, recorreu-se ao auxílio do software Oxygen,
XML Editor
, de modo a poder ter-se uma maior margem de manobra e
auxílio na utilização da linguagem de anotação
,
eXtensible Markup Language
A ideia principal da elaboração deste projeto seria estudar e aplicar o maior número
de potencialidades das linguagens XML, XML Schema e XSL à
redação e publicação de um relatório.
Para isto, procedeu-se à redação do projeto em XML, gerado a partir de um Schema,
que seria transformado com recurso a stylesheets para a criação
de uma página HTML e para a redação de um PDF.
Após a redação dos documentos em XML, procedeu-se à elaboração das stylesheets em
XSL
,
Extensible Stylesheet Language
,
devido ao facto de este incorrer de uma neutralidade e independência relativamente
às plataformas de software e hardware para as quais se direciona, ou seja, permite
que a informação do formato XML
seja associada com determinados elementos de modo a produzir um formato original.
No caso do nosso projeto, pretende-se recorrer à criação das stylesheets para a transformação
do XML num documento HTML através do XSLT, e, ainda,
redirecionar o XML segundo objetos de formatação para apresentação gráfica, através
do XSL-FO. Deste modo obtivemos então uma página HTML e um ficheiro em formato PDF
com a informação do nosso
projeto redigida em XML devidamente organizada e estruturada.
Com base nos dataset fornecido, recorremos a diversos estágios para a elaboração
do projeto. Como foi referido anteriormente, numa primeira fase
recorreu-se a uma análise do material sobre o qual teríamos de trabalhar, sendo prontamente
desenvolvido um esquema estrutural do documento, SCHEMA, que possibilitasse a transposição
do
material bibliográfico em análise, para um documento XML passível de ser trabalhado.
Concluída a elaboração do SCHEMA e a redação do documento em XML, procedeu-se então
à criação das stylesheets
para a geração das páginas HTML (XSLT) e, posteriormente, para a criação do documento
em formato PDF (XSL-FO).
Atualmente, com os avanços tecnológicos, os métodos de escrita treadicionais têm vindo
a ser preteridas em função da via digital de apresentação e criação de documentos,
uma vez que esta se apresenta como uma
ferramenta bastante mais vantajosa, nomeadamente em termos de dinamismo, portabilidade,
rigor e competência com que a informação é apresentada. , Neste sentido, a publicação
eletrónica apresenta-se
como uma plataforma que nos permite gerar e analisar informação de uma forma automatizada,
não perdendo de vista os fatores literários, visuais e linguisticos
que caracterizam a informação.
Este relatório, por exemplo, foi redigido de acordo com um esquema estrutural dotado
de uma hierarquia, que visa aumentar a facilidade e simplicidade com que se efetua
o seu
preenchimento, e, visa retratar o projeto final da Unidade Curricular de Publicação
Eletrónica.
Como já foi mencionado no Abstract, os objetivos deste projeto passam pela redação
de um conjunto de paginas em PDF resultantes de uma digitalização de um livro pessoal
de recortes de imprensa
num documento escrito em XML, onde posteriormente será efetuada a sua transformação,
com recurso a stylesheets em XSL, numa página HTML e num ficheiro PDF.
De maneira a esclarecer algumas definições de uma forma simples e intuitiva, possibilitando
uma fácil compreensão por parte do leitor, acerca dos tipos de ferramentas, formatos,
passos e documentos criados e utilizados ao longo da elaboração deste projeto, delineamos
uma série de estágios sobre as tarefas a realizar, nomeadamente:
- Análise Documental: nesta etapa procedeu-se à análise do conjunto de páginas cedidas
como objeto de estudo, de modo a poder delinear um plano edição das mesmas, e posteriormente
efetuar-se
o levantamento dos seus dados.
- Criação do XML Schema: nesta etapa desenvolveu-se um XML Schema capaz de definir a
estrutura do documento XML correspondente à base de informação em análise.
- Criação do XML: nesta etapa procedeu-se à criação e ao desenvolvimento de um documento
XML com base no XML Schema desenvolvimento anteriormente.
- Criação de uma stylesheet XSLT para geração de HTML: nesta etapa pretendeu-se efetuar
o desenvolvimento de uma stylesheet XSLT, associada ao documento XML anteriormente
elaborado,
que fosse capaz gerar uma página HTML com o conteúdo apresentado no documento XML,
"estilizado" e especificando segundo as condições impostas e desenvolvidas na stylesheet.
- Criação de stylesheet XSLFO para geração de PDF: nesta estágio procedeu-se ao desenvolvimento
de uma stylesheet que fosse capaz de gerar uma página PDF com o conteúdo apresentado
no documento XML
seguindo as especificações apresentadas na stylesheet.
- Criação do XML para a redação do relatório do projeto e consequente transformação
do mesmo para HTML e PDF.
2. Contextualização Teórica
Neste espaço pretende-se tornar explicitos alguns termos usados ao longo do projeto,
assim como dar a entender algumas definições de uma forma simples de maneira a
facilitar a compreensão do leitor, sobre os diversos formatos, tipos de documentos
e diferentes ferramentas existentes, bem como as utilizadas na construção do projeto
final apresentado
O XML,acrónimo para “
eXtensible Markup Language
”, é uma linguagem de computação cuja simplicidade a torna a linguagem maioritariamente
utilizada
para a partilha de informação estruturada entre diferentes computadores e aplicações
assim como, no desenvolvimento de páginas. A simplicidade que a caracteriza, apoia-se
no uso de instâncias organizadas hierarquicamente permitindo aumentar a facilidade
com que a informação que se pretende trasmitir
é identificada, interpretada e apresentada pelos "browsers” no formato de uma página
Web.
Este facto da linguagem se encontrar organizada de forma lógica e hierarquica prende-se
como uma das maiores vantagens deste tipo de linguagem, possibilitando um tratamento
de informação de forma muito fácil e eficaz.
Um documento XML bem formado não necessita de ter associado um processo de validação
exaustivo, o que simplifica bastante o seu processamento.
A estrutura e limitações de um documento XML são geralmente definidas a partir de um documento XSD, “
XML Schema Definition
”.
Este documento dita de forma detalhada a estrutura dos elementos que constituem o
documento XML, assim como a organização das etiquetas e do texto, num documento válido,
na linguagem XML.
Por definição, um schema é uma definição formal da sintaxe de uma linguagem XML podendo
definir:
- Os elementos que podem existir num documento;
- Os atributos que podem existir num documento;
- Os elementos-filho de um determinado elemento;
- A ordem dos elementos-filho de um determinado elemento;
- O conteúdo de elemento (se é vazio, se pode incluir texto...);
- Tipos de informação para elementos e atributos.
O XSL,acrónimo para “
eXtensible Stylesheet Language
”, é uma linguagem orientada para a formatação de estilo de documentos XML.
XSLT, deriva de XSL e significa transformações XSL, pelo que o seu objetivo passa por
transformar um documento XML num documento de um outro tipo.
Este tipo de linguagem recorre por inúmeras vezes ao XPATH para definir as partes
do documento ás quais certas formatações devem ser aplicadas.
Desta forma, o XSLT assegura uma fácil e correcta manipulação dos elementos designados
num documento XML.
Um documento XSL é baseado num conjunto de templates. Cada um destes apenas se aplica
aos nós que correspondem ao padrão especificado no atributo
match. Esta aplicação implica a inclusão na arvore de saída o conteúdo desse template,
executando as instruções que esse contenha.
Uma instrução do tipo xsl:apply-templates tenta aplicar os template a cada um dos
filhos diretor de um nó especifico.
O processamento começa pelo nó raiz da árvore inicial, designado por “/”, e tenta
aplicar-lhe os templates que existem.
Neste projeto incorreu-se ainda ao uso de outra potencialidade de uso do XSL, designadamente
o XSL-FO. XSL-FO, é uma linguagem de marcação usada para
gerar documentos em formato de PDF, acrónimo para "
Portable Document Format
”.
O HTML,acrónimo para “
HyperText Markup Language
”, é uma linguagem de computação cuja simplicidade a torna a linguagem maioritariamente
utilizada
no desenvolvimento de páginas web. A simplicidade que a caracteriza, apoia-se no uso
de instâncias organizadas hierarquicamente permitindo aumentar a facilidade com que
a informação que se pretende trasmitir
é identificada, interpretada e apresentada pelos "browsers” no formato de uma página
Web. Esta linguagem apoia-se na escrita sobre a forma de elementos HTML.
Estas marcas são tambem designadas por tags, sendo que a primeira tag simboliza o
início e a segunda simboliza o fim. Entre as tags pode ser adicionado texto, outras
tags, comentários, etc
Um browser tem como objetivo ler estes documentos HTML e compô-los em páginas visíveis
ou audíveis, ou seja não exibe as tags HTML, apenas as usa para interpretar o conteúdo
da página, mostando o seu conteúdo.
O PDF, acrónimo para "
Portable Document Format
”, é um formato de arquivo direcionado para a distribuição e transferência para o
suporte
físico, em papel, que visa representar documentos de uma maneira e formato independente
e descrever documentos que contenham texto, gráficos e imagens.
Com o objetivo de distanciar o autor o máximo possível da preocupação constante com
questões relacionadas com a formatação de um documento e ao mesmo tempo aproximá-lo
o máximo possível do conteúdo escrito,
3.1. Criação do XML Schema
Numa fase primária do trabalho, começou-se por elaborar um Schema, tendo em conta,
que este documento é
fulcral para o
desenvolvimento de todo o trabalho prático, uma vez que serviria de esqueleto estrutural
e
orientador do conteúdo e hierarquia do projeto. Este documento especifica as regras
de construção
de um documento XML e qual será a sua estrutura, como tal, a sua construção foi pensada.
Tendo analisado o conjunto de paginas PDF fornecidas, chegou-se a várias conclusões.
A primeira delas,
resume que um livro tem várias notícias e cada uma delas teria forçosamente um autor,
uma data de publicação e a cidade onde foi publicada, um titulo
que a caracterizasse e o conteúdo presente no corpo da notícia em análise. Posto isto,
foi necessário estabelecer que ao nível do conteúdo, seria imperativa
a definição da formatação do texto que pretendêssemos colocar lá, sendo que seria
efetuada uma distinção entre prosa e poema. Esta distinção foi feita basicamente
recorrendo a uma definição de parágrafos e estrofes, que se enquadrariam, em prosa
e poema, respetivamente. Ao nível de edição de texto definiu-se também
a criação de itálicos, negritos e referências.
As relações que se estabeleceram são dotadas, algumas, de um mínimo de ocorrências,
como é o caso do conteúdo
de um poema ter forçosamente de ter uma estrofe, e consequentemente um verso. O mesmo
acontece com a prosa e os parágrafos. As relações sem o mínimo de
ocorrências ou opcionais, também estão implementadas. Pegando no exemplo anterior,
ao nível de conteúdo, podemos ter um poema, uma prosa, uma imagem,
ou até mesmo uma combinação dos mesmos.

Figura 1: Esquematização do Schema
3.2. Criação do XML do projeto
Para a criação deste documento procedeu-se à transcrição do conteúdo, apresentado
em cada um dos recortes
do PDF alvo de estudo, segundo as normas instanciadas pelo Schema.

Figura 2: Exemplo do XML alusivo ao recorte 3.
Acima, encontra-se um excerto do código alusivo à redação em XML do primeiro recorte.

Figura 3: Exemplo do XML alusivo ao recorte 7.
3.3. Criação de uma stylesheet XSLT para geração de HTML
Neste passo, procedeu-se à criação de uma stylesheet, XSLT, com o intuito de transformar
a página XML numa página HTML.
Como tal, com o objetivo de gerar uma página HTML devidamente formatada com o conteúdo
apresentado num documento XML associou-se o documento XSL ao documento XML, e no primeiro
elaboraram-se condições de estilo e formatação a serem impostas para a apresentação
da página HTML com o conteudo do documento XML.
Neste sentido, foi necessário estabelecer o formato de output como HTML.
De maneira a acrescentar algumas melhorias no aspeto visual da página, importaram-se
modelos CSS.
Abaixo indiciam-se blocos de código que apresentam a resolução dos métodos supracitados,
onde se pode ver a transformação do output em HTML, assim como a importação de modelos
de CSS do W3Schools.

Figura 4: Codigo para estabelecer o formato de output como html.

Figura 5: Aplicação dos modelos de CSS.
Gerou-se uma página
index.html
.
O comando result-document gera um documento com o nome indiciado segundo as instruções
de formatação indicadas dentro dos parametros do mesmo.

Figura 6: Esquema exemplificativo do result-document aplicado à página index.html.
Nesta página criou-se uma tabela que tem do seu lado esquerdo o Índice de Autores,
onde cada um deles funciona como uma hiperligação para a respetiva notícia, e, do
seu lado direito
temos uma imagem ilustrativa do Canário Nazi.

Figura 7: Tabela da página Index com o Índice por Autores.
Uma vez que o nosso índice é um conjunto de ligações, criou-se um result-document
que permitisse gerar uma
página por cada uma delas, sendo que estas ligações correspondem às noticias.
Dentro do bloco result-document é indicado que cada uma destas páginas terá forçosamente
uma barra de
navegação que permite ao utilizador navegar entre a página onde se situa e as páginas
anterior, seguinte
ou do índice de autores.
Definiu-se também uma classe de estilo scroll, que iria ser aplicada ao conteúdo das
notícias, de modo a
permitir que a barra de navegação e o cabecalho ficassem sempre no topo da página,
permitindo uma experiência
de navegação mais agradavél.
Blocos de codigo alusivos aos métodos anteriores.

Figura 8: Result Document para gerar uma página por notícia.

Figura 9: Aplicação da barra de navegação a cada uma das páginas de notícias.

Figura 10: Aplicação de scroll na template conteúdo
3.4. Criação de stylesheet XSLFO para geração de PDF
Começou-se por definir o nosso layout-master-set, com dimensões de uma folha A4 e
com definição das margens.

Figura 11: Layout-Master-Set das nossas páginas.
Foi gerada de seguida a capa do nosso documento pdf.

Figura 12: Codigo usado na geração da capa.
Nesta página foi gerado um índice de autores, sendo que cada instancia de autor é
uma hiperligação para a notícia correspondente.
Temos também associado a cada autor o número da página correspondente à notícia.

Figura 13: Codigo utilizado na geração do indice.
Por fim, foi gerada a página da notícia individualizada. Nesta apresenta-se os "metadados"
da notícia, assim como o seu conteúdo manipulado pelas nossas templates.
Foi acrescentado também um rodapé com o número da página e um cabeçalho com alguns
"metadados" do trabalho.

Figura 14: Codigo utilizado na geração das páginas de noticias individualizadas.