You are on page 1of 11

XML Bsico

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

Pgina Inicial Criao de Websites Noes de SQL Downloads Links teis Hora do Caf Entrar em Contato

Tutoriais HTML Bsico CSS Bsico JavaScript Bsico XML Bsico Guias de Referncia Elementos HTML Propriedades CSS Seletores CSS Tabela de Cores HTML/CSS Tabela de Caracteres Especiais Como especificar o path

XML Bsico
Por Aires Bento Pereira Filho

Introduo Surgimento da XML Relao entre SGML, HTML, XML e XHTML Resumo da histria Caractersticas da XML As regras da sintaxe XML Documentos bem formados Documentos vlidos conceito preliminar de DTD Analisadores XML Conhecendo um documento XML Como um documento XML aparece em um browser Folhas de estilos

Introduo
O presente trabalho procura apresentar, de forma clara e prtica, conhecimentos essenciais sobre a linguagem XML (eXtensive Markup Language Linguagem de Marcao Extensvel). Para um perfeito entendimento do que ser exposto, presume-se que quem o estiver lendo j conhea HTML.

Surgimento da XML
Assim como a HTML, a XML derivada da SGML (Standard Generalized Markup Language Linguagem Padronizada de Marcao Genrica). A SGML uma metalinguagem atravs da qual se pode definir outras linguagens de marcao. A SGML no nova, nasceu na IBM em meados dos anos 60 e, na poca, era designada por GML (Generalized Markup Languagem Linguagem de Marcao Generalizada). Seu objetivo inicial era o de permitir o compartilhamento de documentos de projetos de grandes dimenses na rea governamental e na indstria 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 Organizao Internacional de Padronizao), em 1986. A partir de ento passou a chamar-se SGML (Standard Generalized Markup Languagem Linguagem de Marcao Generalizada Padro), tornando-se a linguagem padro para muitos tipos de documentos que eram distribudos no mundo. No incio da dcada de 90, acreditava-se que a SGML poderia tornar-se a linguagem de marcao padro da Web, que na poca ganhava popularidade. Mas os criadores de pginas web queriam algo mais fcil e a SGML, pelo seu alto grau de complexidade, no teve boa aceitao. Dentro desse quadro foi concebida a HTML (HiperText Markup Language) que amenizava a complexidade da SGML especificando um pequeno conjunto de tags com caractersticas estruturais e semnticas e que adicionava suporte para Hiper Texto. Seu criador Tim Berners-Lee pretendia inicialmente que a linguagem fosse utilizada para promover o trfego de documentos cientficos e tcnicos. Depois a linguagem foi adaptada para ser utilizada por no especialistas naqueles tipos de documentos e, mais tarde, ganhou tambm recursos de multimdia. A HTML ganhou popularidade e hoje mundialmente reconhecida como a linguagem padro da Web. Mas a HTML era eficiente (e ainda ) apenas para exibir informaes ao usurio. Quando havia necessidade de se criar aplicaes mais avanadas, deixava muito a desejar. Principalmente quando se tratava de aplicaes em que era necessria a manipulao de grande volume de dados. Era preciso que se criasse uma nova linguagem, mais flexvel e extensvel. Uma linguagem que fosse to poderosa quanto a SGML (que uma linguagem que possui recursos suficientes para solucionar qualquer problema de

1 de 11

23/05/2013 20:58

XML Bsico

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

linguagens de marcao). Mas essa nova linguagem deveria ser mais simples de ser manipulada e deveria ter a mesma aceitao da HTML. Ento, para suprir essa carncia, o World Wide Web Consortium (W3C) desenvolveu a XML (eXtensive Markup Language Linguagem de Marcao Extensvel), cujo propsito principal o compartilhamento de informaes atravs da Internet.

Relao entre SGML, HTML, XML e XHTML


O que tem a ver uma linguagem com outra Assim como a SGML uma metalinguagem de marcao, a XML tambm o . Em ambas, o desenvolvedor que cria os elementos, atribuindo a cada uma das tags que os introduzem o nome que julgar apropriado, sem limitao; da o nome metalinguagem. Metalinguagem uma linguagem utilizada para descrever outras linguagens. Vrias linguagens so derivadas da SGML, entre elas a HTML e a XML. Por outro lado, vrias linguagens tambm so 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 aplicao da SGML uma linguagem de marcao. A XML tambm uma aplicao da SGML uma aplicao da SGML que um perfil dela, um subconjunto especfico. uma metalinguagem de marcao. No veio para substituir a HTML porque tem propsito diferente. Na verdade, ambas se complementam. J a XHTML uma aplicao da XML. uma nova verso da HTML, pois tem exatamente o mesmo propsito.

Resumo da histria
Meados Nasce na IBM a GML (Generalized Markup Languagem Linguagem de Marcao Generalizada), dos anos que futuramente viria chamar-se SGML. 60 1986 1992 1993 1994 1994 1996 1997 1998 1999 2000 A ISO (Intenational Organization for Standardization Organizao Internacional de Padronizao) estabelece como padro internacional a SGML (Standard Generalized Markup Languagem Linguagem de Marcao Generalizada Padro), herdeira da GML norma ISO 8879. Surge a HTML. A HTML ganha algumas definies de aparncia, bem como tabelas, formulrios e equaes matemticas, sendo designada como HTML+. Surgem a HTML 2.0 e HTML 3.O (uma extenso da HTML+) fundado o World Wide Web Consortium (W3C), cujo objetivo era o de desenvolver tecnologias denominadas Padres Web. O W3C d incio a uma padronizao: define o padro HTML 3.2. O W3C define o padro HTML 4.0, separando a estrutura da apresentao, atravs das Folhas de Estilo em Cascata (CSS). O W3C cria a XML (eXtensive Markup Language Linguagem de Marcao Extensvel). O W3C define o padro HTML 4.1 (poucas modificaes na verso 4.0). lanada pelo W3C a XHTML 1.0 uma verso XML da HTML 4.01.

Caractersticas da XML
Caractersticas gerais XML o acrnimo de eXtensive Markup Language Linguagem de Marcao Extensvel. A XML uma linguagem de marcao (Markup Language) porque seus elementos so introduzidos por marcadores (tags). uma metalinguagem, podendo ser utilizada, no s para a criao de documentos web, mas tambm para a criao de outras linguagens de marcao. Haja vista a XHTML que derivada dela.

2 de 11

23/05/2013 20:58

XML Bsico

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

A XML 1.0 uma recomendao do W3C e sua verso atual data de 10/02/1998 W3C Recommendation. Na introduo desse documento encontram-se listados os objetivos do projeto XML, que abaixo traduzimos: Deve haver clareza quanto forma de utilizao da XML na Internet. A XML deve suportar uma grande variedade de aplicaes. A XML deve ser compatvel com a SGML. Deve ser fcil desenvolver programas que possam processar documentos XML. A XML deve ter um mnimo de recursos opcionais, idealmente zero. Documentos XML devem ser legveis por humanos e razoavelmente claros. O projeto XML deve ser preparado rapidamente. O projeto XML deve ser formal e conciso. Deve ser fcil criar documentos XML. Conciso na marcaao (economia de tags) de mnima importncia. Na XML os elementos so criados pelo prprio autor do documento Como na HTML, os elementos tambm so introduzidos por marcadores (tags) e podem possuir atributos. As tags so iniciadas pelo smbolo < (menor que) e finalizadas pelo smbolo > (maior que). Mas na HTML so 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 contedo 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 fcil entender um documento assim estruturado. Um documento XML autodescritivo. A XML no prov mecanismos de apresentao visual Sabemos que a linguagem HTML voltada tanto para a estruturao de dados quanto para a apresentao visual desses dados em um navegador (browser). Mesmo depois de terem sido criadas condies de separar o contedo da formatao atravs das folhas de estilo (CSS), essa caracterstica da HTML ainda prevalece, j que, com ela a apresentao 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 formatao. Na XML, a separao do contedo da formatao plena. Um documento XML por si s no tem uma apresentao visual ( uma pgina 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 apresentao visual dos dados que ele contm. A XML no prov mecanismos de ligao Na HTML, sabemos (e o browser tambm 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), impossvel para o browser saber qual deles um link. Ento, necessrio recorrer a outras linguagens para definir links. So elas a XLink (XML Linking Language) e a XPointer (XML Pointer Language).

As regras da sintaxe XML


Elementos no vazios devem possuir tags de abertura e de fechamento Na HTML alguns elementos podem ser inseridos com a omisso da tag de fechamento (por exemplo, os elementos <p> e <li>). H tambm 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 so obrigatrias. Portanto, o seguinte formato tem de ser rigorosamente seguido:
<elemento>contedo</elemento>

Elementos vazios devem utilizar uma tag de formato especial Na HTML elementos vazios (sem contedo) so inseridos atravs de tags que no possuem fechamento, tais como, <hr>, <br>, <img>, etc. Na XML tambm assim, mas adotado um formato especial. O smbolo > (maior que)

3 de 11

23/05/2013 20:58

XML Bsico

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

que aparece no final da tag deve ser substitudo por />. Eis o formato:
<elemento/>

permitido tambm introduzir um elemento vazio utilizando as tags de abertura e de fechamento, mas obviamente sem colocar nada entre ambas, j que o contedo no existe:
<elemento></elemento>

Entretanto, para que fique garantida a interoperabilidade, aconselhvel a utilizao 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 contm 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 itlico</b></i>

Isso em XML jamais poderia ocorrer. Teramos de fazer assim:


<b><i>texto em negrito e itlico</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 so facultativas. Eis um exemplo de como deve ser:
<nota data="17/12/2007">

Comentrios em XML A sintaxe para escrever comentrios na XML similar que se usa na HTML:
<!-- Isto um comentrio -->

Pode-se utilizar quaisquer caracteres ou referncias a caracteres, exceto dois hfens contguos (--). Um documento XML deve possuir um ou mais elementos Na HTML possvel abrir um documento no qual no tenha sido digitado nada. Num caso desses, o browser apresenta uma pgina em branco. Um documento XML que tenha sido salvo desse jeito ir gerar uma mensagem de erro. No pode haver um documento XML sem nenhum elemento. A linguagem XML case sensitive A XML diferencia letras maisculas e minsculas. Por exemplo, <Mensagem> diferente de <mensagem>.

Documentos bem formados


Um DOCUMENTO BEM FORMADO aquele que segue estritamente as regras da sintaxe XML (enunciadas no tpico 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 relao a poucos elementos, de omitir-se ambas as tags, a de abertura e a de fechamento. Mesmo nos casos de existncia de obrigatoriedade, se houver desobedincia ou erro, isso tolerado, e o browser faz a exibio 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 criao foi o de que "deveria ter um mnimo de recursos opcionais; idealmente zero". Isto quer dizer que, dentro das regras, o "obrigatrio" tem de prevalecer. Portanto, as regras so mais rgidas. Todo documento XML tem que obedecer tais regras rigorosamente. Em outras palavras: todo documento XML tem de ser obrigatoriamente BEM FORMADO. O que no BEM FORMADO no visto como um documento XML e, quando tentamos abri-lo, o browser apresenta-nos uma mensagem de erro.

Documentos vlidos conceito preliminar de DTD


Um DOCUMENTO VLIDO aquele que alm de BEM FORMADO est de acordo com uma DTD (Document Type

4 de 11

23/05/2013 20:58

XML Bsico

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

Definition Definio do Tipo de Documento), se houver uma. Uma DTD contm a definio das marcaes que o documento XML ter, ou seja, uma explicao da gramtica 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 no exige uma DTD. Assim, um documento XML pode prescindir dela, bastando que seja bem formado. Entretanto, altamente recomendvel a sua incluso, 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) so programas que podemos utilizar para verificar a integridade de um documento XML. Tais programas podem ser de dois tipos: Analisador sem validao Verifica apenas se o documento respeita a sintaxe XML. Ou seja: verifica se o documento bem formado; Analisador com validao Verifica no s se o documento respeita a sintaxe, mas se respeita tambm as definies contidas na DTD. Ou seja: verifica se o documento vlido. Existem muitos desses programas disponveis. Os prprios navegadores (browsers) so capazes de fazer as duas anlises. 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 no segue, o browser disponibiliza uma mensagem de erro resultante da anlise, em vez de exibir o contedo do documento. Os programas projetados especificamente para serem analisadores XML bem como os Editores XML normalmente fazem tanto a anlise sem validao, como a anlise com validao.

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 seqncia de nossa explanao vamos reutiliz-lo, inserindo modificaes a cada passo. Como um documento XML autodescritivo, basta que leiamos o exemplo para entendermos o seu propsito, qual seja, o de disponibilizar uma lista de cidades com nome, populao e rea de cada uma. Lembremos de um dos objetivos que nortearam a criao da XML: "documentos XML devem ser legveis por humanos e razoavelmente claros" A declarao XML Na primeira linha aparece a declarao XML que identifica o documento como um documento XML e, no caso do exemplo, define em seus atributos que a verso XML a 1.0 (a nica hoje existente) e que o conjunto de caracteres (encoding) o ISO-8859-1. A declarao XML uma das Instrues de Processamento (PIs) e fica no prlogo (prolog) do documento. O prlogo a parte do documento que fica imediatamente acima do elemento raiz e pode ser constitudo de Instrues de Processamento (PIs) e Declaraes de Tipos de Documento (DTDs), coisas que sero vistas mais adiante.
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>

Em princpio, a declarao XML no obrigatria, mas no se deve deixar de coloc-la porque, em certas circunstncias, 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 declarao XML no 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

5 de 11

23/05/2013 20:58

XML Bsico

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 obrigatrio, deve ser nico e deve englobar todos os demais. Note que atribumos a ele um nome que d uma idia do propsito 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 tambm tem filhos, os elementos <nome>, <populacao> e <area>, cujos contedos so dados de caracteres. Poderamos ter o elemento <cidade> com seus elementos filhos aparecendo mais vezes (cem vezes, mil vezes, ...), se quisssimos listar mais cidades.

Como um documento XML aparece em um browser


J dissemos que a XML no prov mecanismos de apresentao visual. Mas a apresentao visual a que nos referimos de uma pgina web formatada (como a que o internauta quer ver). Uma apresentao assim s possvel associando o documento XML a uma folha de estilos. No entanto, um documento que ainda no foi associado a uma folha de estilos pode ser exibido pelo browser. S que, o que se obtm a exibio do prprio cdigo fonte. O Internet Explorer faz essa exibio em forma de uma rvore. Estamos mostrando aqui uma imagem da exibio 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 contrado (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, alm de obtermos sua exibio, estamos tambm utilizando o analisador XML que o browser possui. Assim, se nosso documento cidades.xml no estiver bem formado, em vez de ser exibido, uma mensagem de erro ser apresentada. Sugerimos que se faa a simulao 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 exibio 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 boto direito do mouse e selecionamos "Source" ou "View Source". Exibio do arquivo cidades.xml no Internet Explorer como uma arvore

Folhas de Estilos
Para que se possa fazer a apresentao visual de um documento XML (como uma pgina web formatada), utilizam-se folhas de estilos. Assim como os documentos XML no trazem em si nenhum mecanismo de apresentao visual porque seu propsito o de transportar dados; as folhas de estilo, de outro lado, no possuem nenhum dado. Representam to somente o layout que ser usado para a exibio; so independentes da estrutura de dados. Uma folha de estilos proporciona uma apresentao visual transformando um documento XML em documento HTML e tem a grande vantagem de permitir que o layout da exibio possa ser mudado com alteraes somente nela. Outra vantagem a de que podemos ter vrias 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 so muito escassos quando comparados com os de outras folhas de estilos que possuem implementaes avanadas prprias de linguagens de programao como, por exemplo, desvios condicionais, loops, etc. DSSSL

6 de 11

23/05/2013 20:58

XML Bsico

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

Outra linguagem que pode ser utilizada a DSSSL (Document Style Semantics and Specification Language linguagem de especificao e semntica 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 padro de estilos para a XML e escrita em XML. A XSL mais que uma linguagem de folha de estilos. formada de trs 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 atravs de elementos e atributos de um documento XML. XSL-FO Linguagem para formatao 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 apresentao visual de documento XML utilizando essa linguagem.

Apresentao 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 contm o nome cidades.css. Na ilustrao ao lado aparecem ambos os arquivos. Referncia folha de estilos CSS no documento XML No prlogo do documento XML acrescentamos uma linha (envidenciada com a cor verde) que a instruo de processamento (PI) que faz referncia folha de estilos. O atributo type indica o tipo de folha de estilos e o atributo href indica a sua localizao. Agora, se abrirmos o arquivo cidades.xml com um browser, teremos a apresentao visual de uma pgina web formatada. Reproduzimos a seguir a que obtivemos no Internet Explorer.

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 <populacao>134282</populacao> <area>304</area> </cidade> nome, populacao, area { display: block; <cidade> font-family: Arial, Helvetica; <nome>Esmeraldas</nome> font-size: 10pt; <populacao>63936</populacao> } <area>910</area> </cidade> nome { font-weight: bold; </cidades> font-size: 12pt; color: #009; }

Examinando a folha de estilos CSS Apresentao visual do arquivo cidades.xml com CSS Antes de comentarmos a folha de estilos do exemplo, queremos esclarecer que no entraremos em detalhes conceituais sobre a CSS, pois presumimos que voc j a conhea porque a linguagem de estilos que se aplica HTML. Vamos nossa folha de estilos. Fizemos definies apenas para os elementos <nome>, <populacao> e <area> porque so eles que possuem dados de caracteres. Primeiro utilizamos o recurso de agrupamento de seletores para fazer definies comuns aos trs. Depois fizemos as definies especficas do elemento <nome>, incluindo a redefinio do tamanho da fonte. de fundamental importncia estabelecermos se os elementos sero apresentados em blocos (com quebras de linhas), ou em linha (um aps o outro na mesma linha). Para isso temos de definir a propriedade display com o valor block ou inline. No caso de nosso exemplo, atribumos o valor block, pois optamos pela exibio em blocos.

7 de 11

23/05/2013 20:58

XML Bsico

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

As outras definies foram a fonte e o tamanho da fonte para os trs elementos e, para o elemento <nome>, definimos fonte negritada, um tamanho de fonte maior e cor diferenciada. Fizemos uma formatao simples que pode ser melhorada, mas os recursos da CSS so limitados como j vimos. Eis alguns exemplos de coisas que poderamos querer fazer ao promover a exibio: dispor os dados em uma tabela; apresentar as cidades em ordem alfabtica de nomes; ou em ordem crescente de populao; fazer uma seleo exibindo apenas uma ou algumas cidades com base em alguma caracterstica; etc. Nada disso seria possvel com CSS. Ento, o mais recomendvel que se recorra XSL, a linguagem padro de estilos da XML.

Apresentao 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. Atribumos ao arquivo que contm a folha de estilos o nome cidades.xsl. Na ilustrao ao lado aparecem ambos os arquivos. Referncia folha de estilos XSL no documento XML A instruo de processamento (PI) que faz referncia 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 apresentao visual a seguir. Examinando a folha de estilos XSL Examinemos nossa folha de estilos (cidades.xsl) que a responsvel pela apresentao 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 declarao XML e, como se v, a mesma do arquivo cidades.xml. Um documento XSL um documento XML e por isso que pode receber tambm tal componente. Lembramos da convenincia de inserir a declarao XML, embora no seja

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>Populao</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>

obrigatria. Apresentao visual do arquivo cidades.xml com XSL 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="endereo". Onde o prefixo xsl e o endereo http://www.w3.org/1999/XSL/Transform. Trata-se do

8 de 11

23/05/2013 20:58

XML Bsico

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

namespace oficial W3C XSLT. A incluso desse atributo que habilita o prefixo xsl que colocado nos nomes dos elementos XSL, associando-os ao namespace. Quando esse atributo utilizado necessrio incluir tambm o atributo version="1.0". O elemento <xsl:template> usado para criar modelos (templates) para exibio dos elementos XML (no caso, elementos do arquivo cidades.xml). Essa definio se faz colocando como valor do atributo match uma expresso XPath. O valor "/" uma expresso XPath que define que a associao 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 contedo e o segundo um elemento vazio. De resto, o que se v so elementos HTML. Os dados so apresentados numa tabela (elemento <table>) precedida do ttulo "Lista de Cidades" (elemento <h2>). Para melhorar a esttica, colocamos bordas, espaos dentro das clulas e uma cor diferente para a linha de cabealho. Nada disso novidade, porque conhecemos HTML. Tambm as clulas que constituem o cabealho no so novidade para ns: o primeiro elemento <tr> tem como contedo trs elementos <th> que, por sua vez, possuem como contedo: Cidade, Populao e Km2. Note que Populao possui c cedilha e til. No fosse a Declarao XML com o atributo encoding com o valor ISO-8859-1, o browser no poderia ler a palavra. O Internet Explorer apresentaria uma mensagem de erro e outros browsers fariam a exibio com a falta de dois caracteres. A novidade a maneira de se criar as linhas seguintes da tabela. No caso, so duas linhas, mas poderia ser mais (cem, mil, ...). agora que entra a atuao dos elementos XSL <xsl:for-each> e <xsl:value-of>. Para facilitar o entendimento, destacamos um fragmento do cdigo.
<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 lao de repetio (loop). Os comandos enfeixados por ele sero executados cada vez que encontrar o elemento XML <cidade>, conforme definio do atributo select. A definio de select se faz com uma expresso XPath que semelhante especificao 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 contedo de um elemento XML, conforme definio do atributo select. A definio de select aqui tambm uma expresso XPath. Basta o nome do elemento; no pode ser colocada a sequncia 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, sero inseridas trs clulas com <td>. O contedo de cada clula sero dados extrados com <xsl:value-of> dos elementos <nome>, <populacao> e <area>.

Criao de DTD
O que DTD DTDs (Document Type Definitions) fazem parte da especificao oficial da XML 1.0. Na DTD estabelecem-se definies para as marcaes de documentos XML. O desenvolvedor, alm de seguir as regras da sintaxe XML, segue tambm as que ele mesmo definiu na DTD. Assim, o documento XML criado por ele, alm de ser um documento bem formado, ser tambem um documento vlido. Um browser pode analisar e apresentar um documento XML sem uma DTD j que a XML no a exige; basta que o documento esteja bem formado. Mesmo um documento XML que possua uma DTD, se nele for utilizada alguma marcao a mais (no presente na DTD), ainda assm ser processado, desde que no se contrarie as regras de

9 de 11

23/05/2013 20:58

XML Bsico

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

sintaxe. Apesar da no obrigatoriedade, a utilizao de uma DTD sobremaneira vantajosa. Imaginemos um documento XML sendo trabalhado por muitas pessoas ou, ainda mais, recebendo dados externos via rede. No havendo uma uma padronizao das marcaes, seria muito difcil manter a integridade desse documento. Numa DTD definimos os elementos e atributos que podero figurar no documento XML, a ordem em que podero aparecer, se devem aparecer uma ou mais vezes, etc. Mas no so s elementos e atributos que so definidos. Na verdade, uma DTD define marcaes, isto , ela pode conter as declaraes de marcaes (markup declarations) que abaixo relacionamos. declaraes de tipos de elementos (element type declarations); declaraes de lista de atributos (attribute-list declarations); declaraes de entidades (entity declarations); declaraes de notaes (notation declarations). Como acrescentar uma DTD a um documento XML Um documento XML pode possuir uma DTD interna ou pode possuir uma referncia a uma DTD externa, ou ambas as coisas. A interna fica inserida no prprio documento XML e a externa num arquivo parte. Eis uma vantagem no uso da externa: pode-se vincular vrios documentos XML a uma nica DTD. Formato da DTD interna:
<!DOCTYPE nome_elemento_raiz [ <!-- Declaraes de marcaes --> ]>

Formato da referncia DTD externa:


<!DOCTYPE nome_elemento_raiz SYSTEM endereo_arquivo>

Observe-se o seguinte: obrigatrio que o nome da DTD (interna ou externa) seja o mesmo nome atribudo ao elemento raiz do documento XML. A localizao da DTD interna ou da referncia DTD externa no documento XML deve ser no prlogo imediatamente acima do elemento raiz. O arquivo que constitui a DTD externa deve conter as declaraes de marcaes (e somente elas). So 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 prprio documento XML (DTD interna) e como pode ser criada como um documento parte (DTD externa). As modificaes que fizemos no arquivo cidades.xml esto evidenciadas com a cor verde e ao arquivo que contm a DTD externa atribumos 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>

10 de 11

23/05/2013 20:58

XML Bsico

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

</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> </cidades>
Arquivo cidades.dtd

<!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT

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

Note que a DTD uma s; ora interna, ora externa. Nela aparecem apenas declaraoes de tipos de elementos. Vamos examinar cada declarao: A primeira declarao define o elemento <cidades> que deve ter como contedo somente o elemento <cidade> uma ou mais vezes. O sinal mais indica uma ou mais ocorrncias (pelo menos uma). A segunda define o elemento <cidade> que deve ter como contedo os elementos <nome>, <populacao> e <area>; somente eles. Cada um deve aparecer uma nica vez, mas devem aparecer. A separao com vrgulas indica que as ocorrncias devem estar na mesma ordem em que esto dispostos. As trs ltimas definem os elementos <nome>, <populacao> e <area> que devem ter como contedo 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, ento, submet-lo a um analisador XML e este ir indicar que se trata de um DOCUMENTO VLIDO.

Copy right 2006 Abpsoft. Todos os direitos reser vados.

| Mapa do Site |

11 de 11

23/05/2013 20:58

You might also like