Validação HTML W3C "The World Wide Web Consortium" ou W3C é um consórcio internacional com o objetivo de reunir desenvolvedores de todo o mundo para estabelecer padrões e diretrizes para a Web. http://www.w3c.org/ Tim Berners-Lee criou o W3C em 1994, como um consórcio dedicado a construir um consenso sobre as tecnologias Web. Tim Berners-Lee também inventou a WWW (World Wide Web) em 1989, enquanto trabalhava no European Organization for Nuclear Research (CERN). Um documento HTML válido declara qual versão da linguagem está sendo usada. O DTD (Document Type Definition) nomeia a definição do tipo de documento em uso. O HTML 4.01 especifica 3 DTDs que podem ser incluídos na declaração do documento. HTML 4.01 Strict DTD Inclui todos os elementos e parâmetros não obsoletos ou que não aparecem num documento frameset. Para documentos que utilizam este DTD, incluir na primeira linha do código HTML esta declaração: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01 Transitional DTD Inclui tudo que está no Strict DTD mais os elementos e parâmetros obsoletos (muitos dos quais diz respeito à apresentação visual). Para documentos que utilizam este DTD, incluir na primeira linha do código HTML esta declaração: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> HTML 4.01 Frameset DTD Inclui tudo que está no Transitional DTD mais os frames. Para documentos que utilizam este DTD, incluir na primeira linha do código HTML esta declaração: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> Exemplo: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>my first HTML document</title> </head> <body> <p>Hello world!</p> </body> </html> XML eXtensible Markup Language ou Linguagem de Marcação Extensível É uma metalinguagem extensível desenvolvida pela W3C (World Wide Web Consortium. É uma simplificação e adaptação da linguagem SGML (Standard Generalized Markup Language), com implementação para Web. Não é apenas uma linguagem de marcação como a HTML. Possibilita a utilização de vários recursos importantes, com possibilidade de definir linguagens para diferentes necessidades: • SVG (Scalable Vector Graphics), linguagem para descrever gráficos vetoriais bidimensionais, estáticos ou animados; • MathML (Mathemathical Markup Language) para expressar notações matemáticas em páginas Web; • Tamino banco de dados baseado em um “engine” XML. Surgiu a partir de 1996, quando especialistas em SGML, sob a chefia de Jon Bosak, da Sun Microsystems, uniramse para definição de um novo padrão de marcação que pudesse ser utilizado na Internet, constituindo-se em uma versão simplificada da SGML, cujo objetivo principal era fornecer aos desenvolvedores da Web maneiras de definir e criar seus próprios marcadores e atributos quando necessário, em vez de estarem restritos ao esquema de marcação da HTML. No final de 1996, o comitê de trabalho anunciou a primeira versão preliminar da XML em uma conferência realizada em Boston, nos Estados Unidos. Novos recursos foram consolidados no primeiro semestre de 1997. Portanto, na XML o desenvolver define marcadores personalizados, onde o significado de seu conteúdo é mais compreensível tanto para os seres humanos quanto para os computadores. A linguagem XML compreende um conjunto de regras para definição de tags semânticas que permitem organizar elaborar um documento, identificando as partes que o compõe. Um documente XML é composto de três elementos distintos: • Conteúdo dos dados: informações armazenadas entre as tags. • Estrutura: organização dos elementos dentro do documento, que pode possuir diversos tipos de formato, como um memorando, um contrato, uma receita, um orçamento conforme as necessidade de marcação da informação. • Apresentação: forma como as informações serão apresentadas ao leitor do documento. Um mesmo documento pode ser visualizado de diversas formas. Estrutura do XML O XML oferece ao seu desenvolvedor a possibilidade de definir as suas próprias tags à medida e conforme as suas necessidades. No entanto, há um conjunto de regras que devem ser seguidas para se obter um documento "bem formado", ou seja, um documento que respeita integralmente as regras gramaticais definidas. Esta restrição permite o processamento do XML de forma muito mais eficiente do que no HTML, a simplificação do software de processamento e a representação de uma estrutura de dados de forma inequívoca. Um documento XML é composto por duas partes distintas: • Cabeçalho <?xml version="1.0"> (facultativo) • Árvore de elementos Ex: <marca> .... conteúdo .... </marca> Além disso, existem mais três gêneros de informação: • Declaração XML • Instruções de processamento • Declaração de tipo de documento (DTD) Quanto à estrutura deve salientar-se que: Os documentos XML começam sempre pela declaração do XML <?xml version="1.0"?> A seguir à declaração do XML vem a declaração do tipo de documento (DTD) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> Só pode existir uma raiz por documento, esta tem que ter um nome único e deve possuir um significado óbvio <apresentação> Os elementos são usados para definir o conteúdo do documento XML, podem conter outros elementos, texto ou estar vazios <aluno> Quanto à estrutura deve salientar-se que: Os atributos definem propriedades sobre os elementos e não podem ser repetidos dentro de um elemento <dia data="10" assunto="O que é o XML?"/> Existem uma série de entidades prédefinidas no XML, mas é possível criar as próprias entidades. Os comentários não podem aparecer dentro dos elementos e possuem a mesma sintaxe do HTML <!- - isto é um comentário - -> O XML é case-sensitive <ELEMENTO> é diferente de <elemento> Quanto à estrutura deve salientar-se que: Todos os atributos devem estar entre aspas <apresentação título="xml"/> Todos os elementos devem possuir uma etiqueta de início e de fim <título>Estrutura do XML</título> Todos os elementos devem estar contidos num elemento raiz que identifica o domínio. Os elementos XML não podem começar por números, ou sinais de pontuação, embora possam incluir números e os caracteres: _ (underline) : (dois pontos) Um documento XML é considerado bem formado quando: • possuir um único elemento raiz, dentro do qual todos os outros elementos serão inseridos; • possuir um par de tags, uma inicial e outra final, para abertura e fechamento, respectivamente, de um elemento; • o nome da tag de abertura deverá ser idêntico à tag de fechamento; • todo elemento deve ser aninhado, sem entrelaçamento. Documentos que não usam XML Documentos bem formados Documentos válidos Documentos em conformidade com namespace Documentos válidos baseados em schema Relações existentes entre níveis de conformidade de XML Exemplos <?xml version="1.0" encoding="ISO8859-1"?> <construcaocivil> <vasosanitario> <nome>Vaso sanitário para banheiro</nome> <descricao>Vaso em Louça</descricao> <fabricante>Vasolegal</fabricante> <valor>42,51</valor> <quantidade>10</quantidade> </vasosanitario> <pia> <nome>Pia para cozinha</nome> <descricao>Feita em granito</descricao> <fabricante>Piaboa</fabricante> <valor>23,40</valor> <quantidade>5</quantidade> </pia> </construcaocivil> Exemplos <?xml version="1.0" encoding="ISO8859-1"?> <!DOCTYPE MENSAGEM SYSTEM "mensagem.dtd"> <mensagem> <remetente> <nome>Alfredo Reino</nome> <mail>[email protected]</mail> </remetente> <destinatario> <nome>Bill Clinton</nome> <mail>[email protected]</mail> </destinatario> <assunto>Ola Bill</assunto> <texto> <paragrafo>Olá. Como está? Faz <enfase>muito</enfase> tempo que você não escreve. </paragrafo> </texto> </mensagem> DTD Document Type Definition ou Declaração do Tipo de Documento É um documento tipo texto que contém todas as regras estabelecidas para a elaboração de um documento XML qualquer. A função do DTD é definir todas as tags que um documento XML pode conter, determinando a ordem em que elas aparecem, além de indicar todas as partes obrigatórias e opcionais. Também é responsável por armazenar diversos elementos utilizados nos documentos, como os atributos que as tags podem conter e as entidades utilizadas nos documentos. Com o DTD é possível realizar a validação de um documento, verificando se ele foi criado corretamente, segundo os padrões estabelecidos. Na XML, ao contrário da HTML, é obrigatório a criação de um DTD, para que o browser possa verificar a validade das tags utilizadas. A declaração do DTD pode ser interna (dentro do próprio documento XML) ou externa (num arquivo externo). Basicamente, o DTD deve reconhecer os seguintes blocos de construção: • elementos: são blocos de construção utilizados tanto em HTML quanto em XML. • tags: são os elementos marcadores que possuem abertura e encerramento. • atributos: fornecem informações extras sobre os elementos e são inseridos nas tags iniciais de um elemento. Possuem um nome e um conteúdo. • entidades: são variáveis designadas para conter textos ou documentos. • notações: existem duas formas de notação: • PCDATA – possibilita o armazenamento de texto que será interpretado pelo analisador do documento • CDATA – armazena texto não interpretado pelo analisador. A validação pode ser feita através: • de uma ferramenta externa, como a XMLValidator; • de um endereço Web; • ou por meio do próprio browser (utilizando o parser XML ou instalando um plug-in). Além do DTD, que possui sua sintaxe própria, pode-se verificar a integridade dos dados de um documento XML através do XML Schema. Exemplos Exemplo de documento XML com DTD interno (linhas 111): <?xml version="1.0" encoding="ISO8859-1"?> <!DOCTYPE construcaocivil [ <!ELEMENT construcaocivil ANY> <!ELEMENT vasosanitario (nome, descricao, fabricante, valor, quantidade)> <!ELEMENT nome (#PCDATA)> <!ELEMENT descricao (#PCDATA)> <!ELEMENT fabricante (#PCDATA)> <!ELEMENT valor (#PCDATA)> <!ELEMENT quantidade (#PCDATA)> <!ELEMENT pia (nome, descricao, fabricante, valor)> ]> <construcaocivil> <vasosanitario> <nome>Vaso sanitário para banheiro</nome> <descricao>Vaso em Louça</descricao> <fabricante>Vasolegal</fabricante> <valor>42,51</valor> <quantidade>10</quantidade> </vasosanitario> <pia> <nome>Pia para cozinha</nome> <descricao>Feita em granito</descricao> <fabricante>Piaboa</fabricante> <valor>23,40</valor> <quantidade>5</quantidade> </pia> </construcaocivil> Exemplos Exemplo de documento XML com DTD externo: Criar um arquivo texto com a extensão .DTD, com as seguintes informações: <!ELEMENT construcaocivil (vasosanitario, pia)> <!ELEMENT vasosanitario (nome, descricao, fabricante, valor, quantidade)> <!ELEMENT pia (nome, descricao, fabricante, valor, quantidade)> <!ELEMENT nome (#PCDATA)> <!ELEMENT descricao (#PCDATA)> <!ELEMENT fabricante (#PCDATA)> <!ELEMENT valor (#PCDATA)> <!ELEMENT quantidade (#PCDATA)> E acrescentar a seguinte linha de instrução no documento XML <!DOCTYPE construcaocivil SYSTEM "construcao.dtd"> Formatação de um documento XML Pode ser feita através de: • CSS • XSL XSL eXtensible Stylesheet Language É uma linguagem de folhas de estilo. Um conjunto de instruções destinadas à visualização. Divide-se em duas partes: • uma para transformar o documento XML em outro tipo de documento • outra para definir objetos de formatação para apresentação gráfica: • XSLT – linguagem de transformação • XSLFO – linguagem de formatação de objetos O XSL é especialmente conhecido através da sua linguagem de transformação XSLT. É com este tipo de aplicação que o XSL está implementado nos browsers www utilizados na Internet. O XSLT é uma linguagem XML que respeita as regras de bem formado e válido. Define: uma transformação a ser aplicada a um documento XML; a transformação de um documento original HTML válido e bem formado, de forma a respeitar as regras do XML. Os documentos XML são hierárquicos, o que quer dizer que podem ser vistos como uma árvore onde cada nível possui vários elementos. O XSLT tem definidas transformações que podem abarcar um elemento, um ou vários níveis. A aplicação XSLT percorre o documento, verificando para cada nível se existe uma transformação associada. Caso exista ela é aplicada. A escolha dos elementos a transformar é feita através de operadores de seleção e de pattern matching. Aplicações da XML Apesar de recente, tem já hoje grande implementação na área das tecnologias de informação, marcando presença em grande parte dos sistemas baseados em tecnologias Web e que tenham sido implementados recentemente. Exemplos de implementação de soluções XML: operações bancárias, leilões on-line, pesquisa indexada de documentos, comércio eletrônico. A maior parte das soluções de E-Commerce implementadas em ambientes Web, utilizam precisamente o XML. O objetivo destas aplicações é a integração de sistemas e tecnologias diversas, com apenas uma coisa em comum: a utilização do XML como linguagem de comunicação. Também no mundo empresarial esta tecnologia é utilizada, por exemplo, para realizar ações que se repetem periodicamente, como é o caso dos relatórios estatísticos, em que o relatório em si, só é produzido uma vez em XML, depois é visualizado no meio que for desejado, qualquer que ele seja. O XML trás igualmente valor acrescentado aos portais na medida em que pode ser utilizado para selecionar conteúdos, sendo possível a personalização de uma página em função do perfil do desenvolver, através de folhas de estilo ou por aplicação de filtros na pesquisa na base de dados. No contexto das bibliotecas digitais, a utilização desta ferramenta é, seguramente, um passo importante numa nova estruturação e organização do conhecimento e da difusão da informação. Referências bibliográficas FULGERI, Sérgio. Ensino Didático da Linguagem XML. São Paulo: Ed. Érica, 2001. WALSH, Norman. A Technical Introduction to XML. http://www.xml.com/pub/a/98/10/guide0.html. Acesso em 29/10/2006.