AeroPlanos

Aero

Aero

S.O.S. XML

XML - eXtensible Markup Language

Introdução

EXtensible Markup Language é uma linguagem criada para descrever e caracterizar dados.

Não é uma alternativa a HTML, mas um seu complemento.

Enquanto o papel de HTML é o de controlar o aspecto de um elemento, XML caracteriza-o, descrevendo o que é.

XML é um formato de texto, flexivel e simples, concebido originalmente para apresentar grandes publicações electrónicas. Tem desempenhado um papel cada vez mais importante na manipulação e transmissão de dados na Web e noutros ambientes, como por exemplo, nos telemóveis.

Exemplo de um ficheiro XML

O exemplo seguinte é um ficheiro relativo a aviões:

— "Planes1.xml"
<?xml version="1.0" encoding="ISO-8859-1"?>
<Planes>
  <Aviao>
    <imagem name="src">imgs/cs-xao.jpg</imagem>
    <Modelo>Van's RV-6</Modelo>
    <VNE>210</VNE>
    <Stall>49</Stall>
    <Takeoff>270</Takeoff>
    <Landing>300</Landing>
    <Gross>1600</Gross>
    <Empty>1000</Empty>
    <Power>180</Power>
  </Aviao>
</Planes>

A primeira linha de código é a declaração do tipo de ficheiro, "Documento XML".

Toda a informação está abrangida pelo elemento <Planes>. Este elemento possui um sub-elemento <Avião>, que por sua vez contém outros sub-elementos (child-nodes), <imagem>, <Modelo>, <VNE>,...

Utilizando XML os dados são armazenados fora do ficheiro.html, resultando como benefício que a alteração dos dados altera automaticamenta a apresentação do documento HTML, sem que para isso se tenha de alterar o ficheiro.html, responsável apenas pela apresentação.

A base de dados XML pode também ser armazenada dentro de páginas HTML como "Data Islands".

Objectivo

Observando o exemplo do documento XML apresentado, podemo-nos aperceber que não contém nenhuma instrução! Apenas contém dados! Os dados foram armazenados de acordo com o critério de quem os recolheu, livremente e independentemente de qualquer regra previamente estabelecida.

Se um documento XML não executa qualquer tarefa, apenas armazena dados, qual será o objectivo desta linguagem?

O objectivo é precisamente armazenar dados!

O problema de incompatibilidade de transmissão da informação entre os vários programas e sistemas existentes, pode ser resolvido com este tipo de documentos.

A grande vantagem de utilização do tipo de documentos XML, é possibiliar que outros computadores, utilizando diferentes sistemas operativos ou outros programas, possam aceder à mesma base de dados utilizando a Internet.

XML é uma linguagem que respeita os Web standards definidos pelo World Wide Web Consortium (W3C).

XML Data Islands

Como visualizar o conteúdo de documentos XML?

O browser ao apresentar um documento XML, como não reconhece o significado das instruções <Planes>, <Avioes>, etc. apresenta o documento tal como ele é.
Exemplo: — "Planes1.xml"

Podemos no entanto inclui-lo num documento HTML, por exemplo nesta página, da seguinte maneira:

<xml id="Planes_performance" src="Planes1.xml"></xml>
<table border="1" cellspacing="0" cellpadding="5px"
  datasrc="#Planes_performance">
  <tr>
    <td><span datafld="Modelo"></span> </td>
    <td>
      VNE: <span datafld="VNE"></span>mph<br>
      Stall: <span datafld="Stall"></span>mph<br>
      Landing Dist: <span datafld="Landing"></span> feet
    </td>
  </tr>
</table>

Resultando:

Nota:

Na primeira linha de comando o "tag" utilizado foi <xml>.

Este "tag" é uma instrução HTML e não XML.

Esta é a razão pela qual em XML não é permitida a utilização desta sigla na definição de elementos.

Alterando o exemplo inicial, adicionando outro avião...

— "Planes2.xml"
<?xml version="1.0" encoding="ISO-8859-1"?>
<Planes>
  <Aviao>
    <imagem name="src">imgs/cs-xao.jpg</imagem>
    <Modelo>Van's RV-6</Modelo>
    <VNE>210</VNE>
    <Stall>49</Stall>
    <Takeoff>270</Takeoff>
    <Landing>300</Landing>
    <Gross>1600</Gross>
    <Empty>1000</Empty>
    <Power>180</Power>
  </Aviao>
  <Aviao>
    <imagem name="src">imgs/cs-xai.jpg</imagem>
    <Modelo>Aircamper</Modelo>
    <VNE>105</VNE>
    <Stall>40</Stall>
    <Takeoff>400</Takeoff>
    <Landing>300</Landing>
    <Gross>1100</Gross>
    <Empty>650</Empty>
    <Power>50</Power>
  </Aviao>
</Planes>

... e repetindo as mesmas instruções para a inclusão do documento XML nesta página...

<xml id="Planes2" src="Planes2.xml"></xml>
<table border="1" cellspacing="0" cellpadding="5px"
  datasrc="#Planes2">
  <tr>
    <td><span datafld="Modelo"></span> </td>
    <td>
      VNE: <span datafld="VNE"></span>mph<br>
      Stall: <span datafld="Stall"></span>mph<br>
      Landing Dist: <span datafld="Landing"></span> feet
    </td>
  </tr>
</table>

Resulta:

Nota:

Neste momento a base de dados Planes2.xml tem apenas dois aviões.


Adicionando mais aviões à base de dados, a apresentação será automaticamente actualizada.

Estes blocos de dados XML, introduzidos num documento HTML, foram apelidados: —"Data Islands".

Parser Error

Os documentos XML necessitam de estar correctamente formatados. Todos os documentos devem possuir uma declaração especificando o tipo de documento, document type declaration.

A verificação de erros pode ser feita com as seguintes instruções:

— "XML_ERROR_Checker.html"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Parser Error Checker</title>
<style type="text/css">
h2 {color:blue;}
</style>
</head>
<body>

<script type="text/javascript">
//var file = "Planes1.xml"
//var file = "Planes2.xml"
var file = "PlanesX.xml"

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.validateOnParse="true"
xmlDoc.load(file)

document.write("<h1>Parser error!</h1>")

document.write("Error Code: " + xmlDoc.parseError.errorCode
  + "<br />Error Reason: " + xmlDoc.parseError.reason
  + "<br />Error Line: " + xmlDoc.parseError.line)

document.write("<h2>" + "File: " + file + "</h2>")
</script>

</body>
</html>

!DOCTYPE "document type declaration" ver: — "S.O.S. DTD"

PlanesX.xml

Tomemos por referência o ficheiro PlanesX.xml como sendo a "nossa" base de dados de Aviões EXperimentais.

Qualquer página da internet (ou outro site) pode aceder a estes elementos e manuseá-los, sem ter a necessidade de criar uma nova base de dados.

Essa página (ou site), será automaticamente actualizada, sempre que se altere a base de dados (PlanesX.xml), como por exemplo a correcção de algum erro, ou a adição de mais um avião à lista dos EXperimentais.

O quadro seguinte apresenta o conteúdo actual da "Base de Dados":


Nota:
Esta lista pode ser completada com a tua ajuda.
Envia-me uma foto e as características do avião da tua preferência!
Obrigado.

Esta base de dados foi aqui introduzida utilizando XSL "eXtensible Stylesheet Language".

Para comparar as performances destes aviões... 4PlanesX.html