Tópicos avançados em internet A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação XML eXtensible Markup Language Histórico O que é Linguagem? Linguagem é a estrutura utilizada para possibilitar a comunicação – troca de informação Histórico O que são Linguagens de Marcação? Linguagens de marcação são padrões abertos e públicos que foram criados para tentar maiores avanços no tratamento da informação. Histórico O que é Marcação? A marcação é uma forma de indicar ao processador como ele deverá processar determinada informação. As marcações podem ser de dois tipos: Marcação Procedural Marcação Descritiva Histórico Marcação Procedural Marcas inseridas em um documento de forma explícita ou implícita onde o software que irá realizar o processamento, indica o procedimento que deve ser seguido para a apresentação do conteúdo ao usuário. Histórico Marcação Descritiva Utilizam marcas ou “tags” para qualificar os objetos de um texto, para transformá-los em informações tratáveis pelo computador. As marcas ou “tags” indicam o propósito da informação e não somente como ele deverá ser apresentado. Histórico Marcas ou “tags” Definem o início e o fim da unidade ou elemento da informação. Essas unidades de informação são tratadas como objetos com características específicas, e não somente um texto a espera de uma interpretação para formatação. Histórico SGML (Standard Generalized Markup Language) Definida em meados de 1970 como uma linguagem auto-descritiva ou seja que não contém um conjunto pré-determinado de marcas, mas sim uma linguagem para se definir qualquer conjunto de marcas Histórico HTML (HyperText Markup Language) Definida em meados de 1980 pela W3C, devido ao advento da Internet. É uma linguagem formal baseada em SGML. Possuí um conjunto prédeterminado de marcas, concebidos com a função de organizar a informação através de páginas Web. Histórico XML (eXtensible Markup Language) Definida no final de1990, similar a HTML porém com o diferencial de representar dados e não somente sua formatação. Descreve a natureza dos dados a serem apresentados. Histórico Hyper Text Markup Language Standard Generalized Markup Language eXtensible Markup Language XML freqüentemente é referida como contendo 20% da complexidade e 80% das funcionalidades da SGML XML vs HTML HTML - Características Formatação fixa: fácil aprendizado Facilitou a distribuição de documentos através da Web Impulsionou o desenvolvimento da Web XML vs HTML Exemplo de HTML <HTML> <HEAD> <TITLE>Exemplo de Documento</TITLE> </HEAD> <BODY> <H1> Exemplo HTML </H1> <br> Este é um exemplo básico de documento HTML. </BODY> </HTML> XML vs HTML Necessidade de novos padrões Comércio eletrônico, multimídia, BD na Web são cada vez mais freqüentes Necessidade de suporte a documentos complexos Surgimento de novas necessidades Características da linguagem a tornam ineficiente Surgimento de novos padrões para atender as novas exigências Novos padrões, mais flexíveis: XML (Extensible Markup Language) XML vs HTML XML - Características Mais enxuta que SGML e mais flexível que HTML. Extensível, porém não é exageradamente complexa. Permite maior descrição de conteúdo. Uso de Esquemas (XMLSchemas ou DTDs), que descrevem a estrutura do documento. Extração e busca de informações. Exibição específica por usuário. Permite o uso de estilos para apresentação direta ao usuário (XSLT Extensible Stylesheet Language Transformations) XML vs HTML Exemplo de XML Elementos Declaração do XML <?xml version="1.0" ?> Elemento raiz <recado> <de> Professor </de> <para> Alunos </para> <assunto> Aula 2 </assunto> <texto> Exemplo de um XML</texto> </recado> XML vs HTML XML - Características O XML permite a criação de elementos, ou seja, o próprio usuário define o significado das suas tags A linguagem XML pode ser utilizada para armazenamento e transação de dados entre empresas XML vs HTML XML - Características A estrutura criada pelo documento XML permite que ferramentas baseadas em banco de dados possam consultar e processar seu conteúdo Os recursos fornecidos pela XML pode ser usado para criar uma rede de conhecimento (Knowledge Web), interligando documentos com informações complementares XML vs HTML HTML XML A ferramenta de busca armazena a palavra a ser A ferramenta de busca deve reconhecer toda a pesquisada como um índice e procura nos estrutura do documento, identificando cada tag diversos documentos a sua ocorrência. como um objeto que pode ser manipulado. Os dados do documento são todos do mesmo Um documento pode conter diferentes tipos de tipo. dados, como um único campo ou como um registro composto por campos, podendo retornar vários registros (como uma tabela de dados). Retorna uma lista de documentos com uma Retorna uma lista de registros, que pode informação sobre eles como resultado da pertencer a vários documentos diferentes pesquisa. gerando o documento resultante da pesquisa. Realiza apenas a pesquisa em um índice Além de realizar a pesquisa por meio de previamente definido. múltiplas fontes, pode realizar a atualização dos documentos. XML vs HTML Algumas vantagens - XML Padrão aberto Facilidade para converter para formatos proprietários É texto possibilita fácil leitura, processamento e menos incompatibilidade Promove a separação entre estrutura, conteúdo e apresentação Facilita a geração de dados para visualização dinâmica Simplifica manutenção Permite semântica na Web Aplicabilidade Por ser um padrão, todos entendem, dessa forma uma representação de dados armazenados em XML podem ser facilmente interpretados e transformados em outros formatos Aplicabilidade Web Services HTTP Databases DOM/SAX XPATH/ XQUERY XML XSLT The Web XSL-FO XSLT PDF Arquivos de Configuração Servidores de Aplicação/Web Estrutura de um documento XML Um documento XML é composto por uma hierarquia de elementos a partir de uma raiz. <?xml version="1.0"?> Declaração XML <estante> <livro> <titulo>Service Oriented Architecture</titulo> Elemento <autor>Thomas Erl</autor> Raíz <ano>2004</ano> </livro> <livro> <titulo>PHP para Iniciantes</titulo> Elementos <autor>Marcos S. Santos</autor> <ano>2000</ano> </livro> Conteúdo </estante> Estrutura de um documento XML O documento pode ser representado como uma árvore de elementos: <estante>: elemento principal, responsável pelos demais, também chamado de elemento raiz <livro>: elemento responsável pela apresentação de cada livro <titulo>; <autor>; <ano>: elementos responsáveis pela apresentação dos dados dos livros Estrutura de um documento XML Considerações: O elemento <estante> representa toda a árvore e é considerado o pai dos demais. Em seguida os elementos <livro> que são filhos do elemento <estante> e pais dos elementos <titulo>,<autor> e <ano>. Estes últimos são filhos dos elementos <livro> e netos do elemento <estante>. Cada elemento <livro> no documento representa o mesmo que um registro na tabela Componentes do documento Árvore XML raiz nós Galhos/folhas Elementos Atributos Bloco de Texto Comentários Declaração Entidades Instruções de processamento Componentes do documento Nó Raiz Em um documento XML existe apenas um, e somente um elemento raiz. <?xml version="1.0" encoding="iso-8859-1" ?> <!-- Isto é um comentário --> <cadastro> <nome>Ronaldo Gaúcho</nome> <email>[email protected]</email> <telefone tipo= " residencial" > <ddd>45</ddd> <numero>3223-9876</numero> </telefone> </cadastro> Componentes do documento Nó Elemento <?xml version="1.0" encoding="iso-8859-1" ?> <!-- Isto é um comentário --> <cadastro> <nome>Ronaldo Gaúcho</nome> <email>[email protected]</email> <telefone tipo= " residencial" > <ddd>45</ddd> <numero>3223-9876</numero> </telefone> </cadastro> Componentes do documento Nó Atributo <?xml version="1.0" encoding="iso-8859-1" ?> <!-- Isto é um comentário --> <cadastro> <nome>Ronaldo Gaúcho</nome> <email>[email protected]</email> <telefone tipo= " residencial" > <ddd>45</ddd> <numero>3223-9876</numero> </telefone> </cadastro> Componentes do documento Representação em árvore cadastro email nome Ronaldo gaucho [email protected] Elemento Atributo Texto telefone tipo residencial ddd 45 numero 3223-9876 Componentes do documento Nó Bloco de Texto <?xml version="1.0" encoding="iso-8859-1" ?> <!-- Isto é um comentário --> <cadastro> <nome>Ronaldo Gaúcho</nome> <email>[email protected]</email> <telefone tipo= " residencial" > <ddd>45</ddd> <numero>3223-9876</numero> </telefone> </cadastro> Componentes do documento Entidades Unidades de referência a conteúdo Representadas pelo símbolo & seguido pelo nome XML possui 5 entidades pré-definidas: " " ' ' > > < < & & Outras entidades podem ser definidas na DTD Componentes do documento Instruções de Processamento São indicações no documento XML que informam ao browser a necessidade de realizar algum tipo de processamento em relação as tags do documento <?xml version="1.0"?> É uma linha de processamento que indica a declaração de um documento XML compatível com XML 1.0, e sem dependência de arquivos externos. Regras para criação do documento XML Para que possa ser manipulado como árvore um documento XML deve ser bem formado Regras para documentos XML genéricos Ter um único elemento raiz Não repetir atributo Valores de atributos estarem entre aspas ou apóstrofes Não pode haver atributo na tag final Mesmo nome para a tag inicial e final Tags de fechamento para todos os elementos Elementos estarem corretamente aninhados Regras para criação do documento XML Pode-se usar: Letras Números Caracteres especiais sempre que possível evitar: acentos, cedilhas e outros caracteres especiais Regras para criação do documento XML Nomes não devem ser iniciados com: Números Ex: <22dia> Caracteres especiais Ex: <_dia> Palavras XML ou xml Ex: <xml_livro> Regras para criação do documento XML Nomes não devem conter espaço Inválido Ex: <dia da semana> Válido Ex: <dia_da_semana> A linguagem XML faz distinção de letras maiúsculas das minúsculas <LIVRO> é diferente de: <livro> que é diferente de : <Livro> Regras para criação do documento XML Para permitir o uso de caracteres especiais dentro do documento XML é necessário realizar a indicação do seu uso, através da propriedade ENCODING, a ser inserida na linha da declaração do documento XML. <?xml version='1.0' encoding='iso-8859-1'?> Os principais tipos que definem quais caracteres poderão ser utilizado são: UTF-8 é o padrão e não considera caracteres especiais Para exibir caracteres como á ou ç: Se o arquivo for ASCII, use ISO-8859-1 Se o arquivo for Unicode, use UTF-16 Validação de documentos O browser pode ser utilizado para validar o documento XML. Caso o documento possua algum erro, o browser apresenta uma mensagem indicando qual é o erro. O browser formata o documento como uma árvore. Os sinais + e -dispostos ao lado dos elementos são utilizados para expandir ou contrair a árvore. Uso de DTD (Document Type Definition) – define quais são os blocos permitidos em um documento XML e XMLSchema