XML: uma introdução prática X100. Helder da Rocha

Documentos relacionados
5a. Aula - XML

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

XML Schema. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Tecnologias Internet

XML (extensible Markup Language)

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

Documentos XML 1/20. Exemplo de documento XML:

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

5 Tecnologias estudadas

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

Este relatório tem por objetivo, abordar a sintaxe XML.

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

Sintaxe XML. César Vittori Outubro de Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

Extensible Markup Language (XML) Júnio César de Lima Cedric Luiz de Carvalho. Instituto de Informática Universidade Federal de Goiás

Programação para Internet I Aulas 10 e 11

XML Schema. Um XML schema descreve a estrutura de um documento XML.

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Roteiro de Auxílio para as Atividades Práticas de Sistemas de Informação

PROGRAMAÇÃO DE COMPUTADORES

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

XML - Extensible Markup Language

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

Prova de Fundamentos de Bancos de Dados 1 a Prova

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Assunto: Identificação: Versão: Folha / Nº: Leiaute-IMPORTAÇÃO-NFSe - XML DOC-IN / 12

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc.

L A C Laboratory for Advanced Collaboration

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Transformação de documentos XML

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

XML e XSL. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias prof.claudinei.dias@gmail.com

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Fundamentos de Programação. Diagrama de blocos

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

XML. Introdução Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

XML. na gestão de informações. Helder da Rocha Consultor. Integração total de negócios usando XML. Integração total de negócios usando XML

DOCUMENTAÇÃO PARA GERAÇÃO DO XML DAJE E BOLETO

Manual do Desenvolvedor Geração de Tokens

Série Rações Semanais Xpath e XSLT Rogério Araújo

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Guia de Consulta Rápida XHTML. Juliano Niederauer. Novatec Editora.

Administração de Banco de Dados. José Antônio da Cunha CEFET - RN

Introdução a XML X100

Fundamentos de Sistemas Operacionais

Bem-vindo ao XML. Apostila de XML

Aula 11: Desvios e Laços

XML e XSL da Teoria à Prática. 20 de Abril de 2001

I. Conjunto Elemento Pertinência

Desenvolvimento em Ambiente Web. HTML - Introdução

Programação Orientada a Objetos SANTOS, Rafael

Bases de dados semi-estruturadas, XML

[DCA: Declaração de Contas Anuais] [Versão 2 / ]

Conteúdo programático

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Oracle Database 10g: Fundamentos de SQL e PL/SQL

XHTML 1.0 DTDs e Validação

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

XPath. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

Introdução ao XML. Extensible Markup Language

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Algoritmia e Programação APROG HTML. Introdução. Nelson Freire (ISEP DEI-APROG 2014/15) 1/15

Capítulo 9 - Imagens. Imagens

#Aula Nº 1 Introdução webstandards.samus.com.br Vinicius Fiorio Custódio samus@samus.com.br

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo

XML (extensible Markup Language)

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

XML: uma introdução prática <xml:introdução />

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Linguagem XML (extensible Markup Language)

Leiaute de arquivos XML para Carta-Circular 3254

Programação de Computadores - I. Profª Beatriz Profº Israel

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML NAMESPACES. Prof. Angelo Augusto Frozza, M.Sc.

PROCEDIMENTOS PARA INCLUSÃO DE PERIÓDICOS NO PORTAL DE PERIÓDICOS FCLAR UNESP

Modelo Comportamental

[DCA: Declaração de Contas Anuais] [Versão 1 / ]

Informática I. Aula 6. Aula 6-12/09/2007 1

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

XML extensible Markup Language. Prof. Fellipe Aleixo

Planejamento - 2. Definição de atividades Sequenciamento das atividades. Mauricio Lyra, PMP

com Utilização do Código de Barras VERSÃO 04

APOSTILA DE INFORMÁTICA INTERNET E

Técnicas e processos de produção. Profº Ritielle Souza

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE

Page 1. Prof. Constantino Jacob

Transcrição:

XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em setembro de 2001 1

Como criar um documento XML XML não tem comandos, nem operadores, nem funções, nem tipos Não é exatamente uma "linguagem" A especificação XML não estabelece nenhum vocabulário Define apenas uma estrutura e sintaxe geral para a organização de informações estruturadas Para criar o menor documento XML Abra um editor de textos qualquer Salve o arquivo com extensão.xml Escreva um elemento raiz vazio; por exemplo: <hello/> Salve o arquivo Abra em um browser como Firefox ou Internet Explorer 2

Especificação XML As regras para criação de documentos XML são definidas pelo World Wide Web Consortium (W3C) através de especificação http://www.w3.org/tr/xml/ A especificação não define nomes de elementos e atributos (cada aplicação define os seus) como escrever documentos válidos: a validade de um documento XML é definido pelo autor da aplicação em que ele é usado A especificação define tokens, caracteres e formatos de texto que podem ser usados em documentos XML (basicamente texto Unicode) elementos e atributos reservados (começam com o string xml) regras mínimas que possibilitam a leitura por um processador XML: um documento que segue essas regras é bem formado como uma aplicação pode validar um documento XML usando um DTD (Document Type Definition) com sintaxe similar a SGML 3

Estrutura XML Um documento XML pode ser representado como uma árvore. A estrutura é formada por vários nós (galhos e folhas) <?xml version="1.0" encoding="iso-8859-1"?> <!-- Isto é um comentário --> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo="residencial" > <ddd>21</ddd> <numero>2313011</numero> </telefone> </cartao-simples> informações usadas pelo processador XML um "nó" pode ser... um elemento, um atributo, um bloco de texto, um comentário, uma instrução, uma declaração, uma entidade,... 4

/ cartao-simples nó raiz elemento raiz do documento Árvore XML email nome dumont@14bis.com.br Alberto Santos Dumont telefone endereco Rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ logotipo href numero ddd /imagens/logo14bis.gif 5 2313011 tipo residencial 21 LEGENDA nó de elemento nó de atributo nó de texto www.argonavis.com.br 5

Componentes de um documento Um documento pode conter Prólogo Comentários Instruções de processamento Atributos nos elementos Nós de texto dentro dos elementos Elementos aninhados (sendo apenas um na raiz) Conteúdo misto (elemento e texto) dentro de elementos Entidades gerais Entidades de caractere Blocos CDATA 6

Declaração XML Comentário (pode aparecer em qualquer lugar) Instrução de processamento Declaração de tipo de documento Prólogo <?xml version="1.0" encoding="iso-8859-1"?> <!-- Isto é um comentário --> <?comando tipo="simples" parametro?> <!DOCTYPE cartao-simples SYSTEM "cartoes.dtd"> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo="residencial" > <ddd>21</ddd> <numero>2313011</numero> </telefone> </cartao-simples> 7

elementos Nó raiz e elementos elemento raiz do documento nó raiz ( / ) <?xml version="1.0" encoding="iso-8859-1"?> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo="residencial" > <ddd>21</ddd> elementos <numero>2313011</numero> </telefone> </cartao-simples> 8

Só podem conter um descendente: nó de texto <?xml version="1.0" encoding="iso-8859-1"?> Atributos <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo="residencial" > <ddd>21</ddd> <numero>2313011</numero> </telefone> atributos </cartao-simples> 9

Nós de texto Não podem ter descendentes (são as folhas da árvore) <?xml version="1.0" encoding="iso-8859-1"?> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo="residencial" > <ddd>21</ddd> <numero>2313011</numero> </telefone> </cartao-simples> nós de texto 10

Entidades gerais São constantes associadas a um valor de texto Podem aparecer em qualquer lugar do documento São substituídas durante o processamento do documento Podem ser definidas pelo usuário (via DTD) Sintaxe: &entidade; Exemplo: &data_de_hoje; Entidades pré-definidas: < que corresponde a < > que corresponde a > & que corresponde a & " que corresponde a " &apos; que corresponde a ' 11

Entidades de caracteres Também são substituídas durante o processamento do documento Sintaxe: &#CÓDIGO_16b decimal; &#xcódigo_16b hexadecimal; Exemplos: A %#x0042; representa um espaço em Unicode Veja mais em www.unicode.org/charts/ XML não define por default as entidades do HTML Não existe ou ã a menos que sejam definidas em um DTD (como no DTD do XHTML) 12

Elementos e atributos: regras básicas Etiqueta inicial e final têm que ter o mesmo nome (considerando diferença de maiúscula e minúscula) Não pode haver espaço depois do < nas etiquetas iniciais nem depois do </ nas finais Atributos têm sempre a forma nome, seguido de '=', seguido do valor entre aspas ou apóstrofes nome="valor" ou nome = 'valor' são válidos aspas podem ser usadas entre apóstrofes apóstrofes podem ser usados entre aspas aspas e apóstrofes não podem ser neutralizados, mas podem ser representados pelas entidades " e &apos; Não pode haver atributos na etiqueta final Atributos não podem se repetir no mesmo elemento 13

Um documento é bem formado quando Tem um único elemento raiz Todas as etiquetas iniciais e finais dos seus elementos combinam (levando em conta maiúsculos e minúsculos) Seus elementos estão bem aninhados Não acontece nada do tipo <a><b></a></b> Valores dos atributos estão entre aspas ou apóstrofes Os atributos não se repetem Elementos e atributos têm identificadores válidos Comentários não aparecem dentro de etiquetas Sinais < ou & nunca ocorrem dentro de atributos ou nós de texto do documento 14

Elementos e atributos Elementos mal formados <Profissão>Arquiteto</profissão> <TR><TD>item um</td></tr> <td>item um</ td> <equacao>x + y < z + k</equacao> <ДЕНГИЙ>139.00</денгий> Atributos mal formados <profissao tipo=1>arquiteto</profissão> <chave x="x$%9_"pz99" /> <a x="1" y="2" z="3" x="0" /> Elementos e atributos bem formados <profissao tipo='2'>físico</profissão> <chave x = "X$%9_"PZ99" /> 15

Quando usar elementos ou atributos? Há várias maneiras de representar a mesma informação em XML <data>23/02/1998</data> <data dia="23" mes="02" ano="1998" /> <data> <dia>23</dia> <mes>02</mes> <ano>1998</ano> </data> 16

Quando usar elementos ou atributos? Uma questão de design Elementos geralmente referem-se a coisas que têm atributos Atributos geralmente são características dessas coisas que podem ser descritas com poucas palavras Uma questão de suporte tecnológico Atributos não podem conter subelementos Atributos são mais fáceis de serem validados num DTD Sempre que possível, priorize os argumentos de design aos de suporte tecnológico 17

Identificadores de elementos e atributos Nomes de atributos e elementos Podem conter qualquer caractere alfanumérico ou ideograma. (ponto) (hífen) _ (sublinhado) Não podem começar com ponto hífen número Não podem começar com a seqüência 'xml' É reservada para atributos e elementos com significado especial, definido em especificação (ex: xmlns, xml:lang) 18

Identificadores de elementos e atributos Elementos bem formados <αριστοτελεσ>περι ποιητικησ</αριστοτελεσ> <книга xml:lang='ru'> <название>евгений Онегин</название> <автор рождение="1799" смерть="1837">александр Сергеевич Пужкин</автор> </книга> <_1_/> <cdd:gen.inf cdd:cod="005">introdução a XML</cdd:gen.inf> Elementos mal formados <3 intro>fundamentos</3 intro> <cartão de crédito>1234567887654321</cartão de crédito> <xmligue>coisas</xmligue> 19

Texto misturado com elementos XML Conteúdo misto <trecho> <secao>2</secao> <paragrafo>a unidade de informação dentro de um documento XML é o <definicao>elemento</definicao>. Um elemento é formado por duas <definicao>etiquetas</definicao> que atribuem algum significado ao conteúdo. </paragrafo> </trecho> 20

Ignora efeitos especiais dos caracteres Bloco CDATA <titulo>curso de XML</titulo> <exemplo>considere o seguinte trecho de XML: <![CDATA[ <empresa> <nome>joão & Maria S/A</nome> </empresa> ]]> </exemplo> 21

Instruções de processamento Instruções dependentes do processador Funcionam como comentários para os processadores que não a conhecem <?nome do alvo área de dados?> <?query sql select nome, email from agenda where id=25?> 22

Comentários Iguais aos comentários HTML <! Isto é um comentário > Comentários não podem conter a seqüência -- <! isto é um erro sério! > 23

Declaração XML É uma instrução de processamento para o processador XML É opcional Exceto quando o encoding não for UTF-8 (default) <?xml version="1.0" encoding="iso 8859 1" standalone="yes"?> 24

XML Namespaces Permite que elementos de mesmo nome de diferentes aplicações sejam misturados sem que haja conflitos Um namespace (universo de nomes) é declarado usando atributos reservados xmlns="identificador" (namespace default): associa o identificador com todos os elementos contidos no elemento que declara o atributo que não estão qualificados com prefixo. Ex: <nome> xmlns:prefixo="identificador": associa o identificador com os elementos e atributos contidos no elemento que declara o atributo cujo nome local é precedido do prefixo. Ex <prefixo:nome> O prefixo é arbitrário e só existe dentro do documento O identificador (geralmente uma URI) deve ser reconhecido pela aplicação para validar o documento XML Namespaces é uma especificação a parte http://www.w3.org/tr/xml names/ 25

<ct:cartao Vale para todo o elemento <cartao> Exemplo xmlns:ct="urn:b1-01.234.567/cartoes"> <ct:nome>alberto Santos Dumont</ct:nome> <ct:endereco>rua do Encanto, 22 - Centro 25600-000 - Petrópolis - RJ</ct:endereco> <ct:email>dumont@14bis.com.br</ct:email> <ct:telefone tipo="residencial"> <ct:ddd>21</ct:ddd> <ct:numero>2313011</ct:numero> </ct:telefone> </ct:cartao> Esta URI está associada a este prefixo 26

Exemplo com 3 namespaces <departamento xmlns:ct="urn:b1-01.234.567/cartoes" Namespace default xmlns="emp:e2-3349.9.0001-89/empresa" xmlns:html="http://www.w3.org/wd/rec-html/strict"> <ct:nome>fulano de Tal</ct:nome> <nome>contabilidade</nome> <endereco>rua Projetada, 33</endereco> <html:a href="web.html"> <html:strong>link negrito HTML</html:strong> </html:a> <urgencia><ct:numero>2313011</ct:numero></urgencia> </departamento> URI padrão XHTML 27

Observações importantes sobre namespaces O escopo da declaração xmlns (sem prefixo) inclui O elemento onde ela acontece Os elementos-filho O escopo da declaração xmlns:prefixo inclui O próprio elemento se qualificado com mesmo prefixo Os elementos-filho qualificados com o prefixo Os atributos do elemento onde ocorre a declaração e elementos filho qualificados com o prefixo O identificador não representa endereço na internet Geralmente é escrito como URL, porque URLs são unívocas O identificador é string e não endereço: omitir ou incluir uma / final faz diferença Declarar e usar um namespace pode ser opcional Depende da aplicação que irá processar o documento 28