1) O documento discute XML, incluindo suas características, regras de construção e modelos de processamento como SAX e DOM.
2) XML é usado para estruturar dados hierarquicamente e permite a criação de novas tags, diferente de HTML que tem tags pré-definidas.
3) As regras de XML incluem ter um elemento raiz, tags de abertura e fechamento correspondentes, e diferenciar maiúsculas de minúsculas.
1. PÓS-GRADUAÇÃO EM TECNOLOGIAS DA
INFORMÁTICA E COMUNICAÇÃO
2011/2012
Trabalho Prático 4 – XML.
Aluna: Joana Maria Dias da Costa, nº 3718
2. Índice
XML- conceito................................................................................................................................ 3
XML (Extensible Markup Language) .......................................................................................... 3
Características do XML .............................................................................................................. 3
XML versus HTML .......................................................................................................................... 4
Regras de Construção.................................................................................................................... 5
Regras de Sintaxe ...................................................................................................................... 5
SECÇÕES CDATA ........................................................................................................................ 8
Esquema DTD ............................................................................................................................ 9
Esquema XML Schema ............................................................................................................ 10
MODELOS DE PROCESSAMENTO................................................................................................. 11
SAX .......................................................................................................................................... 11
DOM ........................................................................................................................................ 12
CONCLUSÃO ................................................................................................................................ 14
BIBLIOGRAFIA .............................................................................................................................. 15
2
3. XML- conceito
XML (Extensible Markup Language) é uma recomendação da W3C para
gerar linguagens de marcação para necessidades especiais.
É um dos subtipos da SGML (acrônimo de Standard Generalized Markup
Language, ou Linguagem Padronizada de Marcação Genérica) capaz de
descrever diversos tipos de dados. Seu propósito principal é a facilidade de
compartilhamento de informações através da internet.
Entre linguagens baseadas em XML incluem-se XHTML (formato para páginas
Web), RDF,SDMX ,SMIL, MathML (formato para expressões matemáticas),
NCL, XBRL, XSIL e SVG (formato gráfico vetorial). A principal característica do
XML, de criar uma infra-estrutura única para diversas linguagens, é que
linguagens desconhecidas e de pouco uso também podem ser definidas sem
maior trabalho e sem necessidade de ser submetidas aos comitês de
padronização.
Características do XML
Em meados da década de 1990, o World Wide Web Consortium (W3C)
começou a trabalhar em uma linguagem de marcação que combinasse a
flexibilidade da SGML com a simplicidade da HTML. O princípio do projeto era
criar uma linguagem que pudesse ser lida por software, e integrar-se com as
demais linguagens. Sua filosofia seria incorporada por vários princípios
importantes:
Separação do conteúdo da formatação
Simplicidade e legibilidade, tanto para humanos quanto para
computadores
Possibilidade de criação de tags sem limitação
Criação de arquivos para validação de estrutura (chamados DTDs)
Interligação de bancos de dados distintos
Concentração na estrutura da informação, e não na sua aparência
O XML é um formato para a criação de documentos com dados organizados de
forma hierárquica, como se vê, frequentemente, em documentos de texto
formatados, imagens vetoriais ou bancos de dados.
3
4. Pela sua portabilidade, já que é um formato que não depende das plataformas
de hardware ou de software, um banco de dados pode, através de uma
aplicação, escrever em um arquivo XML, e um outro banco distinto pode ler
então estes mesmos dados.
XML versus HTML
Em traços muito gerais o HTML é identificado por um conjunto de códigos que
permitem representar graficamente um determinado documento, através de
uma formatação baseada num esquema de etiquetas (tags) que,
posteriormente, são interpretadas pelos browsers. Tal como o HTML, o XML
também utiliza etiquetas como <title> ou <body> e atributos como "lang=en".
Mas, enquanto que com o HTML é a própria linguagem que especifica o que
cada etiqueta e atributo especificam, o XML usa as etiquetas apenas para
delimitar blocos de dados e deixa a interpretação dos mesmos para a
aplicação. Assim, em função do contexto programático, um <p> que em HTML
significa sempre um novo parágrafo, pode em XML significar um preço, uma
pessoa, ou o que nós desejarmos.
Apesar de ser uma ferramenta fácil de usar e aprender, facto pelo qual se
generalizou bastante o seu uso, verificam-se algumas desvantagens na
utilização do HTML que se prendem com o facto de: os dados estarem
dependentes da sua apresentação gráfica; não nos fornecer conteúdo
semântico e ter um número limitado de etiquetas.
O HTML especifica a formatação gráfica de um documento, enquanto que o
XML especifica a estrutura de dados. Com o XML, não estamos limitados a
etiquetas predefinidas, podemos criar a nossa estrutura e definir uma
interpretação para essa estrutura, sempre disponível no nosso sistema
informático.
O XML é uma tecnologia de conteúdos alternativa e também complementar ao
HTML, que vai provavelmente rivalizar mais com os formatos proprietários de
armazenamento de documentos, do que propriamente com o HTML. Por ser
altamente adaptável aos dados que pretende descrever, por facilitar a
interacção entre aplicações e documentos, e por produzir documentos auto-
descritivos, a tecnologia XML tem condições para se tornar num standard para
4
5. a publicação, armazenamento e transferência de documentos por via
electrónica.
Relativamente ao HTML, o XML trás grandes vantagens na sua utilização. Para
além da possibilidade de definição de novas marcas e etiquetas à medida dos
utilizadores e de um maior controlo sobre a aplicação de formatações e da
forma como estas aparecem nos browsers, o utilizador do XML fica com a
certeza de publicar os seus documentos num formato standard (independente
dos fabricantes de software), facilmente interpretável por múltiplas aplicações e
em certa medida, auto-explicativo.
Regras de Construção
As regras de construção englobam os seguintes itens: sintaxe, secções,
CDATA, esquema DTD e XML schema.
Regras de Sintaxe
As regras de sintaxe da XML são bastante simples, mas devem ser seguidas
rigorosamente pelos interpretadores. Deste modo, estes programas podem ser
menos complexos, evitando situações de interpretação ambígua. Sendo uma
5
6. linguagem baseada em etiquetas, os documentos em XML têm que respeitar
rigorosamente as regras de construção de elementos e atributos.
Exemplo:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mensagem>
<de>Joana Costa</de>
<para>João Costa</para>
<assunto>Entrega de Prendas de Natal</assunto>
</mensagem>
Utilizando o exemplo acima descrito, podemos analisar as principais
regras de construção de documentos XML.
• O documento inicia-se com a declaração XML (pode surgir
opcionalmente no início do documento), seguindo-se o início do elemento
raiz do documento, que se chama mensagem.
• As três linhas seguintes contêm três elementos filhos de mensagem (de,
para e assunto). Cada um destes elementos poderia ter outros sub-
elementos e assim sucessivamente.
• O documento termina com o fecho do elemento raiz.
A declaração XML pode surgir opcionalmente no início do documento. Esta
declaração define a versão da XML e a codificação de caracteres utilizada. No
exemplo, a versão é a 1.0 e o código de caracteres é o ISO-8859-1 (Latin-1/W
est European).
A declaração XML faz parte da estrutura do documento, mas não é um
elemento, sendo que para diferenciar, a sintaxe da declaração utiliza —<? ...
?>― em vez de―<...>―. Uma outra diferença é que a declaração não tem uma
etiqueta de fecho correspondente.
O código de caracteres utilizado define a maneira como os diferentes
caracteres que compõem o documento XML são representados no ficheiro.
Caso sejam utilizados caracteres fora do código definido, o interpretador gera
um erro ao ler o ficheiro. Alguns valores frequentes para esta definição são —
UTF-8―, —UTF-16― (correspondentes a Transformações Unicode).- Os
documentos XML têm que ter um elemento raiz, e esse elemento tem que ser
6
7. único. Os restantes elementos têm que estar dentro do elemento raiz. Todos os
elementos podem ter sub-elementos (elementos filhos):
<raiz>
<filho>
<neto>...</neto>
</filho>
</raiz >
- Todos os elementos de um documento têm que conter o fecho das etiquetas
respectivas:
<x>Incorrecto
<x>Correcto</x>
- Os elementos estão correctamente ordenados quando as etiquetas abrem e
fecham em sequências inversas:
<x><y>Incorrecto</x></y>
<x><y>Correcto</y></x>
No primeiro exemplo: abrir x, abrir y, fechar x, fechar y œ> Incorrecto.
No segundo exemplo: abrir x, abrir y, fechar y, fechar x œ> Correcto.
Os sub-elementos têm que estar correctamente ordenados dentro do seu
elemento pai.
- As etiquetas XML diferenciam entre maiúsculas e minúsculas (são case-
sensitive):
<Mensagem>Errado</mensagem>
<mensagem>Correcto </mensagem>
<Mensagem>Correcto </Mensagem>
O primeiro exemplo é incorrecto porque a etiqueta de abertura não
corresponde à etiqueta de fecho (diferem na primeira letra), o que já não
acontece nos dois outros exemplos.
- Os valores dos atributos têm que estar envolvidos em aspas:
<mensagem numero="13">
7
8. - O XML preserva o espaço branco (espaços, mudanças de linha, tabulações,
etc).
Este espaço não é reduzido a um único caracter.
- A sintaxe para escrever comentários em documentos XML é a seguinte:
<!-- Comentário -->
Se um documento respeitar todas estas regras de construção, diz-se bem-
formado (well-formed) e pode ser utilizado por qualquer interpretador XML.
Além de bem-formado, um documento pode ser também válido. Um elemento
diz-se válido se é bemformado e respeita uma gramática definida por DTD ou
XML Schema.
SECÇÕES CDATA
Todo o texto de um documento XML é interpretado durante a leitura do ficheiro,
para permitir a detecção de inícios e fins de etiquetas.
Existem alguns caracteres que são ilegais em XML, pois a sua utilização
geradocumentos com interpretações ambíguas. Estes caracteres têm que ser
substituídospor entidades referenciais (começadas pelo caracter "&" e
terminadas pelo carácter ";").Os caracteres ilegais XML são ―<‖ e ―&‖ que
devem ser substituídos por < e &, respectivamente. Existem outros
caracteres, que apesar de não serem ilegais, também devem ser substituídos
para evitar dificuldades de leitura, sendo >, e " que devem sersubstituídos por
>, ' e ", respectivamente.
Exemplo:
<condicao> se salario < 1000 entao </condicao>
Tem que ser substituído por:
<condicao> se salario < 1000 entao </condicao>
O CDATA permite definir secções de texto do documento XML que não são
interpretadas, e que portanto não restringem a utilização de caracteres ilegais.
Uma secção CDATA começa com "<![CDATA[" e termina com "]]>":
8
9. Exemplo:
<script>
<![CDATA[
if (a < b && a < 0) then
return 1;
else
return 0;
]]>
</script>
As secções CDATA não podem conter outras secções CDATA, ou seja, não
podem conter as sequências de caracteres "<![CDATA[" ou "]]>"
A sequência "]]>" também não pode ter espaços nem mudanças de linha no
seu interior.
Esquema DTD
O DTD é um documento (esquema) que validará um documento XML. Lee e
Chu apud Pinheiro (2003), em estudos comparativos para validação estrutural
e sintática da XML, apontam vários fatores restritivos ao uso da DTD:
sua sintaxe não é baseada ou derivada da XML, o que não permite que
ela seja validada por um parser.
as declarações da DTD são globais, não permitindo declarar elementos
de mesmo nome em pontos distintos do documento;
a DTD tem deficiências na especificação do tipo de dado dos elementos
(inteiro, real, alfa-numérico, etc).
Exemplo de uma DTD
<!ELEMENT PRODUTOS ((PRODUTO))+>
<!ELEMENT PRODUTO (NOME, FABRICANTE, PRECO)>
<!ELEMENT FABRICANTE (FANTASIA, RAZAOSOCIAL, ENDERECO+)>
<!ELEMENT ENDERECO (RUA, NUMERO, CIDADE, ESTADO, CEP)>
<!ELEMENT NOME (#PCDATA)>
<!ELEMENT PRECO (#PCDATA)>
<!ELEMENT FANTASIA (#PCDATA)>
9
10. <!ELEMENT RAZAOSOCIAL (#PCDATA)>
<!ELEMENT RUA (#PCDATA)>
<!ELEMENT NUMERO (#PCDATA)>
<!ELEMENT CIDADE (#PCDATA)>
<!ELEMENT ESTADO (#PCDATA)>
<!ELEMENT CEP (#PCDATA)>
<!ATTLIST PRECO
MOEDA CDATA #REQUIRED
PAIS CDATA #REQUIRED>
<!ATTLIST FABRICANTE
NACIONALIDADE CDATA "BRASILEIRA">
Esquema XML Schema
As deficiências apontadas na DTD, foram suficientes para o W3C, em 2001,
lançar e recomendar o XML Schema. Segundo Pinheiro (2003, p. 39), ―um
Esquema XML tem por objetivo descrever a estrutura de um documento. Ele
define os elementos existentes no documento, bem como sua ordem e os
valores possíveis para os conteúdos‖. A figura a seguir mostra-nos um exemplo
de um XML Schema.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 2 (http://www.xmlspy.com) by Gestão e Desenvolvimento
WEB -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="mensagem"/>
<xs:element name="de" type="xs:string">
<xs:annotation>
<xs:documentation>Comment describing your root
element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="assunto" type="xs:string"/>
<xs:element name="para" type="xs:string"/>
<xs:element name="data" type="xs:date"/>
<xs:element name="texto" type="xs:string"/>
10
11. </xs:schema>
As principais características do XML Schema são explicadas por Pinheiro
(2003):
tem a mesma estrutura de um documento XML, ou seja, é uma
aplicação XML, com o mesmo vocabulário,6 capaz de definir
estruturalmente classes de documentos XML, e validá-las;
namespaces (espaço de nomes): contextualiza um nome de elemento
ou de atributo em um documento XML, ou seja, determina um escopo
para os elementos declarados. Utilizando o espaço de nomes, passa a
ser permitido a repetição de um nome de elemento em um documento
XML, desde que esteja em escopos diferentes. Declaram-se os
namespaces apontando uma URI (uniform resource identifier). A XML
permite que se declarem vários namespaces em um único documento,
para tal, identifica cada um separado pelo caracter dois pontos (―:‖), da
palavra reservada xmlns.
grande diversidade de tipos de elementos;
Com relação à criação do XML Schema, temos um conjunto de regras
determinadas pelo W3C, que são: definições básicas; estruturas; tipos de
dados.
MODELOS DE PROCESSAMENTO
Existem dois modelos de processamento de documentos XML:
• Simple API for XML (SAX);
• Documento Object Model (DOM).
A escolha do modelo de processamento num programa XML não depende só
das suas características, depende também da funcionalidade disponível na
biblioteca de programação utilizada.
SAX
SAX (Simple API for XML) não é um padrão do W3C. Existem diversos
analisadores SAX, para diferentes linguagens de programação, dentre elas,
Java, C++ e Delphi. As especificações SAX estão disponíveis publicamente.
11
12. SAX é um analisador baseado em eventos – ele lê um fluxo de entrada
XML. SAX é bastante simples, não exige muita memória e suporta namespace.
Não é possível modificar um documento XML, pois SAX é somente de leitura.
DOM
DOM (document object model) é uma interface de programação de
aplicação completa para documentos XML. Esta interface permite que clientes
possamnavegar, acrescentar, modificar ou excluir documentos XML. DOM é
relativamente pesado nos recursos, porém, ao contrário do SAX, armazena a
estrutura completa do documento na memória.
Como exemplo de uma implementação DOM muito popular nas
plataformas Windows é o MSXML da Microsoft. A figura mostra-nos um
exemplo de DOM:
Set xmlDoc = CreateObject("Msxml2.DOMDocument.4.0")
Set stylePI = xmlDoc.createProcessingInstruction("xml", "version=""1.0""")
xmlDoc.appendChild(stylePI)
Set root = xmlDoc.createElement("ALUNOS")
xmlDoc.appendChild root
AdicionaAluno "1", "Renato", root
AdicionaAluno "2", "Paulo", root
10
AdicionaAluno "3", "Marcos", root
AdicionaAluno "4", "Sérgio", root
xmlDoc.save "c:alunos.xml"
sub AdicionaAluno(id, nome, raiz)
set eleAluno = xmlDoc.createElement("ALUNO")
eleAluno.setAttribute "id", id
set eleNome = xmlDoc.createElement("NOME")
Set eleNomeConteudo = xmlDoc.createTextNode(nome)
eleNome.appendChild eleNomeConteudo
eleAluno.appendChild eleNome
12
14. CONCLUSÃO
Neste trabalho, procurou-se ressaltar a importância da utilização da XML. Já
faz alguns anos que a área de TI se vê confrontada ao desafio da integração
das diferentes aplicações corporativas e dos sistemas legados.
Este quadro fez com que o W3C recomendasse a XML e todas as tecnologias
que giram em torno dela. Intensificou-se, entretanto, o esforço de integração e
racionalização dos processos de negócio.
A Internet, como facilitadora do processo, possibilitou o desenvolvimento de
arquiteturas de comunicação, disponibilizando parte das informações das
organizações, extrapolando as fronteiras corporativas. Os novos protocolos
web promovem o intercâmbio de documentos XML, com sofisticadas formas de
segurança.
Conclui-se que, com o mundo XML, de padrões abertos, torna-se mais simples
a implementação, do que a utilização de soluções tradicionais proprietárias.
14