XML: Introdução - Marx Gomes Van der Linden
Transcrição
XML: Introdução - Marx Gomes Van der Linden
XML Introdução Ferramentas para Internet Marx Gomes Van der Linden ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) Objetivos Apresentar a linguagem de marcação XML bem como algumas tecnologias correlatas Discutir a importância da XML para o desenvolvimento de aplicações Web e para a evolução da Internet Analisar alguns cenários práticos http://marx.vanderlinden.com.br 2 Bibliografia “Aprendendo XML” Erik T. Roy, Editora Campus. http://marx.vanderlinden.com.br 3 Introdução Acrônimo para eXtensible Markup Language Proposto pelo W3C (World Wide Web Consortium) como um padrão para representação e troca de dados pela Web. http://marx.vanderlinden.com.br 4 Visão Geral XML é uma especificação para a criação de linguagens de marcação, para propósito geral. Pode ser vista como uma metalinguagem, isto é, um padrão para criação de novas linguagens. http://marx.vanderlinden.com.br 5 XML como Metalinguagem Exemplos de linguagens que seguem a especificação XML: – InkML: Utilizada para descrever escrita em dispositivos eletrônicos – MathML: Mathematical Markup Language – CML: Chemical Markup Language – SMIL: Synchronized Multimedia Integration Language – RDF: Resource Description Framework – RSS: Really Simple Syndication – SVG: Scalable Vector Graphics – HTML http://marx.vanderlinden.com.br 6 Documento XML Em XML, um documento é uma seqüência de caracteres que especifica uma estrutura de dados, de acordo com os padrões de XML e da linguagem implementada. Um documento pode ser implementado fisicamente em: Um arquivo Um banco de dados Um fluxo de dados entre aplicações ou pela rede Uma estruturahttp://marx.vanderlinden.com.br armazenada em memória 7 Vantagens Padrão aberto Texto simples Separação entre estrutura, conteúdo e apresentação Extensível Flexível Base para novas soluções tecnológicas na web (Web Semântica, Web Services, etc.) http://marx.vanderlinden.com.br 8 Exemplo: MathML <?xml version="1.0"?> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>F</mi> <mo>=</mo> <mi>G</mi> <mo>⁢</mo> <mfrac> <mrow> <mi>M</mi> <mo>⁢</mo> <mi>m</mi> </mrow> <apply> <power/> <ci>r</ci> <cn>2</cn> </apply> </mfrac> http://marx.vanderlinden.com.br 9 </math> Exemplo: SVG <?xml version="1.0" standalone="no"?> <! DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG20001102/DTD/svg-20001102.dtd"> <svg> <desc>Three shapes</desc> <rect fill="green" x="1cm" y="1cm" width="3cm" height="3cm"/> <circle fill="red" cx="3cm" cy="2cm" r="4cm"/> <polygon fill="blue" points="110,160 50,300 180,290"/> http://marx.vanderlinden.com.br </svg> 10 Contexto Internet XML Documentos Banco de Dados http://marx.vanderlinden.com.br 11 Tecnologias Relacionadas XPath XSchema JAXP XLink XML XHTML XQL XSLT http://marx.vanderlinden.com.br 12 Usando XML SGBD DOM / SAX HTML XSLT 100 XSLT 80 60 <XML> Leste 40 Oeste 20 Norte 0 1° 2° 3° XSLT 4° Trim Trim Trim Trim XSL-FO XSLT XSLT TEX PDF VRML WML http://marx.vanderlinden.com.br 13 SGML • Standard Generalized Markup Language Padrão internacional para definição de formatos de representação de textos em meios eletrônicos HTML é uma linguagem definida por SGML XML é um subconjunto de SGML, com regras bem mais estritas http://marx.vanderlinden.com.br 14 Características de SGML CDF HTML TEX SGML XML Doc Book RDF CML TEI http://marx.vanderlinden.com.br 15 Objetivos de XML A forma do documento deve estar associada à sua função Metalinguagem Documentos não podem conter ambigüidade na interpretação dos dados Separação entre marcação e apresentação Simplicidade e generalização Evitar "reinventar a roda" Universalidade Unicode http://marx.vanderlinden.com.br 16 Observações XML não leva em consideração como os dados serão apresentados Devem existir outros padrões para descrever o formato de apresentação dos dados CSS (Cascading Style Sheet) XSL (eXtensible Style Sheet) http://marx.vanderlinden.com.br 17 Ferramentas Qualquer ferramenta que trabalhe com Unicode (ou com seu subconjunto, o ASCII) pode ser utilizada para escrever documentos XML: Edit Word VI e Pico (Unix) Notepad http://marx.vanderlinden.com.br 18 Ferramentas Para aumentar produtividade XMLSpy XMLWriter Stylus Studio Dreamweaver http://marx.vanderlinden.com.br 19 Construindo Documentos XML Um documento XML é um documento de texto Unicode formado por um conjunto de elementos Sua estrutura segue uma determinada hierarquia Cada elemento é descrito através de marcações ou tags http://marx.vanderlinden.com.br 20 Estrutura de um Documento XML Prólogo Corpo do documento http://marx.vanderlinden.com.br 21 Prólogo A primeira parte de um documento XML se chama prólogo Oferece informações administrativas sobre o documento Contém Declaração XML, Declaração de Tipo de Documento e Subconjunto Interno Opcional, mas é importante que sempre esteja presente. http://marx.vanderlinden.com.br 22 Prólogo Prólogo <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE email SYSTEM "info.dtd" [ <!ENTITY cap1 SYSTEM "ch01.xml"> <!ENTITY cap2 SYSTEM "ch01.xml"> ]> <email> ... </email> http://marx.vanderlinden.com.br Corpo do Documento 23 Declaração XML Apresenta as seguintes informações ao browser: O documento é XML A versão adotada Tipo de codificação Existência ou não de outros documentos associados http://marx.vanderlinden.com.br 24 Declaração XML Parâmetros – Version: atual é 1.0 – Encoding: codificação de caracteres usada no documento – Standalone: informa ao browser se há outros documentos para se carregar yes: não há arquivo(s) (Default) no: há arquivo(s) http://marx.vanderlinden.com.br 25 Prólogo Declaração XML <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE email SYSTEM "info.dtd" [ <!ENTITY cap1 SYSTEM "ch01.xml"> <!ENTITY cap2 SYSTEM "ch01.xml"> ]> <email> ... </email> http://marx.vanderlinden.com.br Corpo do Documento 26 Tipo de Documento Definições usadas para validar o documento Identifica de que forma o documento será validado Localização do modelo Tipo de acesso ao modelo http://marx.vanderlinden.com.br 27 Tipo de Documento Parâmetros Elemento raiz do documento Tipo de acesso do modelo sendo usado Tipo de ambiente onde se encontra o modelo URI do modelo http://marx.vanderlinden.com.br 28 Prólogo Declaração XML <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE email SYSTEM "info.dtd" [ <!ENTITY cap1 SYSTEM "ch01.xml"> <!ENTITY cap2 SYSTEM "ch01.xml"> ]> URI do modelo <email> ... </email> Elemento Raiz http://marx.vanderlinden.com.br Corpo do Documento 29 Tipo de Documento As regras que definem um documento podem estar localizados em dois tipos de lugares Internamente (Subconjunto Interno) Externamente (Subconjunto Externo) http://marx.vanderlinden.com.br 30 Tipo de Documento Subconjunto Externo As regras encontram-se fora do arquivo XML, ou seja no modelo encontrado no arquivo DTD ou XSchema sendo referenciado Pode ser compartilhado por vários arquivos XML Mais comum http://marx.vanderlinden.com.br 31 Tipo de Documento Subconjunto Interno As regras são definidas dentro do próprio documento XML Aumenta ou redefine as declarações encontradas no subconjunto externo http://marx.vanderlinden.com.br 32 Tipo de Documento Subconjunto Externo <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE email SYSTEM "info.dtd" [ <!ENTITY cap1 SYSTEM "ch01.xml"> <!ENTITY cap2 SYSTEM "ch01.xml"> ]> <email> ... </email> Subconjunto Interno http://marx.vanderlinden.com.br Corpo do Documento 33 Corpo do Documento Formado por um conjunto de objetos de marcação XML Elementos Declarações de Namespaces Entidades Comentários Instruções de processamento Seções CDATA http://marx.vanderlinden.com.br 34 Elemento Representa um conceito ou uma parte do conceito sendo modelado O conceito pode ser concreto ou abstrato É a base de um documento XML Descrito como uma seção específica do documento Permite que seções diferentes de um documento possam ser tratadas ou usadas de forma diferente http://marx.vanderlinden.com.br 35 Sintaxe de um Elemento Deve começar com um sublinhado ou uma letra Pode conter qualquer quantidade de letras, números, hífens, pontos e sublinhados Pode ser escrito em caracteres de qualquer alfabeto (ocidental, árabe, grego, chinês, etc.) Case sensitive Não pode haver espaço entre o < e a primeira letra do nome do elemento http://marx.vanderlinden.com.br 36 Tipos de Elementos Existem dois tipos de elementos: Container <elemento> Conteúdo </elemento> Vazio <elemento> </elemento> <elemento /> http://marx.vanderlinden.com.br 37 Elemento Container Um elemento Container pode ser composto de: Caracteres Outros elementos Outros elementos e caracteres http://marx.vanderlinden.com.br 38 Caracteres <preço> 10.00 </preço> Caracteres e Elementos Elementos <validade> <dia> 06 </dia> <mês> 06 </mês> <ano> 06 </ano> </validade> <produto> Esse produto está em promoção! <preco> 10.00 </preco> <validade> <dia> 06 </dia> <mês> 06 </mês> <ano> 06 </ano> </validade> http://marx.vanderlinden.com.br </produto> 39 Elemento Vazio <x/> Menor Documento XML http://marx.vanderlinden.com.br 40 Elemento Raiz Representa o elemento que se encontra no topo da hierarquia de um documento XML Todos os demais elementos são descendentes dele http://marx.vanderlinden.com.br 41 <?xml version="1.0" ?> <cidade> <bairro ref=“10”> <rua> <casa num="100"> Dona Maria </casa> <casa num="200"> Seu João </casa> </rua> <rua> <casa num="1"> Dona Francisca </casa> </rua> </bairro> <bairro ref="2"> <rua> <casa num="10"> Dona Margarida </casa> http://marx.vanderlinden.com.br 42 </rua> </bairro></cidade> Elemento Raiz raiz cidade bairro ref="10" rua casa num=“100” Dona Maria bairro ref="2" rua casa num=“200” Seu João rua casa num=“1” casa num=“10” Dona Francisca Dona Margarida http://marx.vanderlinden.com.br 43 Nó cidade bairro ref="10" rua casa num=“100” Dona Maria bairro ref="2" rua casa num=“200” Seu João rua casa num=“1” nó casa num=“10” Dona Francisca Dona Margarida http://marx.vanderlinden.com.br 44 Folha cidade bairro ref="10" rua Dona Maria rua casa num=“200” casa num=“100” Seu João folha bairro ref="2" rua casa num=“1” casa num=“10” Dona Francisca Dona Margarida http://marx.vanderlinden.com.br 45 Atributos Um elemento pode possuir um ou mais atributos Atributos de um mesmo elemento não podem ter o mesmo nome São especificados no marcador de início ou no marcador que define um elemento vazio http://marx.vanderlinden.com.br 46 Atributos Exemplos <midia id = "100"> <tipo> LP </tipo> <titulo> Balão Mágico </titulo> <ano> 1983 </ano> </midia> <arquivo path="file:capa1.jpg" /> <img src="capa1.jpg" /> http://marx.vanderlinden.com.br 47 Elementos e Atributos Distinção entre um elemento e um atributo nem sempre é clara Elementos possuem estrutura hierárquica Endereço, produto, nota fiscal Elementos podem ter mais de um valor Autor, dono, responsável http://marx.vanderlinden.com.br 48 Entidades Constantes associadas a um valor de texto Podem aparecer em qualquer lugar de um documento XML Substituídas durante o processamento http://marx.vanderlinden.com.br 49 Entidades Entidades Gerais Parâmetros Internas Externas Caractere Conteúdo Misto Não Analisadas Pré-definidas Numeradas Nomeadas http://marx.vanderlinden.com.br Internas Externas 50 Entidades Gerais de Caractere Representam um único caractere – Pré-definidas: &(&), "("), ' ('), >(>) e <(<); – Numeradas: &#caracter_unicode; (Ç = ç ou ç) http://marx.vanderlinden.com.br 51 Entidades Gerais de Caractere Exemplos <?xml version=“1.0”?> <!DOCTYPE codigo SYSTEM “programa.dtd”> <codigo> <estrutura> <if> if (a > b) { código } else {código} </if> </estrutura> http://marx.vanderlinden.com.br 52 </codigo> Conteúdo Misto Valores de tamanho ilimitado que podem incluir marcação e texto – Internas: aponta para texto no próprio documento Texto repetido com freqüência – Externas: aponta para texto em outro documento Pedaços de arquivo XML http://marx.vanderlinden.com.br 53 Entidades Gerais Internas <?xml version="1.0" ?> <!DOCTYPE msg SYSTEM "/xml/dtds/carta.dtd" [ <!ENTITY eu "Marcelo José Siqueira Coutinho de Almeida"> <!ENTITY cefet "Centro Federal de Ensino Tecnológico da Paraíba"> ]> <msg> Ilmo Sr. Presidente da Nut Software, Meu nome é &eu; e trabalho no &cefet;... </msg> http://marx.vanderlinden.com.br 54 Entidades Gerais Externas Fragmento XML &parte1; meuarquivo.xml &parte2; Documento XML outroarquivo.xml Fragmento XML http://marx.vanderlinden.com.br 55 Entidades Gerais Externas <?xml version="1.0" ?> <!DOCTYPE doc SYSTEM "genérico.dtd" [ <!ENTITY parte1 SYSTEM "meuarquivo.xml"> <!ENTITY parte2 SYSTEM "outroarquivo.xml"> ]> <doc> &parte1; &parte2; </doc> http://marx.vanderlinden.com.br 56 Entidades Gerais Não-Analisadas Mantém o conteúdo que não deve ser analisado, pois, do contrário, poderia confundir o analisador. Ex.: gráficos, sons, dados não caracteres. Depende de uma notação (NOTATION) Só pode ser referenciado em atributos <!ENTITY nome SYSTEM "uri" NDATA notação> http://marx.vanderlinden.com.br 57 Entidades Gerais Não-Analisadas Fica em um arquivo DTD <!NOTATION gif SYSTEM "image/gif"> <!ENTITY mapa SYSTEM "brasil.gif" NDATA gif> <imagem fonte="&mapa;"> Fica em um arquivo XML 58 http://marx.vanderlinden.com.br Categorias de Documentos Bem Formados Um documento é bem formado quando está de acordo com a sintaxe da especificação XML. Válidos Além de bem formado, está de acordo com a gramática que define a sua estrutura http://marx.vanderlinden.com.br 59 Documentos Bem Formados É essencial que um documento XML seja bem formado Ter um único elemento raiz Valores dos atributos devem estar entre aspas Atributos não podem se repetir Todos os elementos devem ter tags de fechamento Todos os elementos devem estar aninhados corretamente http://marx.vanderlinden.com.br 60 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE livro SYSTEM "info.dtd" > Documentos Bem Formados <índice> <capítulo> <título número=1 número=I> Introdução <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </seção> </itálico> </capítulo> <capítulo> <título número=2 número=II> Era Moderna <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> http://marx.vanderlinden.com.br 61 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE livro SYSTEM "info.dtd" > Documentos Bem Formados <livro> <índice> <capítulo> <título número=1 número=I> Introdução <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </seção> </itálico> </capítulo> <capítulo> <título número=2 número=II> Era Moderna <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> http://marx.vanderlinden.com.br 62 </livro> <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE livro SYSTEM "info.dtd" > Documentos Bem Formados <livro> <índice> <capítulo> <título número="1" número="I"> Introdução <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </seção> </itálico> </capítulo><capítulo> <título número="2" número="II"> Era Moderna <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> http://marx.vanderlinden.com.br 63 </livro> <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE livro SYSTEM "info.dtd" > Documentos Bem Formados <livro> <índice> <capítulo> <título número="1"> Introdução <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </seção> </itálico> </capítulo><capítulo> <título número="2"> Era Moderna <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> </livro> http://marx.vanderlinden.com.br 64 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE livro SYSTEM "info.dtd" > Documentos Bem Formados <livro> <índice/> <capítulo> <título número="1"> Introdução </título> <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </seção> </itálico> </capítulo><capítulo> <título número="2"> Era Moderna </título> <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> http://marx.vanderlinden.com.br 65 </livro> <?xml version="1.0" encoding="utf-8" ?> Documentos Bem Formados <!DOCTYPE livro SYSTEM "info.dtd" > <livro> <índice/> <capítulo> <título número="1"> Introdução </título> <seção> Pré-História </seção> <seção> O Homem de <itálico> Cro-Magnon </itálico> </seção> </capítulo><capítulo> <título número="2"> Era Moderna </título> <seção> Sociedade Industrial </seção> <seção> Sociedade Tecnológica </seção> </capítulo> http://marx.vanderlinden.com.br 66 </livro>
Documentos relacionados
Trabalhando com XML
informações nos são apresentadas. De cara você detecta logo do que se trata o arquivo sem a necessidade de um documento para detalhar cada conjunto de dados. Vimos que XML DOM é uma boa escolha par...
Leia maisAlgoritmos Morfológicos escritos em XML
no sistema de criação de documentos conhecido como LATEX [13]. O conteúdo é armazenado em um arquivo texto, a estrutura é armazenada em um arquivo de estilo (book, article, report, etc.) e a saída ...
Leia maisXPath e XSLT - Marx Gomes Van der Linden
São utilizados para descrever como uma determinada parte de um documento XML deve ser transformada. Uma Folha de Estilo XSL deve ser composta por um ou mais templates. Semelhante à definição ...
Leia mais