XML

1,728 views

Published on

Published in: Education
  • Be the first to comment

XML

  1. 1. Instituto Superior de Entre Douro e VougaTecnologias da Informação e da Comunicação│2010/2011 Tecnologias de Internet Trabalho realizado por: Sérgio Paulo Lopes da Rocha Santa Maria da Feira, 26 Novembro de 2010
  2. 2. TP 4 - Trabalho Prático XML Í NDICE1. HTML versus XML................................................................................................. 32. Regras de construção ........................................................................................... 5 2.1 Regras de Sintaxe......................................................................................... 5 2.2 Secções CDATA ........................................................................................... 7 2.3 Esquema DTD............................................................................................... 9 2.4 Esquema XML Schema .............................................................................. 103. Modelos de Processamento ................................................................................ 14 3.1 SAX............................................................................................................. 14 3.2 DOM............................................................................................................ 144. Conclusão............................................................................................................ 155. Bibliografia........................................................................................................... 16 Sérgio Rocha - 2104 ISVOUGA Página 2 de 16
  3. 3. TP 4 - Trabalho Prático XML1. HTML VERSUS XMLEm traços muito gerais o HTML (HyperText Markup Language) é identificado por umconjunto de códigos que permitem representar graficamente um determinadodocumento, 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 (eXtensible Markup Language) também utiliza etiquetascomo <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 XMLusa as etiquetas apenas para delimitar blocos de dados e deixa a interpretação dosmesmos para a aplicação. Assim, em função do contexto programático, um <p> queem HTML significa sempre um novo parágrafo, pode em XML significar um preço, umapessoa, ou o que nós desejarmos.O HTML especifica a formatação gráfica de um documento, enquanto que o XMLespecifica a estrutura de dados.Com o XML, não estamos limitados a etiquetas predefinidas, podemos criar a nossaestrutura e definir uma interpretação para essa estrutura, sempre disponível no nossosistema 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 armazenamentode documentos, do que propriamente com o HTML. Por ser altamente adaptável aosdados que pretende descrever, por facilitar a interacção entre aplicações edocumentos, e por produzir documentos auto-descritivos, a tecnologia XML temcondições para se tornar num standard para a publicação, armazenamento etransferência de documentos por via electrónica.Relativamente ao HTML, o XML trás grandes vantagens na sua utilização. Para alémda possibilidade de definição de novas marcas e etiquetas à medida dos utilizadores ede um maior controlo sobre a aplicação de formatações e da forma como estasaparecem nos browsers, o utilizador do XML fica com a certeza de publicar os seusdocumentos num formato standard (independente dos fabricantes de software),facilmente interpretável por múltiplas aplicações e, em certa medida, auto-explicativo. Sérgio Rocha - 2104 ISVOUGA Página 3 de 16
  4. 4. TP 4 - Trabalho Prático XMLO esquema seguinte apresenta de forma simples a estrutura do XML:O XML tem os seguintes usos: • Separar dados do HTML; • Simplificar o compartilhamento de dados; • Simplificar a transferência de dados; • Simplificar a mudança de plataforma; • Ser a base para criação de novas linguagens para a Web.Sérgio Rocha - 2104 ISVOUGA Página 4 de 16
  5. 5. TP 4 - Trabalho Prático XML2. REGRAS DE CONSTRUÇÃOAs regras de construção englobam os seguintes itens: sintaxe, secções CDATA,esquema DTD e XML schema. 2.1 REGRAS DE SINTAXEAs regras de sintaxe da XML são bastante simples, mas devem ser seguidasrigorosamente pelos interpretadores. Deste modo, estes programas podem ser menoscomplexos, evitando situações de interpretação ambígua.Sendo uma linguagem baseada em etiquetas, os documentos em XML têm querespeitar rigorosamente as regras de construção de elementos e atributos.Exemplo: <?xml version="1.0" encoding="ISO-8859-1"?> <mensagem> <de>Sérgio Rocha</de> <para>Nuno Peixoto</para> <assunto>Entrega de Trabalho Prático</assunto> </mensagem>Utilizando o exemplo acima descrito, podemos analisar as principais regras deconstruçã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.Sérgio Rocha - 2104 ISVOUGA Página 5 de 16
  6. 6. TP 4 - Trabalho Prático XMLA declaração XML pode surgir opcionalmente no início do documento. Esta declaraçãodefine 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 fechocorrespondente.O código de caracteres utilizado define a maneira como os diferentes caracteres quecompõem o documento XML são representados no ficheiro. Caso sejam utilizadoscaracteres fora do código definido, o interpretador gera um erro ao ler o ficheiro. Algunsvalores frequentes para esta definição são —UTF-8“, —UTF-16“ (correspondentes aTransformações Unicode).- Os documentos XML têm que ter um elemento raiz, e esse elemento tem que serúnico. Os restantes elementos têm que estar dentro do elemento raiz. Todos oselementos 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 etiquetasrespectivas: <x>Incorrecto <x>Correcto</x>- Os elementos estão correctamente ordenados quando as etiquetas abrem e fechamem sequências inversas: <x><y>Incorrecto</x></y> <x><y>Correcto</y></x> Sérgio Rocha - 2104 ISVOUGA Página 6 de 16
  7. 7. TP 4 - Trabalho Prático XMLNo 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 outrosexemplos.- Os valores dos atributos têm que estar envolvidos em aspas: <mensagem numero="13">- 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. 2.2 SECÇÕES CDATATodo o texto de um documento XML é interpretado durante a leitura do ficheiro, parapermitir a detecção de inícios e fins de etiquetas. Sérgio Rocha - 2104 ISVOUGA Página 7 de 16
  8. 8. TP 4 - Trabalho Prático XMLExistem 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 &lt; e &amp;,respectivamente. Existem outros caracteres, que apesar de não serem ilegais, tambémdevem ser substituídos para evitar dificuldades de leitura, sendo >, e " que devem sersubstituídos por &gt;, &apos; e &quot;, respectivamente.Exemplo:<condicao> se salario < 1000 entao </condicao>Tem que ser substituído por:<condicao> se salario &lt; 1000 entao </condicao>O CDATA permite definir secções de texto do documento XML que não sãointerpretadas, e que portanto não restringem a utilização de caracteres ilegais. Umasecção CDATA começa com "<![CDATA[" e termina com "]]>":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 podemconter as sequências de caracteres "<![CDATA[" ou "]]>". Sérgio Rocha - 2104 ISVOUGA Página 8 de 16
  9. 9. TP 4 - Trabalho Prático XMLA sequência "]]>" também não pode ter espaços nem mudanças de linha no seuinterior. 2.3 ESQUEMA DTDO objectivo de uma Document Type Definition (DTD) é construir uma gramática quedefine a estrutura e elementos válidos de um tipo de documento XML. Os documentosque respeitam essa DTD dizem-se válidos.A DTD é efectuada numa linguagem própria com sintaxe própria, diferente do XML. Odocumento XML pode conter uma DTD embebida ou usar uma referência externa.Exemplo de um documento XML que referencia DTD: <?xml version="1.0"?> <!DOCTYPE note SYSTEM "mensagem.dtd"> <?xml version="1.0" encoding="ISO-8859-1"?> <mensagem> <de>Sérgio Rocha</de> <para>Nuno Peixoto</para> <assunto>Entrega de Trabalho Prático</assunto> </mensagem>Exemplo de DTD (mensagem.dtd): <!ELEMENT mensagem (de,para,assunto)> <!ELEMENT de (#PCDATA)> <!ELEMENT para (#PCDATA)> <!ELEMENT assunto (#PCDATA)>Quando o documento XML é lido por um interpretador, se a opção de validação estiveractiva, o DTD é utilizado para validar o documento. Caso o documento não respeite oDTD, gera-se um erro. Sérgio Rocha - 2104 ISVOUGA Página 9 de 16
  10. 10. TP 4 - Trabalho Prático XML 2.4 ESQUEMA XML SCHEMAA linguagem XML Schema, também conhecida por XML Schema Definition (XSD), éuma alternativa à DTD, mas as suas regras sintácticas são baseadas nas da XML. Poreste motivo, a XML Schema é uma aplicação da XML que descreve a estrutura de umdocumento.Os tipos de dados em XML Schema ou são “simple” ou “complex”.Tipo “simple”: • é um dos tipos básicos: string, date, float, double, timeDuration, ... • restringe o texto que pode aparecer no valor dum atributo ou no conteúdo dum elemento textual.Tipo “complex”: • Elemento que tenha atributos ou elementos filho; • Restringe o conteúdo dum elemento relativamente aos atributos e elementos filho que pode ter.Um XML Schema define: • Elementos que podem aparecer num documento; • Atributos que podem aparecer num documento; • Elementos que são elementos filhos; • A ordem dos elementos filhos; • O número de elementos filhos; • Se um elemento é vazio ou pode incluir texto; • Tipos de dados para elementos e atributos; • Valores por omissão ou fixos para elementos e atributos.A utilização de DTD tem tendência a ser substituída por XML Schema, porque estaúltima apresenta várias vantagens: Sérgio Rocha - 2104 ISVOUGA Página 10 de 16
  11. 11. TP 4 - Trabalho Prático XML • É extensível; • É mais expressiva que a DTD; • É escrita em XML; • Suporta tipos de dados; • Suporta espaços de nomes.Exemplo de um documento XML que referencia um Schema: <?xml version="1.0" encoding="ISO-8859-1"?> <shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd"> <orderperson>John Smith</orderperson> <shipto> <name>Ola Nordmann</name> <address>Langgt 23</address> <city>4000 Stavanger</city> <country>Norway</country> </shipto> <item> <title>Empire Burlesque</title> <note>Special Edition</note> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item>Sérgio Rocha - 2104 ISVOUGA Página 11 de 16
  12. 12. TP 4 - Trabalho Prático XML </shiporder>Exemplo de um XML Schema: <?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson" type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="quantity" type="xs:positiveInteger"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element>Sérgio Rocha - 2104 ISVOUGA Página 12 de 16
  13. 13. TP 4 - Trabalho Prático XML </xs:sequence> <xs:attribute name="orderid" type="xs:string" use="required"/> </xs:complexType> </xs:element></xs:schema>Sérgio Rocha - 2104 ISVOUGA Página 13 de 16
  14. 14. TP 4 - Trabalho Prático XML3. MODELOS DE PROCESSAMENTOExistem 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 suascaracterísticas, depende também da funcionalidade disponível na biblioteca deprogramação utilizada. 3.1 SAXO SAX processa documentos em série, lendo os dados XML e produzindo eventos devários tipos: início de documento, início de elemento, caracteres, fim de elemento, fimde documento, etc.Este modelo de processamento é mais rápido e utiliza menos memória que o DOM,devendo ser utilizado, por exemplo, no servidor de aplicações em rede. No entanto, oSAX necessita de mais programação para definir o tratamento dos eventos lançadospelo interpretador durante a leitura dos dados XML. Outra restrição é que não épossível voltar atrás no documento, devido ao processamento em série. 3.2 DOMO DOM lê o documento e constrói uma estrutura em árvore, em que cada nó é umcomponente do documento XML. Os nós podem ser elementos, atributos, texto e atécomentários. Os dois tipos mais comuns são elementos e texto.Utilizando o DOM é possível criar nós, remover nós, alterar o seu conteúdo e percorrero nó hierarquicamente (pai, filhos e irmãos). O principal problema deste modelo deprocessamento é que necessita de bastante memória, o que pode ser impeditivo demanipular documentos de grande dimensão. Por este motivo, o DOM é sobretudoutilizado em aplicações cliente orientadas a utilizador, que tipicamente correm emmáquinas com poucos problemas de memória. Sérgio Rocha - 2104 ISVOUGA Página 14 de 16
  15. 15. TP 4 - Trabalho Prático XML4. CONCLUSÃOO XML permite múltiplas formas de visualização, permitindo assim, que um únicodocumento possa ser apresentado de diversas formas, de acordo com o gosto doutilizador ou de acordo com as configurações da aplicação em uso.Essa múltipla visualização é processada localmente, no cliente, permitindo-nos ainda aintegração de dados estruturados de diversas fontes, tais como bancos de dados. Essaintegração pode ser feita num servidor intermediário, e os dados estarão disponíveispara clientes ou outros servidores.Por ser extensível, o XML pode descrever dados de uma enorme variedade deaplicações (registo de dados, notícias, transacções comerciais, etc...) e por possuirtags auto-descritivas não precisa de uma descrição de contexto acoplada aodocumento como o HTML.Permite actualizações granulares, evitando que uma simples modificação numdocumento resulte na necessidade da actualização completa do mesmo.Em síntese conclui-se que a linguagem XML é destinada a descrever o conteúdo deum documento, e a linguagem HTML tem como objectivo definir a formatação domesmo, ou seja, o XML define o assunto, e o HTML define como ele será exibido aoutilizador. Sérgio Rocha - 2104 ISVOUGA Página 15 de 16
  16. 16. TP 4 - Trabalho Prático XML5. BIBLIOGRAFIA • http://pt.wikipedia.org/wiki/XML • http://www.centroatl.pt/titulos/tecnologias/imagens/oguiapraticoda-xml-excerto.pdf • http://www.w3schools.com/xml/default.asp • http://www.xml.com/Sérgio Rocha - 2104 ISVOUGA Página 16 de 16

×