Tecnologias XML XML XML Namespace XML Schema XSLT XML Extensible Markup Language XML é uma linguagem de anotação (markup) de documentos Derivado do SGML (Standard Generalized Markup Language). XML é uma recomendação da W3C (World Wide Web Consortium) Standard para representar e trocar informação estruturada Declaração XML <?xml version="1.0" encoding="ISO-8859-1"?> <pessoas> <pessoa id="123"> <nome> António José Silva</nome> <data-nascimento> Elementos <ano>1965</ano> <mes>10</mes> <dia>3</dia> </data-nascimento> <bi>4025527</bi> Atributo </pessoa> <pessoa id="234"> <nome> Carlos Tavares</nome> <data-nascimento> <ano>1975</ano> <mes>10</mes> <dia>3</dia> </data-nascimento> <bi>8085527</bi> </pessoa> </pessoas> • A informação é estruturada hierarquicamente Root element pessoas pessoa nome ano ... data -nascimento mês bi dia Estrutura XML Declaração XML <?xml version="1.0" encoding="ISO-8859-1"?> version="1.0" define a versão do XML utilizada encoding="ISO-8859-1" Define o modo de codificação dos caracteres. O valor por omissão é UTF-8 standalone="yes" Especifica referências a outros documentos Estrutura XML Elementos <ano>1965</ano> <anotação de inicio>conteúdo<anotação de fim /> Um elemento pode conter apenas texto Um elemento pode ser vazio – apenas atributos Um elemento pode conter apenas sub-elementos Um elemento pode conter texto e/ou sub-elementos <pessoa id="234"> O Senhor <nome>Carlos Tavares</nome> <data-nascimento> nasceu no ano de <ano>1975</ano> ... Estrutura XML Regras para o nome de um elemento: • • • • O primeiro carácter deverá ser uma letra, um underscore ou um sinal de dois pontos; Os caracteres seguintes podem ser letras, dígitos, underscores, hífens, pontos e dois pontos; O espaço em branco não pode aparecer no nome de uma anotação Os caracteres < e > são reservados para as anotações Estrutura XML Atributos <pessoa id="234">... Define-se na anotação de início de um elemento Definido por um par nome=“valor” Valor do atributo entre “” <data-nascimento ano="1975" mes="10" dia="3" /> Estrutura XML Caracteres especiais Referência a entidades pré-definidas < < > > & & " “ ' ‘ válido para mês >0 e mês <13 Referência a caracteres unicode &#decimal ou &#xhexadecimal ß<½ ß<½ Documento XML bem formado Deve começar com a declaração <?xml version="1.0" encoding="ISO-8859-1" ?> A anotações de abertura (<nome>) correspondem anotações de fecho (</nome>) Um elemento pode ser vazio obrigando a usar o caracter '/' na marca de abertura <anotação /> As marcas têm de ser encaixadas correctamente. os valores dos atributos têm de estar entre aspas apenas um elemento que engloba todos os outros raíz do documento (root ou document element). há distinção entre maiúsculas e minúsculas nos nomes dos elementos XML namespace Problema: nomes iguais para elementos com semânticas muito diferente <título> XML in a Nutshell </titulo> <titulo> Professor </titulo> Necessidade de qualificar claramente os nomes dos elementos e atributos <livro:título> XML in a Nutshell </livro:título> <pes:titulo> Professor </pes:titulo> XML namespace é uma colecção de nomes identificados por um URI (Uniform Ressource Identifier) permitindo associar um prefixo ao nome XML namespace Criação de um namespace Usa-se o atributo xmlns xmlns:pes=http://xml.dei.isep.ipp.pt/pessoas O valor do atributo deve ser um URI com o objectivo de ser um identificador único O atributo não é um endereço físico de um recurso O prefixo pes passa a qualificar os elementos <pes:nome>António José </pes:nome> XML namespace Os namespace podem ser declarados localmente a um elemento <dt:data xmlns:dt="http://xml.isep.pt/datas"> <dt:ano>1965</dt:ano> <dt:mes>10</dt:mes> <dt:dia>3</dt:dia> </dt:data> Os namespace podem ser declarados sem prefixo - namespace por omissão <pessoas xmlns="http://xml.isep.pt/pessoas" >