1 Faculdade de Engenharia da Universidade do Porto XML Extensible Markup Language FEUP Gabriel David Lígia Ribeiro [email protected] [email protected] XML 2 Estrutura, semântica e formato • Exemplo: registo de uma música – HTML <dt>Grândola <dd>música usada como sinal de acção militar <ul> <li>Autor: José Afonso <li>Data: 1972 <li>Editora: Valentim de Carvalho </ul> – XML <MUSICA> <TITULO>Grândola</TITULO> <OBS>música usada como sinal de acção militar</OBS> <AUTOR>José Afonso</AUTOR> <DATA>1972</DATA> <EDITORA>Valentim de Carvalho</EDITORA> </MUSICA> FEUP XML 3 Comparação • HTML: • <TD> – estrutura • <STRONG> - semântica • <B> - formato – O <dt> é mesmo uma definição ou só uma maneira de indentar texto? • XML: mais semântica, também estrutura, sem formato – – – – FEUP Facilita a leitura e a interpretação relativamente à realidade Suporta a pesquisa Flexível Necessita indicações de apresentação XML 4 Metalinguagem • SGML – – – – Standard Generalized Markup Language (1986, ISO 8879) Charles Goldfarb, Ed Mosher, Ray Lorie (1969, IBM) Anotação de documentos para facilitar o seu processamento Define os mecanismos básicos para as linguagens concretas • HTML – Hypertext Markup Language (1993) – Tim Berners-Lee (criou a Web) – Linguagem SGML concreta para facilitar a apresentação de documentos na Internet • XML – eXtensible Markup Language (1996) – Jon Bosak para W3C (WWW Consortium) – conjunto de regras que os documentos devem seguir (simplificação do SGML, de processamento pesado, pelas excepções que admite) FEUP XML 5 Paralelo SGML HTML FEUP XML XHTML XML 6 Aplicações • • • • • • • • • FEUP Para além do XHTML Chemical Markup Language Mathematical Markup Language Channel Definition Format Open Software Description Resource Description Framework Scalable Vector Graphics Music ML ... XML 7 Primeiro documento • Um documento XML <?xml version="1.0" standalone="yes" ?> <foo> Bom dia a quem chegou a horas! </foo> • <? ... ?> é uma instrução de processamento (xml) • Um atributo é um par nome=valor • Standalone=“yes” significa que não são necessários documentos auxiliares • O elemento <foo> é constituído por uma marca de início, uma marca de fim e conteúdo FEUP XML 8 Ainda o primeiro documento • Variante <?xml version="1.0" standalone="yes" ?> <p> Bom dia a quem chegou a horas! </p> • Outra <?xml version="1.0" standalone="yes" ?> <saudacao> Bom dia a quem chegou a horas! </saudacao> • As marcas podem ter três tipos de significado – Estrutura, semântica e estilo • Estrutura organiza o documento (em árvore) • Semântica relaciona com o mundo • Estilo determina a apresentação • As três formas do documento são equivalentes pois têm a mesma estrutura e conteúdo • O significado está na cabeça do leitor (terceira forma é a melhor) FEUP XML 9 Apresentação • Ensinando o navegador a apresentar os elementos – Definir folha de estilo (CSS) – Partilhável por vários documentos, tal como um conjunto de marcas é partilhado – Diferentes estilos permitem adequar a diferentes meios • Ficheiro saudacao.css saudacao {display : block; font-size : 24pt; font-weight : bold; } • Nova instrução de processamento liga o estilo <?xml version="1.0" standalone="yes" ?> <?xml-stylesheet type="text/css" href="saudacao.css" ?> <saudacao> Bom dia a quem chegou a horas! </saudacao> FEUP XML 10 XML • Formato standard para descrever e trocar dados estruturados • Documentos são separados em 3 partes: – Estrutura — XML – Estilo — XSL (eXtensible Style Language) – Conteúdo — definido pelo utilizador • É extensível permitindo juntar novas marcas e atributos • A estrutura pode ser encaixada • Permite a inclusão de meta-informação para descrição da informação — DTD FEUP XML 11 Verificação de documentos XML • Um documento XML é bem-formado sse: – <?xml version="1.0" standalone="...?> – valores de atributos entre aspas – a marcas de abertura correspondem marcas de fecho – marcas são encaixadas correctamente o processador consegue construir uma estrutura em árvore FEUP XML 12 Exemplo • Registar informação sobre turmas e alunos, com o seu nome, média e, nalguns casos, idade • Um dos alunos frequenta duas turmas <?xml version=“1.0” standalone=“yes”> <turma> <aluno> <nome>Rui Silva</nome> <media>13.6</media> <turma> <nome>João Sousa</nome> <media>11.0</media> </aluno> </turma> <aluno><nome>Ana Costa</nome> <media>17.0</media></aluno> </turma> – Erros? FEUP XML 13 Correcção do exemplo 1. Falta elemento raiz 2. Há sobreposição, não encaixada, de elementos (turma) 3. Falta marcar os alunos da primeira turma • Fica estrutura em árvore Nota: a disposição das marcas não é significativa, só facilita a leitura FEUP <?xml version=“1.0” standalone=“yes”?> <escola> <turma> <aluno> <nome>Rui Silva</nome> <media>13.6</media> </aluno> <aluno> <nome>João Sousa</nome> <media>11.0</media> </aluno> </turma> <turma> <aluno> <nome>João Sousa</nome> <media>11.0</media> </aluno> <aluno><nome>Ana Costa</nome> <media>17.0</media></aluno> </turma> </escola> XML 14 Representação em árvore escola turma turma aluno nome Rui Silva média 13,6 aluno aluno nome João Sousa média 11,0 nome João Sousa média 11,0 aluno nome Ana Costa média 17,0 Nota: organização estritamente hierárquica força a repetição dos elementos inferiores comuns (aluno João Sousa) em vez de usar referências para uma única ocorrência (redundância e inconsistência); ver modelo relacional FEUP XML 15 Atributos • informações auxiliares, metainformações, etc. podem estar em atributos • opção entre elemento ou atributo feita pelo criador do documento FEUP <?xml version=“1.0” standalone=“yes”?> <escola nome=“Devesas” telefone=“225437610> <turma nr=“A”> <aluno> <nome>Rui Silva</nome> <media escala=“0-20”>13.6</media> </aluno> <aluno> <nome>João Sousa</nome> <media escala=“0-20”>11.0</media> </aluno> </turma> <turma nr=“B”> <aluno> <nome>João Sousa</nome> <media escala=“0-20”>11.0</media> </aluno> <aluno><nome>Ana Costa</nome> <media escala=“0-20”>17.0</media></aluno> </turma> </escola> XML 16 Segundo nível de verificação • Documentos XML bem-formados podem ser válidos se verificarem certas restrições – Definição de tipos de documentos (Document type definition - DTD) – Especifica regras para elementos, atributos, ... • Ferramentas podem auxiliar a verificar se o documento está bem formado e se é válido – XML spy (comercial) : ambiente de desenvolvimento – XML validator (livre) : linha de comando (http://www.w3.org/2000/09/webdata/xsv) – IEXMLTLS (livre) : adiciona-se aos menus do Internet Explorer – Verificação como serviço remoto nas páginas do W3C (http://www.w3.org/2000/09/webdata/xsv) • Outras ligações com interesse – O sítio do XML: http://www.w3.org/XML/ – Portal: http://home.wanadoo.nl/techlinq/xml.html FEUP XML 17 Exemplo de documento XML • Bem-formado • Não validado <?xml version="1.0" standalone="yes"?> <conversation> <greeting>Hello, world!</greeting> <response>Stop the planet, I want to get off!</response> <image src="mad-planet.gif"/> </conversation> • Poderá ser validável? FEUP XML 18 Aplicações de Troca de Dados • XML é formato adequado para troca de dados complexos • Domínios já identificados – push technology – EDI (Electronic Data Interchange) – meta-dados: MCF (Netscape, XML-data (MS), RDF (W3C) • Bases de dados relacionais Dep. Ext. --------------------DEEC 2020 DEC 2030 Nome Ext. ------------------------jlopes 2020 arocha 2030 jpascoal 2020 aaguiar 2020 FEUP <telephone num="2020"> <dept>DEEC</dept> <person>jlopes</person> <person>jpascoal</person> <person>aaguiar</person> </telephone> ... 2020 DEEC jlopes, jpascoal, aaguiar 2030 DEC arocha XML 19 Aplicações de Publicação de Doc. • XML é formato adequado para anotar documentos semiestruturados • XML facilita a geração e gestão de meta-informação – toc, index, etc. • XML facilita a publicação em formatos diversos – CD-ROM, papel, Palms, Web Estado da Arte <book CommDate="20000508"> <title>O Livro</title> <chapter> <title>Introdução</title> ... <chapter> <title>Estado da Arte</title> meta-informação ... FEUP Introdução O Livro 1 Introdução 2. Estado da Arte XML 20 Conclusão da introdução • XML pode codificar uma representação para – – – – – – um documento ordinário um registo estruturado (e.g. ordem de compra) um registo de dados (e.g. o resultado de uma interrogação) um objecto com dados e métodos meta-dados, entidades e tipos (XMI) meta-conteúdos acerca de um site Web (CDF) • XML é auto-contido e pode ser validado, interpretado e processado sem intervenção humana • Pode ser usado para: – formato de ligação (para transferência de dados entre cliente e servidor) – formato de troca de informação (e.g. entre a aplicação e a base de dados) – formato persistente (para guardar dados) • Alguns DTD existentes: CDF (conteúdo Web), OFX (Financial), OSD (Open Software Distribution), CML (Chemical), MML (Mathematical) FEUP XML