Vous êtes sur la page 1sur 11

XML Básico

XML Básico Página Inicial Criação de Websites Tutoriais HTML Básico CSS Básico JavaScript Básico XML Básico

Página Inicial

Criação de Websites

Tutoriais HTML Básico CSS Básico JavaScript Básico XML Básico Guias de Referência Elementos HTML Propriedades CSS Seletores CSS Tabela de Cores HTML/CSS Tabela de Caracteres Especiais Como especificar o path

Noções de SQL

Downloads

Links úteis

XML Básico

Por Aires Bento Pereira Filho

http://www.abpsoft.com/criacaoweb/xmlbasico.html

Hora do Café

Entrar em Contato

Introdução Surgimento da XML Relação entre SGML, HTML, XML e XHTML Resumo da história Características da XML As regras da sintaxe XML Documentos bem formados Documentos válidos — conceito preliminar de DTD Analisadores XML Conhecendo um documento XML Como um documento XML aparece em um browser

Introdução

O presente trabalho procura apresentar, de forma clara e prática, conhecimentos essenciais sobre a linguagem

XML (eXtensive Markup Language — Linguagem de Marcação Extensível). Para um perfeito entendimento do que será exposto, presume-se que quem o estiver lendo já conheça HTML.

Surgimento da XML

Assim como a HTML, a XML é derivada da SGML (Standard Generalized Markup Language — Linguagem Padronizada de Marcação Genérica). A SGML é uma metalinguagem através da qual se pode definir outras linguagens de marcação.

A SGML não é nova, nasceu na IBM em meados dos anos 60 e, na época, era designada por GML (Generalized

Markup Languagem — Linguagem de Marcação Generalizada). Seu objetivo inicial era o de permitir o compartilhamento de documentos de projetos de grandes dimensões na área governamental e na indústria aeroespacial. Seus criadores foram Charles Goldfarg, Edward Mosher e Raymond Lorie (cujas iniciais dos sobrenomes por acaso coincidem com GML).

A GML foi trabalhada pela IBM por muitos anos, tendo sido reconhecida pela ISO (Intenational Organization for

Standardization — Organização Internacional de Padronização), em 1986. A partir de então passou a chamar-se SGML (Standard Generalized Markup Languagem — Linguagem de Marcação Generalizada Padrão), tornando-se

a linguagem padrão para muitos tipos de documentos que eram distribuídos no mundo.

No início da década de 90, acreditava-se que a SGML poderia tornar-se a linguagem de marcação padrão da Web, que na época ganhava popularidade. Mas os criadores de páginas web queriam algo mais fácil e a SGML, pelo seu alto grau de complexidade, não teve boa aceitação.

Dentro desse quadro foi concebida a HTML (HiperText Markup Language) que amenizava a complexidade da SGML especificando um pequeno conjunto de tags com características estruturais e semânticas e que adicionava suporte

para Hiper Texto. Seu criador Tim Berners-Lee pretendia inicialmente que a linguagem fosse utilizada para promover

o tráfego de documentos científicos e técnicos. Depois a linguagem foi adaptada para ser utilizada por não

especialistas naqueles tipos de documentos e, mais tarde, ganhou também recursos de multimídia. A HTML ganhou

popularidade e é hoje mundialmente reconhecida como a linguagem padrão da Web.

Mas a HTML era eficiente (e ainda é) apenas para exibir informações ao usuário. Quando havia necessidade de se criar aplicações mais avançadas, deixava muito a desejar. Principalmente quando se tratava de aplicações em que era necessária a manipulação de grande volume de dados.

Era preciso que se criasse uma nova linguagem, mais flexível e extensível. Uma linguagem que fosse tão poderosa quanto a SGML (que é uma linguagem que possui recursos suficientes para solucionar qualquer problema de

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

linguagens de marcação). Mas essa nova linguagem deveria ser mais simples de ser manipulada e deveria ter a mesma aceitação da HTML.

Então, para suprir essa carência, o World Wide Web Consortium (W3C) desenvolveu a XML (eXtensive Markup Language — Linguagem de Marcação Extensível), cujo propósito principal é o compartilhamento de informações através da Internet.

Relação entre SGML, HTML, XML e XHTML

O que tem a ver uma linguagem com outra

Assim como a SGML é uma metalinguagem de marcação, a XML também o é. Em ambas,

é o desenvolvedor que cria os elementos, atribuindo a cada uma das tags que os

introduzem o nome que julgar apropriado, sem limitação; daí o nome metalinguagem.

Metalinguagem é uma linguagem utilizada para descrever outras linguagens.

Várias linguagens são derivadas da SGML, entre elas a HTML e a XML.

Por outro lado, várias linguagens também são derivadas da XML, entre elas a XHTML, sendo que esta veio para tomar o lugar da HTML.

Comparando HTML, XML e XHTML

A HTML é uma aplicação da SGML — uma linguagem de marcação.

A XML é também uma aplicação da SGML — uma aplicação da SGML que é um perfil dela, um subconjunto

específico. É uma metalinguagem de marcação. Não veio para substituir a HTML porque tem propósito diferente. Na verdade, ambas se complementam.

Já a XHTML é uma aplicação da XML. É uma nova versão da HTML, pois tem exatamente o mesmo propósito.

Resumo da história

pois tem exatamente o mesmo propósito. Resumo da história Meados   dos anos Nasce na IBM

Meados

 

dos anos

Nasce na IBM a GML (Generalized Markup Languagem — Linguagem de Marcação Generalizada), que futuramente viria chamar-se SGML.

60

 

A

ISO (Intenational Organization for Standardization — Organização Internacional de Padronização)

1986

estabelece como padrão internacional a SGML (Standard Generalized Markup Languagem — Linguagem de Marcação Generalizada Padrão), herdeira da GML — norma ISO 8879.

1992

Surge a HTML.

 

A

HTML ganha algumas definições de aparência, bem como tabelas, formulários e equações

1993

matemáticas, sendo designada como HTML+.

1994

Surgem a HTML 2.0 e HTML 3.O (uma extensão da HTML+)

 

É

fundado o World Wide Web Consortium (W3C), cujo objetivo era o de desenvolver tecnologias

1994

denominadas Padrões Web.

1996

O

W3C dá início a uma padronização: define o padrão HTML 3.2.

 

O

W3C define o padrão HTML 4.0, separando a estrutura da apresentação, através das Folhas de

1997

Estilo em Cascata (CSS).

1998

O

W3C cria a XML (eXtensive Markup Language — Linguagem de Marcação Extensível).

1999

O

W3C define o padrão HTML 4.1 (poucas modificações na versão 4.0).

2000

É

lançada pelo W3C a XHTML 1.0 — uma versão XML da HTML 4.01.

Características da XML

Características gerais

XML é o acrônimo de eXtensive Markup Language — Linguagem de Marcação Extensível.

A XML é uma linguagem de marcação (Markup Language) porque seus elementos são introduzidos por marcadores

(tags). É uma metalinguagem, podendo ser utilizada, não só para a criação de documentos web, mas também para

a criação de outras linguagens de marcação. Haja vista a XHTML que é derivada dela.

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

A XML 1.0 é uma recomendação do W3C e sua versão atual data de 10/02/1998 — W3C Recommendation. Na introdução desse documento encontram-se listados os objetivos do projeto XML, que abaixo traduzimos:

Deve haver clareza quanto à forma de utilização da XML na Internet.

A XML deve suportar uma grande variedade de aplicações.

A XML deve ser compatível com a SGML.

Deve ser fácil desenvolver programas que possam processar documentos XML.

A XML deve ter um mínimo de recursos opcionais, idealmente zero.

Documentos XML devem ser legíveis por humanos e razoavelmente claros.

O

projeto XML deve ser preparado rapidamente.

O

projeto XML deve ser formal e conciso.

Deve ser fácil criar documentos XML. Concisão na marcaçao (economia de tags) é de mínima importância.

Na XML os elementos são criados pelo próprio autor do documento

Como na HTML, os elementos também são introduzidos por marcadores (tags) e podem possuir atributos. As tags são iniciadas pelo símbolo < (menor que) e finalizadas pelo símbolo > (maior que). Mas na HTML são utilizadas tags predefinidas, como <h1>, <p>, etc., e na XML é o autor do documento que "inventa" as tags e o faz de maneira a dar entender o conteúdo que elas encerram. Por exemplo, um documento criado para listar os clientes de uma empresa poderia ser estruturado assim:

<clientes>

<cliente>

<nome>

</nome>

<endereco>

</endereco>

</cliente>

</clientes>

Note como é fácil entender um documento assim estruturado. Um documento XML é autodescritivo.

A XML não provê mecanismos de apresentação visual

Sabemos que a linguagem HTML é voltada tanto para a estruturação de dados quanto para a apresentação visual desses dados em um navegador (browser). Mesmo depois de terem sido criadas condições de separar o conteúdo da formatação através das folhas de estilo (CSS), essa característica da HTML ainda prevalece, já que, com ela a apresentação visual pode ser feita mesmo sem o emprego dessas folhas de estilo. Quando, por exemplo, incluimos num documento HTML o elemento <h1>, o browser sempre saberá como apresentá-lo; dará a ele a seu modo uma formatação.

Na XML, a separação do conteúdo da formatação é plena. Um documento XML por si só não tem uma apresentação visual ( uma página web formatada) porque sua única finalidade é a de transportar dados estruturados. Um documento XML tem de ter obrigatoriamente uma folha de estilos a ele associada para que se possa fazer uma apresentação visual dos dados que ele contém.

A XML não provê mecanismos de ligação

Na HTML, sabemos (e o browser também sabe) que o elemento <a> define um link. Mas na XML, como é o autor do documento que cria os elementos (estabelece qualquer nome para uma tag), é impossível para o browser saber qual deles é um link.

Então, é necessário recorrer a outras linguagens para definir links. São elas a XLink (XML Linking Language) e a XPointer (XML Pointer Language).

As regras da sintaxe XML

Elementos não vazios devem possuir tags de abertura e de fechamento

Na HTML alguns elementos podem ser inseridos com a omissão da tag de fechamento (por exemplo, os elementos <p> e <li>). Há também alguns (poucos) elementos para os quais podemos omitir ambas as tags, de abertura e fechamento (por exemplo, <head> e <body>).

Na XML, ambas as tags são obrigatórias. Portanto, o seguinte formato tem de ser rigorosamente seguido:

<elemento>conteúdo</elemento>

Elementos vazios devem utilizar uma tag de formato especial

Na HTML elementos vazios (sem conteúdo) são inseridos através de tags que não possuem fechamento, tais como, <hr>, <br>, <img>, etc. Na XML também é assim, mas é adotado um formato especial. O símbolo > (maior que)

XML Básico

que aparece no final da tag deve ser substituído por />. Eis o formato:

<elemento/>

http://www.abpsoft.com/criacaoweb/xmlbasico.html

É permitido também introduzir um elemento vazio utilizando as tags de abertura e de fechamento, mas obviamente

sem colocar nada entre ambas, já que o conteúdo não existe:

<elemento></elemento>

Entretanto, para que fique garantida a interoperabilidade, é aconselhável a utilização do formato especial.

Deve existir um elemento raiz que englobe todos os demais elementos

Um documento XML deve possuir um elemento raiz (somente um) que englobe todos os demais elementos. Tudo que um documento XML contém deve estar entre suas tags de abertura e de fechamento.

<elemento_raiz>

</elemento_raiz>

Todos os elementos devem estar corretamente aninhados

Erros de aninhamento podem ser tolerados pela HTML. Por exemplo:

<b><i>texto em negrito e itálico</b></i>

Isso em XML jamais poderia ocorrer. Teríamos de fazer assim:

<b><i>texto em negrito e itálico</i></b>

Os valores dos atributos devem ser colocados obrigatoriamente entre aspas

Na XML os valores dos atributos devem ficar obrigatoriamente entre aspas, diferentemente da HTML onde as aspas são facultativas. Eis um exemplo de como deve ser:

<nota data="17/12/2007">

Comentários em XML

A sintaxe para escrever comentários na XML é similar à que se usa na HTML:

<!-- Isto é um comentário -->

Pode-se utilizar quaisquer caracteres ou referências a caracteres, exceto dois hífens contíguos (--).

Um documento XML deve possuir um ou mais elementos

Na HTML é possível abrir um documento no qual não tenha sido digitado nada. Num caso desses, o browser apresenta uma página em branco. Um documento XML que tenha sido salvo desse jeito irá gerar uma mensagem de erro. Não pode haver um documento XML sem nenhum elemento.

A linguagem XML é case sensitive

A XML diferencia letras maiúsculas e minúsculas. Por exemplo, <Mensagem> é diferente de <mensagem>.

Documentos bem formados

Um DOCUMENTO BEM FORMADO é aquele que segue estritamente as regras da sintaxe XML (enunciadas no tópico anterior).

Na HTML existem certas liberdades como deixar de colocar algumas tags de fechamento, colocar o valor dos atributos sem aspas, etc. Existe até a faculdade, em relação a poucos elementos, de omitir-se ambas as tags, a de abertura e a de fechamento. Mesmo nos casos de existência de obrigatoriedade, se houver desobediência ou erro, isso é tolerado, e o browser faz a exibição do documento de alguma maneira. Pode-se dizer que na HTML o desenvolvedor fica um tanto quanto "à vontade".

Quanto a XML, um dos objetivos estabelecidos quando da sua criação foi o de que "deveria ter um mínimo de recursos opcionais; idealmente zero". Isto quer dizer que, dentro das regras, o "obrigatório" tem de prevalecer. Portanto, as regras são mais rígidas.

Todo documento XML tem que obedecer tais regras rigorosamente. Em outras palavras: todo documento XML tem de ser obrigatoriamente BEM FORMADO. O que não é BEM FORMADO não é visto como um documento XML e, quando tentamos abri-lo, o browser apresenta-nos uma mensagem de erro.

Documentos válidos — conceito preliminar de DTD

Um DOCUMENTO VÁLIDO é aquele que além de BEM FORMADO está de acordo com uma DTD (Document Type

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

Definition — Definição do Tipo de Documento), se houver uma.

Uma DTD contém a definição das marcações que o documento XML terá, ou seja, uma explicação da gramática utilizada para que o documento seja lido. Elementos, atributos e outros componentes utilizados devem estar definidos na DTD, para que o documento possa ser VALIDADO.

Diferentemente da SGML, a XML não exige uma DTD. Assim, um documento XML pode prescindir dela, bastando

que seja bem formado. Entretanto, é altamente recomendável a sua inclusão, garantindo dessa forma que os dados

estejam adequadamente registrados, colocados na ordem correta e com os valores dos atributos apropriados.

Analisadores XML

Analisadores XML (parsers) são programas que podemos utilizar para verificar a integridade de um documento XML. Tais programas podem ser de dois tipos:

Analisador sem validação Verifica apenas se o documento respeita a sintaxe XML. Ou seja: verifica se o documento é bem formado; Analisador com validação Verifica não só se o documento respeita a sintaxe, mas se respeita também as definições contidas na DTD. Ou seja: verifica se o documento é válido.

Existem muitos desses programas disponíveis. Os próprios navegadores (browsers) são capazes de fazer as duas análises. A necessidade de os browsers possuirem essa funcionalidade fica óbvia quando lembramos de que um documento XML, para ser exibido, tem de seguir obrigatoriamente a sintaxe XML e as regras impostas na DTD, se houver uma. Quando não segue, o browser disponibiliza uma mensagem de erro resultante da análise, em vez de exibir o conteúdo do documento.

Os programas projetados especificamente para serem analisadores XML bem como os Editores XML normalmente

fazem tanto a análise sem validação, como a análise com validação.

Conhecendo um documento XML

Nosso primeiro documento XML

Apresentamos desde já um exemplo de um documento XML. Para criá-lo, precisamos apenas de um editor de texto simples, como o Bloco de Notas. Salvamos o arquivo com o nome de cidades.xml e sugerimos que você copie o texto e salve-o da mesma maneira em seu computador, porque, na seqüência de nossa explanação vamos reutilizá-lo, inserindo modificações a cada passo.

Como um documento XML é autodescritivo, basta que leiamos o exemplo para entendermos o seu propósito, qual seja, o de disponibilizar uma lista de cidades com nome, população e área de cada uma. Lembremos de um dos objetivos que nortearam a criação da XML: "documentos XML devem ser legíveis por humanos e razoavelmente claros"

A declaração XML

Na primeira linha aparece a declaração XML que identifica o documento como um documento XML e, no caso do exemplo, define em seus atributos que a versão XML é a 1.0 (a única hoje existente) e que o conjunto de caracteres (encoding) é o ISO-8859-1.

A declaração XML é uma das Instruções de

Processamento (PIs) e fica no prólogo (prolog) do documento. O prólogo é a parte do documento que fica

imediatamente acima do elemento raiz e pode ser

constituído de Instruções de Processamento (PIs) e Declarações de Tipos de Documento (DTDs), coisas

Arquivo cidades.xml

<?xml version="1.0" encoding="ISO-8859-1" ?> <cidades> <cidade> <nome>Sabará</nome>

<populacao>134282</populacao>

<area>304</area>

</cidade> <cidade> <nome>Esmeraldas</nome>

<populacao>63936</populacao>

<area>910</area>

</cidade>

</cidades>

que

serão vistas mais adiante.

Em

princípio, a declaração XML não é obrigatória, mas

não se deve deixar de colocá-la porque, em certas circunstâncias, a obrigatoriedade passa a existir. Neste exemplo mesmo, podemos observar que fizemos constar

um nome de cidade que possui um caractere acentuado (Sabará). O browser só pode ler o nome da cidade porque

o conjunto de caracteres definido contempla tal caractere. Se a declaração XML não fosse colocada, ou se o conjunto de caracteres fosse outro, o Internet Explorer apresentaria uma mensagem de erro, e outros browsers

exibiriam a palavra com a falta um caractere.

O elemento raiz e demais elementos

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

Na segunda linha e na última temos as tags <cidades> e </cidades> que definem a abertura e o fechamento do elemento raiz. Já vimos que este elemento é obrigatório, deve ser único e deve englobar todos os demais. Note que atribuímos a ele um nome que dá uma idéia do propósito do documento. É como se estivesse sendo dito: "isto é uma lista de cidades".

Dentro do elemento raiz <cidades> aparece duas vezes o elemento filho <cidade>, que por sua vez também tem

filhos, os elementos <nome>, <populacao> e <area>, cujos conteúdos são dados de caracteres. Poderíamos ter o

se quiséssimos

elemento <cidade> com seus elementos filhos aparecendo mais vezes (cem vezes, mil vezes, listar mais cidades.

Como um documento XML aparece em um browser

),

Já dissemos que a XML não provê mecanismos de

apresentação visual. Mas a apresentação visual a

que nos referimos é de uma página web formatada (como a que o internauta quer ver). Uma apresentação assim só é possível associando o documento XML a uma folha de estilos.

No entanto, um documento que ainda não foi associado a uma folha de estilos pode ser exibido pelo browser. Só que, o que se obtém é a exibição do próprio código fonte.

O Internet Explorer faz essa exibição em forma de

uma árvore. Estamos mostrando aqui uma imagem da exibição do documento acima exemplificado (cidades.xml).

Cada elemento é considerado um nó e quando possui elementos filhos recebe a sua esquerda um sinal "menos" (-) ou um sinal "mais" (+). O sinal

"menos" indica que o nó está expandido (elementos filhos sendo exibidos) e o sinal "mais" indica que o nó está contraído (elementos filhos ocultos).

Um clique no sinal "menos" faz com que o nó se contraia e um clique no sinal "mais" faz com que o nó se expanda.

Quando abrimos um documento XML, além de obtermos sua exibição, estamos também utilizando o analisador XML que o browser possui. Assim, se nosso documento cidades.xml não estiver bem formado, em vez de ser exibido, uma mensagem de erro será apresentada. Sugerimos que se faça a simulação de alguns erros para testar isso.

Vimos a abertura do documento com o Internet Explorer, mas é claro que podemos usar qualquer outro browser. No Mozilla Firefox, a exibição é obtida da mesma forma que no Internet Explorer, ou seja, basta abrir o documento e ele será exibido como uma árvore. No Netscape 6 e no Opera 8, depois de abrir o documento, damos um clique com o botão direito do mouse e selecionamos "Source" ou "View Source".

Folhas de Estilos

Para que se possa fazer a apresentação visual de um documento XML (como uma página web formatada), utilizam-se folhas de estilos.

Assim como os documentos XML não trazem em si nenhum mecanismo de apresentação visual porque seu propósito é o de transportar dados; as folhas de estilo, de outro lado, não possuem nenhum dado. Representam tão somente o layout que será usado para a exibição; são independentes da estrutura de dados.

Uma folha de estilos proporciona uma apresentação visual transformando um documento XML em documento HTML e tem a grande vantagem de permitir que o layout da exibição possa ser mudado com alterações somente nela. Outra vantagem é a de que podemos ter várias folhas de estilos, cada uma para uma finalidade diferente. Por exemplo, uma para browsers, outra para PDAs e outra para telefones celulares.

CSS

Uma das linguagens de folha de estilos utilizadas com XML é a (Cascading Style Sheets — folhas de estilo em

cascata) que já é nossa conhecida porque é a mesma que se usa com HTML. A CSS é ideal para ser utilizada com

a HTML, mas é pouco utilizada com a XML porque, para esta, seus recursos são muito escassos quando

comparados com os de outras folhas de estilos que possuem implementações avançadas próprias de linguagens de

programação como, por exemplo, desvios condicionais, loops, etc.

DSSSL

Exibição do arquivo cidades.xml no Internet Explorer — como uma arvore

Exibição do arquivo cidades.xml no Internet Explorer — como uma arvore

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

Outra linguagem que pode ser utilizada é a DSSSL (Document Style Semantics and Specification Language — linguagem de especificação e semântica de estilos de documentos). Esta é uma linguagem poderosa e complexa que foi desenvolvida para suportar documentos SGML e, considerando o fato de a XML ser um subconjunto da liguagem SGML, pode-se utilizá-la com a XML sem problemas.

XSL

A linguagem de folha de estilos que merece maior destaque é a XSL (EXtensible Stylesheet Language ou XML

Style Sheets). Esta possui uma grande vantagem sobre as demais porque foi desenvolvida especialmente para a XML. É a linguagem padrão de estilos para a XML e é escrita em XML.

A XSL é mais que uma linguagem de folha de estilos. É formada de três partes, por isso podemos falar em

linguagens XSL:

XSLT (XSL Transformations) — Linguagem que transforma um documento XML em um documento HTML ou em outro documento XML. XPath — Linguagem utilizada para navegar através de elementos e atributos de um documento XML. XSL-FO — Linguagem para formatação de documentos XML

A XSLT é a parte mais importante da XSL e é comum falarmos XSL quando estamos trabalhando especificamente

com XSLT. É o que faremos quando adiante criarmos exemplos de apresentação visual de documento XML utilizando essa linguagem.

Apresentação visual do documento XML com CSS

Vamos agora criar uma folha de estilos com CSS para o nosso documento XML (cidades.xml) e atribuir ao arquivo que a contém o nome cidades.css. Na ilustração

ao lado aparecem ambos os arquivos.

de estilos CSS no

documento XML

No prólogo do documento

acrescentamos uma linha (envidenciada com

a cor verde) que é a instrução de

processamento (PI) que faz referência à folha de estilos. O atributo type indica o tipo

de folha de estilos e o atributo href indica a

sua localização.

Agora, se abrirmos o arquivo cidades.xml com um browser, teremos a apresentação visual de uma página web formatada. Reproduzimos a seguir a que obtivemos no Internet Explorer.

Referência à

folha

XML

Arquivo cidades.xml

<?xml version="1.0" encoding="ISO-8859-1" ?> <?xml-stylesheet type="text/css" href="cidades.css"?> <cidades> <cidade> <nome>Sabará</nome>

Arquivo cidades.css

nome, populacao, area { display: block;

}

nome { font-weight: bold;

font-size: 12pt; color: #009;

}

<populacao>134282</populacao>

<area>304</area>

</cidade>

<cidade>

<nome>Esmeraldas</nome> font-family: Arial, Helvetica;

<populacao>63936</populacao> font-size: 10pt;

<area>910</area>

</cidade>

</cidades>

Apresentação visual do arquivo cidades.xml com CSS

Examinando a folha de estilos CSS

Antes de comentarmos a folha de estilos do exemplo, queremos esclarecer que não entraremos em detalhes conceituais sobre a CSS, pois presumimos que você já a conheça porque é a linguagem de estilos que se aplica à HTML.

Vamos à nossa folha de estilos.

Fizemos definições apenas para os elementos <nome>, <populacao> e <area> porque são eles que possuem dados de caracteres. Primeiro utilizamos o recurso de agrupamento de seletores para fazer definições comuns aos três. Depois fizemos as definições específicas do elemento <nome>, incluindo a redefinição do tamanho da fonte.

É de fundamental importância estabelecermos se os elementos serão apresentados em blocos (com quebras de linhas), ou em linha (um após o outro na mesma linha). Para isso temos de definir a propriedade display com o valor block ou inline. No caso de nosso exemplo, atribuímos o valor block, pois optamos pela exibição em blocos.

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

XML Básico http://www.abpsoft.com/criacaoweb/xmlbasico.html As outras definições foram a fonte e o tamanho da fonte

As outras definições foram a fonte e o tamanho da fonte para os três elementos e, para o elemento <nome>, definimos fonte negritada, um tamanho de fonte maior e cor diferenciada.

Fizemos uma formatação simples que pode ser melhorada, mas os recursos da CSS são limitados como já vimos.

Eis alguns exemplos de coisas que poderíamos querer fazer ao promover a exibição: dispor os dados em uma tabela; apresentar as cidades em ordem alfabética de nomes; ou em ordem crescente de população; fazer uma seleção exibindo apenas uma ou algumas cidades com base em alguma característica; etc. Nada disso seria possível com CSS.

Então, o mais recomendável é que se recorra à XSL, a linguagem padrão de estilos da XML.

Apresentação visual do documento XML com XSL

Vamos continuar trabalhando com nosso documento XML (cidades.xml) e criar uma folha de estilos com XSL para ele. Atribuímos ao arquivo que contém a folha de estilos o nome cidades.xsl. Na ilustração ao lado aparecem ambos os arquivos.

Referência

documento XML

no

à

folha

de

estilos

XSL

A instrução de processamento (PI) que faz referência à folha de estilos (evidenciada com a cor verde) foi modificada porque agora nossa folha de estilos é com XSL.

Assim atributo type tem como valor "text/xsl"

e o atributo href tem como valor "cidades.xsl".

Abrindo o arquivo cidades.xml com o Internet Explorer, podemos obter a apresentação visual a seguir.

Examinando a folha de estilos XSL

Examinemos nossa folha de estilos (cidades.xsl) que é a responsável pela apresentação visual que obtivemos.

Você que conhece HTML percebe que o documento XSL mistura tags HTML com tags XSL (as que possuem o prefixo xsl). É que a XSL formata o documento XML por meio de tags HTML.

Na primeira linha está a declaração XML e,

como

se

vê,

é

a

mesma

do

arquivo

cidades.xml.

Um

documento

XSL

é

um

documento XML

e

é

por

isso que pode

receber

também

tal

componente.

Lembramos da conveniência de inserir

declaração

a

seja

XML,

embora

não

Arquivo cidades.xml

<?xml version="1.0" encoding="ISO-8859-1" ?> <?xml-stylesheet type="text/xsl" href="cidades.xsl"?> <cidades>

Arquivo cidades.xsl

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/"> <html> <body> <h2>Lista de Cidades</h2> <table border="1" cellpadding="5"> <tr bgcolor="#CCCC66"> <th>Cidade</th> <th>População</th>

<th>km2</th>

</tr> <xsl:for-each select="cidades/cidade"> <tr> <td><xsl:value-of select="nome"/></td> <td><xsl:value-of select="populacao"/></td> <td><xsl:value-of select="area"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template>

</xsl:stylesheet>

Apresentação visual do arquivo cidades.xml com XSL

obrigatória.

O elemento raiz (elemento que engloba todos os demais elementos) é o <xsl:stylesheet> que declara que o documento é um documento XSL. Possui o atributo xmlns que obedece à seguinte sintaxe: xmlns:prefixo="endereço". Onde o prefixo é xsl e o endereço é http://www.w3.org/1999/XSL/Transform. Trata-se do

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

XML Básico http://www.abpsoft.com/criacaoweb/xmlbasico.html namespace oficial W3C XSLT. A inclusão desse atributo é que

namespace oficial W3C XSLT. A inclusão desse atributo é que habilita o prefixo xsl que é colocado nos nomes dos elementos XSL, associando-os ao namespace. Quando esse atributo é utilizado é necessário incluir também o atributo version="1.0".

O elemento <xsl:template> é usado para criar modelos (templates) para exibição dos elementos XML (no caso, elementos do arquivo cidades.xml). Essa definição se faz colocando como valor do atributo match uma expressão XPath. O valor "/" é uma expressão XPath que define que a associação se faz com o documento XML inteiro.

Como podemos observar, foram utilizados mais dois elementos XSL: <xsl:for-each> e <xsl:value-of>. O primeiro é um elemento que possui conteúdo e o segundo é um elemento vazio. De resto, o que se vê são elementos HTML.

Os dados são apresentados numa tabela (elemento <table>) precedida do título "Lista de Cidades" (elemento <h2>). Para melhorar a estética, colocamos bordas, espaços dentro das células e uma cor diferente para a linha de cabeçalho. Nada disso

é novidade, porque conhecemos HTML.

Também as células que constituem o cabeçalho não são novidade para nós: o primeiro elemento <tr> tem como conteúdo três elementos <th> que, por sua vez, possuem como conteúdo: Cidade, População e Km2. Note que População possui cê cedilha e til. Não fosse a Declaração XML com o atributo encoding com o valor ISO-8859-1, o browser não poderia ler a palavra. O Internet Explorer apresentaria uma mensagem de erro e outros browsers fariam a exibição com a falta de dois caracteres.

A novidade é a maneira de se criar as linhas seguintes da tabela. No caso, são duas linhas, mas poderia ser mais

É agora que entra a atuação dos elementos XSL <xsl:for-each> e <xsl:value-of>. Para facilitar o

entendimento, destacamos um fragmento do código.

(cem, mil,

).

<xsl:for-each select="cidades/cidade"> <tr> <td><xsl:value-of select="nome"/></td> <td><xsl:value-of select="populacao"/></td> <td><xsl:value-of select="area"/></td> </tr> </xsl:for-each>

O elemento <xsl:for-each> estabelece um laço de repetição (loop). Os comandos enfeixados por ele serão

executados cada vez que encontrar o elemento XML <cidade>, conforme definição do atributo select. A definição

de select se faz com uma expressão XPath que é semelhante à especificação do caminho de arquivos do DOS

(path), só que, em vez da barra invertida, usa-se a barra normal (/) para separar os nomes.

O elemento <xsl:value-of>, por sua vez, extrai o conteúdo de um elemento XML, conforme definição do atributo

select. A definição de select aqui também é uma expressão XPath. Basta o nome do elemento; não pode ser colocada a sequência de nomes separados por barra porque já se está em cidades/cidade, caminho definido no select de <xsl:for-each>.

Vamos detalhar o funcionamento:

Dentro de <xsl:for-each> temos o elemento HTML <tr> que cria linha de tabela. Isto faz adicionar tantas linhas quantos forem os elementos <cidade> existentes dentro do elemento <cidades> — path cidades/cidade. E, dentro de cada linha adicionada, serão inseridas três células com <td>. O conteúdo de cada célula serão dados extraídos com <xsl:value-of> dos elementos <nome>, <populacao> e <area>.

Criação de DTD

O que é DTD

DTDs (Document Type Definitions) fazem parte da especificação oficial da XML 1.0. Na DTD estabelecem-se definições para as marcações de documentos XML. O desenvolvedor, além de seguir as regras da sintaxe XML, segue também as que ele mesmo definiu na DTD. Assim, o documento XML criado por ele, além de ser um documento bem formado, será tambem um documento válido.

Um browser pode analisar e apresentar um documento XML sem uma DTD já que a XML não a exige; basta que o documento esteja bem formado. Mesmo um documento XML que possua uma DTD, se nele for utilizada alguma marcação a mais (não presente na DTD), ainda assm será processado, desde que não se contrarie as regras de

XML Básico

http://www.abpsoft.com/criacaoweb/xmlbasico.html

sintaxe.

Apesar da não obrigatoriedade, a utilização de uma DTD é sobremaneira vantajosa. Imaginemos um documento XML sendo trabalhado por muitas pessoas ou, ainda mais, recebendo dados externos via rede. Não havendo uma uma padronização das marcações, seria muito difícil manter a integridade desse documento.

Numa DTD definimos os elementos e atributos que poderão figurar no documento XML, a ordem em que poderão aparecer, se devem aparecer uma ou mais vezes, etc. Mas não são só elementos e atributos que são definidos. Na verdade, uma DTD define marcações, isto é, ela pode conter as declarações de marcações (markup declarations) que abaixo relacionamos.

declarações de tipos de elementos (element type declarations); declarações de lista de atributos (attribute-list declarations); declarações de entidades (entity declarations); declarações de notações (notation declarations).

Como acrescentar uma DTD a um documento XML

Um documento XML pode possuir uma DTD interna ou pode possuir uma referência a uma DTD externa, ou ambas as coisas. A interna fica inserida no próprio documento XML e a externa num arquivo à parte. Eis uma vantagem no uso da externa: pode-se vincular vários documentos XML a uma única DTD.

Formato da DTD interna:

<!DOCTYPE nome_elemento_raiz [ <!-- Declarações de marcações -->

]>

Formato da referência à DTD externa:

<!DOCTYPE nome_elemento_raiz SYSTEM endereço_arquivo>

Observe-se o seguinte:

É obrigatório que o nome da DTD (interna ou externa) seja o mesmo nome atribuído ao elemento raiz do

documento XML.

A localização da DTD interna ou da referência à DTD externa no documento XML deve ser no prólogo

imediatamente acima do elemento raiz.

O arquivo que constitui a DTD externa deve conter as declarações de marcações (e somente elas). São as

mesmas que seriam colocadas entre os colchetes da DTD interna.

Exemplificando DTD

Vamos criar uma DTD para o nosso documento XML de exemplo (cidades.xml). Mostraremos como pode ser inserida no próprio documento XML (DTD interna) e como pode ser criada como um documento à parte (DTD externa). As modificações que fizemos no arquivo cidades.xml estão evidenciadas com a cor verde e ao arquivo que contém a DTD externa atribuímos o nome de cidades.dtd.

Arquivo cidades.xml (com DTD interna)

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="cidades.xsl"?> <!DOCTYPE cidades [ <!ELEMENT cidades (cidade+)> <!ELEMENT cidade (nome,populacao,area)> <!ELEMENT nome (#PCDATA)> <!ELEMENT populacao (#PCDATA)> <!ELEMENT area (#PCDATA)> ]> <cidades> <cidade> <nome>Sabará</nome>

<populacao>134282</populacao>

<area>304</area>

</cidade> <cidade> <nome>Esmeraldas</nome>

<populacao>63936</populacao>

<area>910</area>

</cidade>

XML Básico

</cidades>

Arquivo cidades.xml (com DTD externa)

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="cidades.xsl"?> <!DOCTYPE cidades SYSTEM cidades.dtd> <cidades> <cidade> <nome>Sabará</nome>

<populacao>134282</populacao>

<area>304</area>

</cidade> <cidade> <nome>Esmeraldas</nome>

<populacao>63936</populacao>

<area>910</area>

</cidade>

Arquivo cidades.dtd

<!ELEMENT cidades (cidade+)> <!ELEMENT cidade (nome,populacao,area)> <!ELEMENT nome (#PCDATA)> <!ELEMENT populacao (#PCDATA)> <!ELEMENT area (#PCDATA)>

</cidades>

http://www.abpsoft.com/criacaoweb/xmlbasico.html

Note que a DTD é uma só; ora interna, ora externa. Nela aparecem apenas declaraçoes de tipos de elementos. Vamos examinar cada declaração:

A primeira declaração define o elemento <cidades> que deve ter como conteúdo somente o elemento <cidade> uma ou mais vezes. O sinal mais indica uma ou mais ocorrências (pelo menos uma). A segunda define o elemento <cidade> que deve ter como conteúdo os elementos <nome>, <populacao> e <area>; somente eles. Cada um deve aparecer uma única vez, mas devem aparecer. A separação com vírgulas indica que as ocorrências devem estar na mesma ordem em que estão dispostos. As três últimas definem os elementos <nome>, <populacao> e <area> que devem ter como conteúdo dados de caracteres. #PCDATA significa dados de caracteres.

Pois bem, considerando o que foi exposto, se analisarmos visualmente a estrutura no documento XML, iremos constatar que tudo está em conformidade com a DTD. Podemos, então, submetê-lo a um analisador XML e este irá indicar que se trata de um DOCUMENTO VÁLIDO.

Copyright © 2006 Abpsoft. Todos os direitos reservados.

|

Mapa do Site |

DOCUMENTO VÁLIDO. Copyright © 2006 Abpsoft. Todos os direitos reservados. | Mapa do Site | 11
DOCUMENTO VÁLIDO. Copyright © 2006 Abpsoft. Todos os direitos reservados. | Mapa do Site | 11