[III Congresso Científico – UNIRG/FAFICH] XML – A Nova Linguagem para Conteúdo Internet MSc Eder Pazinatto [email protected] Outubro 2003 [III Congresso Científico – UNIRG/FAFICH] A Revolução da Internet • 1989 - Primeiro Web Browser • 1993 - Há 50 web sites • 1994 - Primeiras ferramentas de busca (WWWW, webcrawler) • 1996 - US$ 1M gastos em compras na Web, presença em 150 países • 1997 - 1 milhão de web sites • 1998 - 300.000 web servers • 2000 - mais de 1 bilhão de páginas web • 2002 – quase 2,5 bilhões de páginas web indexadas (google) 2 [III Congresso Científico – UNIRG/FAFICH] Internet • Novos recursos tecnológicos • Documentos web gerados automaticamente • A estrutura pouco evolui ao longo do tempo, (documentos possuem forma estrutura) 3 [III Congresso Científico – UNIRG/FAFICH] Internet • Novas aplicações requerem mais flexibilidade de representação e estão constantemente evoluindo o esquema • A web gerou uma enorme demanda de aplicações e estruturas forçando um modelo de dados estruturados 4 [III Congresso Científico – UNIRG/FAFICH] Html • É possível com os sistemas atuais de busca, tais como Altavista ©, Cadê ©, Google ©, encontrar um determinado produto à venda na Internet? • Suponha que você deseja trocar de automóvel e gostaria de encontrar um veículo de um determinado modelo e ano, em uma determinada faixa de preço. Com os sistemas atuais de indexação de páginas HTML, será que teríamos uma resposta convincente e de qualidade para essa simples pergunta? 5 [III Congresso Científico – UNIRG/FAFICH] HTML • As novas aplicações: – Comércio Eletrônico – Protocolos "B2B" – Bibliotecas digitais – sistemas distribuídos –… precisamos de um "super HTML" 6 [III Congresso Científico – UNIRG/FAFICH] Uma Possível Solução! • Usar um modelo de grafo para armazenar os dados de características semi-estruturadas • Dados semi-estruturados: dados heterogêneos e irregulares, por exemplo XML • Origens de dados semi-estruturados: – integração de fontes heterogêneas – fontes de dados sem estrutura rígida • dados biológicos • dados da web 7 [III Congresso Científico – UNIRG/FAFICH] Estrutura dos Dados • Dados semi-estruturados: dados sem esquema ou auto-descritivos • Exemplo: – {nome:"Ana", tel:"3334567", email:[email protected]} – {nome:"Ana", tel:"3334567", tel:"9715432"} nome Ana email tel 3334567 [email protected] nome Ana tel tel 9715432 3334567 8 [III Congresso Científico – UNIRG/FAFICH] O que XML? • eXtensible Markup Language • Especifica o modo como o conteúdo do documento deve ser interpretado • Faz referência quanto a forma do documento. 9 [III Congresso Científico – UNIRG/FAFICH] O que é XML? • Uma linguagem de descrição de documentos, definida pela W3C • Um conjunto de tecnologias derivadas: – Xlink, Xpointer, Xschema, DOM, SAX, XSL,… • XML é uma linguagem de marcação de texto parecida com a HTML. • XML permite que o desenvolvedor crie usas próprias tags. 10 [III Congresso Científico – UNIRG/FAFICH] XML • XML possibilita uma melhor estruturação da informação que circula na web, na medida em que permite a definição de documentos onde claramente são separados: – Conteúdo; – significado e; – apresentação. • Com algumas vantagens importantes, como, por exemplo: – O mesmo conteúdo poderá ser apresentado com diversos formatos diferentes 11 [III Congresso Científico – UNIRG/FAFICH] XML • Os documentos disponibilizados em XML na Internet poderão ser indexados de forma mais precisa que as tradicionais páginas escritas em HTML 12 [III Congresso Científico – UNIRG/FAFICH] XML – Evolução: • 1995: Projeto TSIMMIS, Modelo OEM em Stanford • 1996: Projeto LORE, primeiro SGBD semiestruturado, Stanford • 1999: aceitação de XML pela indústria para representação de dados semi-estruturados 13 [III Congresso Científico – UNIRG/FAFICH] XML - HTML • Em HTML as marcações (tags) definem a forma de apresentação. Por exemplo: – <br> significa quebra de linha; – <h1> representa a formatação do texto como um cabeçalho • A linguagem de programação HTML é utilizada para definir apenas o aspecto em que a informação será apresentada, não seu significado • O documento HTML possui em sua estrutura tanto informações que definem a apresentação quanto o conteúdo. 14 [III Congresso Científico – UNIRG/FAFICH] Exemplo: • <html> • <head> • <title>Exemplo de um página HTML </title> • </head> • <body> • <p> <b>Eder Pazinatto </b></p> • <p>UNIRG/FAFICH </p> • </body> • </html> 15 [III Congresso Científico – UNIRG/FAFICH] 16 [III Congresso Científico – UNIRG/FAFICH] Principais Limitações • HTML não permite que seus usuários determinem suas marcações ou atributos • Assim não permite parametrizar ou qualificar semanticamente seus dados, não podendo ser classificada como uma linguagem extensível 17 [III Congresso Científico – UNIRG/FAFICH] Principais Limitações • Também não permite definir estruturas de informações que representem esquemas de bases de dados ou hierarquias • Não realiza validações de sua estrutura, sendo que desta forma uma tag aberta não precisa ser necessariamente fechada 18 [III Congresso Científico – UNIRG/FAFICH] XML • Ao contrário de HTML, não é uma linguagem de programação de apresentações para a Internet. • XML não é programável, sendo apenas utilizada para descrição dos dados. • Não possui nenhuma tag pré-definida, ficando para o próprio programador desenvolver o seu padrão para representar a informação que será armazenada no documento. 19 [III Congresso Científico – UNIRG/FAFICH] Exemplo: • <?xml version="1.0" ?> • <documento> • <nome>Eder Pazinatto</nome> • <instituicao>UNIRG/FAFICH</instituicao> • </documento> 20 [III Congresso Científico – UNIRG/FAFICH] 21 [III Congresso Científico – UNIRG/FAFICH] XML • XML difere de HTML em três principais aspectos: – A “linguagem” XML utilizada em um documento específico é desenvolvida pelo próprio provedor de informação ou programador, que cria o conjunto de elementos, marcações e atributos, que melhor lhe convir; – A estrutura do documento não precisa ser definida em dentro do documento XML. Desta maneira o conteúdo e sua estrutura poderão ser criados em arquivos separados, oferecendo uma maior clareza; – A forma como o conteúdo do documento XML será apresentado no navegador dependerá de como a folha de estilo (XSL) do documento foi criada, sendo suportado HTML e PDF entre outros formatos 22 [III Congresso Científico – UNIRG/FAFICH] XML • Um documento XML é formado normalmente por três elementos ou arquivos principais que se completam para determinar o armazenamento do conteúdo e sua apresentação. • Diagrama: 23 [III Congresso Científico – UNIRG/FAFICH] XML conteúdo XSL apresentação DTD Schema estrutura 24 [III Congresso Científico – UNIRG/FAFICH] • O mesmo documento XML pode possuir diversas apresentações de acordo com a folha de estilo que for definida (HTML, WORD ou Adobe PDF) XML conteúdo XSL WORD XSL PDF XSL HTML 25 [III Congresso Científico – UNIRG/FAFICH] XML - HTML • Enquanto que em HTML a preocupação principal é a apresentação visual da informação, em XML é a estrutura e a hierarquia em que a mesma é armazenada. 26 [III Congresso Científico – UNIRG/FAFICH] XML - HTML • As aplicações que poderão ser realizadas com XML são aquelas encontram em HTML deficiências devido às suas limitações. • Essas aplicações podem ser definidas em quatro categorias: – Aplicações em que o cliente web tenha que obter informações de bases de dados heterogêneas; 27 [III Congresso Científico – UNIRG/FAFICH] XML - HTML • Aplicações que permitam a distribuição de parte do processamento de informações dos servidores para os clientes; • Aplicações que requerem a apresentação de uma mesma informação em diferentes formas e para diferentes usuários; • Aplicações em que Agentes Inteligentes possam descobrir informações precisas e de qualidade na web. 28 [III Congresso Científico – UNIRG/FAFICH] Exemplo XML • Armazenamento de informações sobre veículos, com modelo, fabricante, ano e preço. VEICULOS.XML • • • • • • • • • <?xml version="1.0" • ?><veiculo> • <modelo>Ka</modelo> <!-- Controle de Veículos - -> • <fabricante>Ford</fabri <disponíveis> cante> <veiculo> • <ano>2001</ano > <modelo>Focus</modelo> • <preco>R$18.000,00</pre <fabricante>Ford</fabricante> co> <ano >2000</ano > • </veiculo> <preco>R$28.000,00</preco> • </disponíveis > </veiculo> 29 [III Congresso Científico – UNIRG/FAFICH] XML • Todo documento XML deverá conter o cabeçalho com a instrução que determina a versão de XML utilizada. – <?xml version="1.0" ?> • A sintaxe de um documento XML é bastante simples, sendo que a regra principal, define que o documento é formado por elementos constituídos de marcação inicial, conteúdo e marcação final. – <modelo>Focus</modelo> 30 [III Congresso Científico – UNIRG/FAFICH] XML • XML faz diferenciação entre letras minúsculas e maiúsculas, ou seja, <Modelo> é diferente de <modelo>. • Espaços em branco também fazem a diferença na linguagem. 31 [III Congresso Científico – UNIRG/FAFICH] DTD (Documet Type Definitions) • DTD define a “linguagem” do documento XML, sendo a garantia de uniformidade da estrutura, ordem e precisão na troca de dados • Elementos de uma DTD: Os documentos XML são criados a partir de blocos de informação do tipo: Elementos, Marcações, Atributos, Entidades, PCDATA e CDATA • A DTD do documento poderá ser registrada na região denominada prólogo, em um documento XML. 32 [III Congresso Científico – UNIRG/FAFICH] DTD •O Prólogo ocorre após a definição da versão da linguagem e antes do início da região de dados • <?xml version="1.0" ?> • <!-- Controle de Veículos - -> • <!DOCTYPE disponíveis [ • <!ELEMENT disponíveis (veiculo)> • <!ELEMENT veiculo (modelo,fabricante, ano, preco)> • <!ELEMENT modelo (#PCDATA)> • <!ELEMENT fabricante (#PCDATA)> • <!ELEMENT ano (#PCDATA)> • <!ELEMENT pre co (#PCDATA)> • ]> 33 [III Congresso Científico – UNIRG/FAFICH] DTD • Conforme o DTD segue o documento XML • <disponíveis> • <veiculo> • <veiculo> • <modelo>Ka</modelo> • <modelo>Focus</modelo> • <fabricante>Ford</fabricante> • <fabricante>Ford</fabricante> • <ano>2000</ano> • <ano>2000</ano> • <preco>R$18.000,00</preco> • <preco>R$28.000,00</preco> • </veiculo> </disponíveis> • </veiculo> 34 [III Congresso Científico – UNIRG/FAFICH] DTD • A DTD poderá ser criada em um arquivo externo ao documento XML. O exemplo a seguir chama um arquivo DTD de nome VD.DTD. • • • • • • • • • • <?xml version="1.0" ?> <!-- Controle de Veículos - -> <!DOCTYPE veiculos_disponíveis SYSTEM "vd.dtd"> <disponíveis> <veiculo> <modelo>Focus</modelo> <fabricante>Ford</fabricante> <ano>2000</ano> ..................... </disponíveis> 35 [III Congresso Científico – UNIRG/FAFICH] DTD • O arquivo VD.DTD chamado pelo documento XML é apresentado a seguir. • <?xml version="1.0"?> • <!ELEMENT disponíveis (veiculo) > • <!ELEMENT veiculo (modelo,fabricante,ano,preco)> • <!ELEMENT modelo (#PCDATA)> • <!ELEMENT fabricante (#PCDATA)> • <!ELEMENT ano (#PCDATA)> • <!ELEMENT preco (#PCDATA)> 36 [III Congresso Científico – UNIRG/FAFICH] Schema XML • A Microsoft discordou um pouco da estrutura proposta pela W3C no que tange às DTD’s e apresentou um novo padrão para a definição da estrutura do documento XML, denominada SCHEMA • São mais flexíveis que os DTDs • O sistema da Microsoft é baseado em uma linguagem mais simples e clara, utilizando a própria estrutura da linguagem XML, porém com maiores recursos que os DTD’s. 37 [III Congresso Científico – UNIRG/FAFICH] Schema • Versão SCHEMA do exemplo dos veículos, através do arquivo VEICULOS.XSD. 38 [III Congresso Científico – UNIRG/FAFICH] Schema • <?xml version="1.0" encoding="UTF 8"?> • • < xs:complexType > • < xs:sequence> • < xs:element name="modelo" type="xs:string"/> <xs:schema xmlns:xs="atp://www.w3.org/2001/XMLS • type="xs:string"/> chema " elementFormDefault ="qualified " • attributeFormDefault ="unqualified "> • <xs:element name="disponíveis"> • <xs:annotation > • <xs:documentation >Veiculos</xs:documentation > • </xs:annotation > • <xs:complexType > • <xs:sequence> • < xs:element name="veiculo"> < xs:element name="fabricante" • < xs:element name="ano" type="xs:string"/> • < xs:element name="preco" type="xs:string"/> • </xs:sequence> • </ xs:complexType > • </ xs:element > • </ xs:sequence > • </xs:complexType > • </xs:element> • </xs:schema > 39 [III Congresso Científico – UNIRG/FAFICH] Exemplos • Arquivo XML: • Interpretador Java: • Programa: • XSU (XML SQL Utility) – Oracle: 40 [III Congresso Científico – UNIRG/FAFICH] Programa 41 [III Congresso Científico – UNIRG/FAFICH] XML - Vantagens • Em XML, os usuários inventam livremente as tags para marcar os componentes de um documento. • Exemplo: diversas formas de representar uma data » <date> 5 janeiro 2000 </date> » <date> <ano> 2000 </ano> <mes> 01 </mes> <dia> 05 </dia> </date> » <date format='ISO-8601'> 2000-01-05 </date> 42 [III Congresso Científico – UNIRG/FAFICH] XML - Vantagens • Grande liberdade de escolha das estruturas de dados facilita a troca de dados – – – – comércio eletrônico transações financeiras e comerciais pesquisa e indústria de biotecnologias multimídia • O documento pode também estar conforme as estruturas tipadas, chamadas DTD • A validação a um DTD permite a automatização no tratamento dos dados e assegura uma possibilidade de controle de integridade 43 [III Congresso Científico – UNIRG/FAFICH] Acesso às fontes de informação heterogêneas • A consulta e troca de dados entre as bases de dados heterogêneas é complexa XML contribui pare minimizar este problema • A indexação e consulta de bases de documentos pode se beneficiar de informações estruturais e textuais. – pesquisa por palavras-chaves: Jorge+Amado retorna todos os documentos contendo as palavras Jorge e Amado, então as páginas pessoais de Pedro Amado cujo filho se chama Jorge. – pesquisa estrutural: pesquisa os documentos cujo autor é Jorge Amado (isto é os documentos contendo um elemento autor, ou escrito-por contendo Jorge e Amado) 44 [III Congresso Científico – UNIRG/FAFICH] Considerações Finais • XML é uma linguagem promissora para armazenamento e distribuição de informações na www. • O surgimento de novas aplicações com XML apontam para uma utilização cada vez maior desse padrão. • XML torna-se matéria fundamental de estudo e desenvolvimento de novas aplicações. 45 [III Congresso Científico – UNIRG/FAFICH] Referências Bibliográficas • ABITEBOUL,Serge; BUNEMAN, Peter; SUCIU,Dan; Gerenciando Dados na Web. São Paulo: Campus, 2000 • ARCINIEGAS, Fabio. C++ XML. São Paulo: Makron Books, 2002. • Especificação W3C: http://www.w3.org/XML • Livro On-line: Harold Elliotte R. Processing XML with Java. http://www.mmg.tu-sofia.bg/xmljava • WALSH, N. What is XML?, USA,1998, http://www.xml.com/pub/a/98/10/guide1.html#AEN58 46 [III Congresso Científico – UNIRG/FAFICH] Programas para XML(editores e outros programas) • Microsoft XML Notepad – http://msdn.microsoft.com/library/default.asp?url=/library/ en-us/dnxml/html/xmlpaddownload.asp • XML Spy – http://www.xmlspy.com/ • XEENA – http://www.alphaWorks.ibm.com/tech/xeena 47 [III Congresso Científico – UNIRG/FAFICH] Dúvidas? Perguntas? 48