xml (extensible markup language) por rafael port da rocha ... · xml - extensible markup language...

18
XML (eXtensible Markup Language) por Rafael Port da Rocha (Notas de Aula) 2007

Upload: vodieu

Post on 18-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

XML (eXtensible Markup Language)

por

Rafael Port da Rocha

(Notas de Aula)

2007

XML - eXtensible Markup Language

⇒ Introcução

♦ Componentes de um Documento Eletrônico DigitalConteúdo: formado pelas informações que o documento transmite aos seus leitores, como seu título, seus autores, seu texto, etc.Estrutura: organização da informaçãoApresentação/Estilo: formada por elementos que indicam como o conteúdo será apresentado quando o documento eletrônico for visualizado, isto é, são elementos que indicam como o documento será formatado (tipo de letra, cor de letra, localização do título, tabulações, etc.)

♦ Linguagem de Marcação (Markup Language)• Linguagem através da qual marcas (tags) descrevem

o significado de cada entidade informacional de um documento

♦ Exemplos de Marcações:• <li> José da Silva </li>

Marcação na linguagem HTML que indica que “José da Silva” deve ser exibido na forma de item: “ • José da Silva “

• <nome> José da Silva </nome> Marcação na linguagem XML que indica que o

texto “José da Silva” significa um nome de pessoa

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ XML (eXtensible Markup Language)♦ Padrão para definição, validação e compartilhamento de

informação formatada em um documento eletrônico♦ A informação é estruturada através de marcações

(tags): • Exemplo: <Placa> IIK1040 </Placa>

IIK1040 é uma informação marcada por <Placa>

A marcação inicia por <Placa>, encerra por </Placa> e contém como conteúdo IKK1040

♦ As marcações definem o significado das informações contidas no documento XML, permitindo que este documento seja trocado por sistemas de informação em um ambiente de comércio eletrônico B2B

• Exemplo: <Placa> IIK1040 </Placa> A marcação <Placa> indica que a informação IIK1040 corresponde a uma placa de automóvel

♦ Marcações podem conter marcações, formando um documento com uma estrutura complexa• Exemplo:

<Veiculo> <Placa> IIK1040 </Placa> <Modelo> VW Fusca </Modelo> <AnoFabricacao> 1981 </AnoFabricacao> <Proprietario> <Nome> Antonio Carlos </Nome> <Localizacao> [email protected] </Localizacao> </Proprietario> </Veiculo>

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

♦ Documentos XML são usados tanto para troca de informações entre sistemas de informação (Comércio eletrônico B2B),

DocXML Computador

BComputador

A

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Estrutura de um documento XML♦ Um documento XML é formado por elementos e

atributos♦ Em um documento XML:

• Um elemento é formado pelo par inicio e fim de marcação:

<Placa> IJD9090 </Placa>

Onde: <Placa> é o início de marcação, </Placa> é o fim de marcação, e IJD9090 é o conteúdo

• Um elemento pode conter texto e/ou outros elementos

<Proprietario> <Nome> Joaquim Manuel </Nome> <Localizacao> [email protected] </Localizacao>

</Proprietario>

O elemento Proprietário contém os elementos Nome e Localização

O elemento Nome contém o texto Joaquim Manuel O elemento Localização contém o texto [email protected]

• Um atributo é uma informação adicional associada ao elemento. Fica junto ao início de marcação do elemento

<Valor Moeda="Real"> 1000,00 </Valor> O atributo Moeda, do elemento Valor, informa

que o conteúdo está em Reais

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

<?xml version="1.0" encoding="ISO-8859-1" ?><?xml-stylesheet href='Veiculos.xsl' type='text/xsl'?><!DOCTYPE Veiculos SYSTEM "Veiculos.dtd"><RegistroDeVeiculos> <Veiculo> <Placa> IJD9090 </Placa> <Modelo> VW Brasilia </Modelo> <AnoFabricacao> 1981 </AnoFabricacao> <Proprietario> <Nome> Jose da Silva </Nome> <Localizacao> [email protected] </Localizacao> <Localizacao> <Endereco> <Rua> Rua A </Rua> <Numero> 123 </Numero> <Cidade> Santa Maria </Cidade> </Endereco> </Localizacao> </Proprietario> <Valor Moeda = "Real"> 1000,00 </Valor> </Veiculo> <Veiculo> <Placa> IKK1010 </Placa> <Modelo> VW Variant </Modelo> <AnoFabricacao> 1970 </AnoFabricacao> <Proprietario> <Nome> Joaquim Manuel </Nome> <Localizacao> [email protected] </Localizacao> </Proprietario> </Veiculo> <Veiculo> <Placa> IIK1040 </Placa> <Modelo> VW Fusca </Modelo> <AnoFabricacao> 1981 </AnoFabricacao> <Proprietario Tipo="PJuridica"> <Nome> Antonio Carlos </Nome> <Localizacao> [email protected] </Localizacao> </Proprietario> <Veiculo> </RegistroDeVeiculos >

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Cometários do Exemplo♦ É um documento que contém descrições de veículos♦ Contém o elemento inicial: RegistroDeVeiculos

<RegistroDeVeiculos> .... </RegistroDeVeiculos>

♦ O elemento RegistroDeVeiculos contém três elementos Veiculo

<RegistroDeVeiculos> <Veiculo> ... </Veiculo> <Veiculo> ... </Veiculo> <Veiculo> ... </Veiculo> </RegistroDeVeiculos>

♦ Cada elemento Veiculo contém os elementos Placa, Modelo, AnoFabricacao, Proprietario e Valor.

<Veiculo> <Placa> ... </Placa> <Modelo> ... </Modelo> <AnoFabricacao> ... </AnoFabricacao> <Proprietario> ... </Proprietario> <Valor Moeda = “....”> ... </Valor> </Veiculo>

♦ Os elementos Placa, Modelo, Moeda e AnoFabricação contêm texto em seu conteúdo

♦ O elemento Valor possui o atributo Moeda, que indica a moeda do valor

♦ O elemento Valor é opcional, não está representado nos veículos IKK1010 e IIK1040.

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

♦ O elemento Proprietário contém o elemento Nome e vários elementos Localização.

♦ O proprietário do veículo IJD9090 possui duas localizações, e os proprietários dos veículos IKK1010 e IIK1040 possuem uma única localização cada.

♦ O elemento Localização é construído de duas formas• Primeira: contém um texto como valor

<Localizacao> [email protected] </Localizacao>

• Segunda: contém o elemento endereço

<Localizacao><Endereco>

<Rua> Rua A </Rua> <Numero> 123 </Numero> <Cidade> Santa Maria </Cidade> </Endereco> </Localizacao>

♦ O elemento Endereço contém os elementos Rua, Numero e Cidade

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ DTD (Document Type Definition)♦ Um DTD é um documento que define as regras para a

construção de um documento XML, isto é, define quais os tipos de elementos que podem ser usados no documento, e maneira com que elementos destes tipos podem ser combinados

♦ No DTD, uma regra deve ser definida para especificar como deve ser construído cada tipo de elemento :

Tipo de Elemento Regra (Conteúdos possíveis para um elemento do tipo)

Veículo Placa seguido deModelo seguido deAnoFabricacao seguido deProprietario seguido deValor (que é opcional)

Placa TextoModelo TextoAnoFabricacao TextoValor Texto, com o atributo MoedaPriprietário Nome seguido de um ou mais

elementos LocalizacaoNome TextoLocalizacao Várias ocorrências de:

Texto ou elemento Endereco

Endereco Rua, seguido de Numero seguido deCEP (que é opcional) seguido de Cidade

Rua TextoNumero TextoCidade TextoCEP TextoRegistroDeVeiculos Zero ou mais elementos

Veiculo

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

♦ Uma regra possui o seguinte formato: <!ELEMENT “tipoDoelemento” “conteúdosPossíveis”>

• Onde: TipoDoElemento indica um tipo de elemento

possível no documento ConteúdosPossíveis indica quais os conteúdos

possíveis para este tipo de elemento

♦ Exemplo de DTD para o XML de veículos

<!ELEMENT RegistroDeVeiculos (Veiculo)* ><!ELEMENT Veiculo ( Placa, Modelo, AnoFabricacao, Proprietario, Valor? )><!ELEMENT Placa (#PCDATA)><!ELEMENT Modelo (#PCDATA)><!ELEMENT AnoFabricacao (#PCDATA) ><!ELEMENT Proprietario (Nome, Localizacao+) ><!ELEMENT Nome (#PCDATA) ><!ELEMENT Localizacao (#PCDATA|Endereco)*><!ELEMENT Enderec (Rua, Numero ,CEP? ,Cidade)><!ELEMENT Rua (#PCDATA) ><!ELEMENT Numero (#PCDATA) ><!ELEMENT CEP (#PCDATA) ><!ELEMENT Cidade (#PCDATA) ><!ELEMENT Valor (#PCDATA) ><!ATTLIST Valor Moeda

(Real | Dollar | Euro) #REQUIRED >

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

♦ Comentários sobre o exemplo:

<!ELEMENT Veiculo ( Placa, Modelo, AnoFabricacao,

Proprietario, Valor? )>♦ significa que: o tipo de elemento Veículo deve conter Placa, seguido de Modelo, seguido de AnoFabricacao, seguido de Proprietario, seguido de Valor, que é opcional (símbolo ? indica opcional, símbolo “,” indica “seguido de”).

<!ELEMENT Placa (#PCDATA)>♦ significa que o tipo de elemento Placa deve conter

texto como valor

<!ELEMENT RegistroDeVeiculos (Veiculo)* >♦ significa que: RegistroDeVeiculos deve conter zero ou

mais elementos Veiculo (símbolo * indica zero ou mais)

<!ELEMENT Proprietario (Nome, Localizacao+) >♦ significa que: Proprietario deve conter Nome seguido de

um ou mais elementos Localização (símbolo + indica um ou mais)

<!ELEMENT Localizacao (#PCDATA|Endereco)*>♦ significa que: Localizacao deve conter zero ou mais

ocorrências de texto ou Endereco (símbolo * indica zero ou mais, símbolo | indica ou)

<!ATTLIST Valor Moeda (Real | Dollar | Euro) #REQUIRED >

♦ significa que o elemento Valor deve conter o atributo Moeda, e que o valor do atributo moeda deve ser: Real ou Dollar ou Euro.

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Documento XML bem formado

• Um documento XML é dito bem formado quando suas marcações estão corretas, isto é, de estão de acordo com a linguagem de marcação de XML

Documento bem formado: <a atr=”x”> <b> abc </b> </a>

Documento que não é bem formado:<a> <b> abc </a></b>Erro: O elemento <b> encerra por </a> e o elemento <a> encerra por </b>

Documento que não é bem formado<a> <b> abc </b> <c> de <c></a>

Erro: O elemento <c> não é encerrado

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Documento XML Válido• Um documento XML é dito válido quando é bem

formado e obedece as regras de um DTD, isto é, as elementos estão de acordo com as regras estabelecidas no DTD

• Exemplo: sendo um DTD com as seguintes regras

<!ELEMENT a (b)+ ><!ELEMENT b (c, d) ><!ELEMENT c (#PCDATA)><!ELEMENT d (#PCDATA)>

O seguinte documento é bem formado e válido para o DTD definido acima

<a> <b> <c> bla</c> <d> bla </d> </b> <b> <c> bla </c> <d> bla </d> </b> </a>

O seguinte documento bem formado, mas não é válido para o DTD definido acima

<a> <b> <d> bla </d> </b> <b> <c> bla </c> <d> bla </d> </b> </a>

Erro: A primeira ocorrência de <b> não é válida, pois deve conter os elementos <c> e <d>

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

♦ Parsers são programas que verificam se um documento XML está válido para um DTD

Doc.XML

Doc.DTD

Doc.XMLbem

formadoe válido

ParserXML

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Sintaxe da linguagem DTD• Declaração de Elemento: <!Element “nome” “modelo de conteúdo”>

• Modelo de conteúdo Indica os elementos que podem ocorrer no

conteúdo do elemento declarado Contém indicadores de ocorrência dos elementos

que podem ocorrer no conteúdo do elemento declarado

A? = uma ou zero ocorr. de AA* = zero ou mais ocorr. de AA+ = uma ou mais ocorr. de AA|B = ocorre A ou BA,B = ocorre A seguido por B#PCDATA = ocorre cadeia de caracteresANY = conteúdo é um elemento vazioANY = ocorrência de qualquer elemento do DTD

• Declaração de atributo<!ATTLIST “nome do elemento” “nome do atributo” “tipo” “valor padrão”>

Exemplos de Tipos Exemplos de valores padrões

CDATA = valor de atributo é uma seqüência de caract.

#REQUIRED = atributo obrigatório

ID = atributo que deve ter valor único

#IMPLIED = atributo opcional

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

no documento

⇒ Exercício 1♦ Verificar os documento Veiculos.xml, Veiculos.dtd

⇒ Exercício 2♦ Contruir um documento XML para representar turmas

de uma disciplina, de acordo com o seguinte DTD:

<!-- DTD Disciplina --><!ELEMENT Diciplina (Nome, CargaHoraria, Turma*)><!ELEMENT Nome (#PCDATA)> <!ELEMENT CargaHoraria (#PCDATA)><!ELEMENT Turma ( Semestre, Horario, Professor+, Aluno+)><!ELEMENT Semestre (#PCDATA)><!ELEMENT Horario (#PCDATA)><!ELEMENT Professor (Nome, Endereco)><!ELEMENT Aluno (Nome, Endereco, Situacao)><!ELEMENT Endereco (Logradouro,Numero,CEP?,Cidade)><!ELEMENT Logradouro(#PCDATA) ><!ELEMENT Numero (#PCDATA) ><!ELEMENT CEP (#PCDATA) ><!ELEMENT Cidade (#PCDATA) ><!ELEMENT Situacao (Avaliacao, Faltas)><!ELEMENT Avaliacao (#PCDATA)><!ATTLIST Avaliacao Tipo ( Nota | Conceito ) #REQUIRED><!ELEMENT Faltas (#PCDATA)>

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Exercício 3♦ Dublin Core é um é um esquema de para descrever

recursos (páginas) da Internet para fins de busca. ♦ O esquema é formado pelos 15 elementos descritos na

tabela a seguir♦ Atividades:

• Construir um DTD para representar os elementos do esquema Dublin Core

• Contruir um documento XML que contenha metadados que descrever o seguinte recurso, acordo com o DTD especificado: http://www.dgzero.org/dez01/Art_02.htm

Elemento DescriçãoTitle Título do recurso (página)Subject Tema , assunto do recurso Description Descrição do conteúdo do recurso

Language Idioma do recursoSource Informações sobre os recursos que

contribuíram para a elaboração do recurso corrente.

Relation Recursos que possuem relacionamentos com o recurso corrente

Coverage Características espaciais ou temporais

Creator Pessoa ou organização responsável pela criação do conteúdo intelectual do recurso.

Contributor Pessoa ou organização que contribui intelectualmente na criação do recurso (exemplo: editor, ilustrador, tradutor, etc)

Publisher Identifica a entidade responsável por tornar o recurso disponível

Rights Direitos autoraisDate Data da criação ou publicação do recursoType Forma como o conteúdo é expresso (artigo,

relatório técnico, dissertação)Format Formato em que o recurso é materializado

(postScript, HTML, DOC, PDF, etc.)Identifier Possui o identificador único do recurso

(URI, ISSBN, etc.)

Notas de Aula - Rafael Port da Rocha - 2007 ©

XML - eXtensible Markup Language

⇒ Bibliografia

Bax, M. Introdução às linguagens de marcas. Ciência da Informação, Brasília, v. 30, n. 1, p. 32-38, jan./abr. 2001

Almeida, M. Uma introdução ao XML, sua utilização na Internet e alguns conceitos complementares. Ciência da Informação, Brasília, v. 31, n. 2, p. 5-13, maio/ago. 2002

Marchal, B. XML: conceitos e aplicações. São Paulo:Berkeley, 2000Norman, P. A Study of Extensibel Markup LanguageSouza, M.; Vendrusculo, L.; Melo Metadados para a descrição de recursos

de informação eletrônica:utilização do padrão Dublin Core. Ci. Inf., Brasília, v. 29, n. 1, p. 93-102, jan./abr. 2000

XML Bible. www.ibiblio.org/xml/books/bible/updates/14.html

Notas de Aula - Rafael Port da Rocha - 2007 ©