1 / 81

Objetivos da Inovação do Curso

Objetivos da Inovação do Curso. Tomar contato com recentes tecnologias para Internet: XML. Estimular novas áreas de trabalhos/pesquisas. Foco: tornar os sistemas interoperáveis, ou comunicáveis. É importante fazer usos de padrões abertos. Isto é, evitar padrões e software proprietários.

kalli
Download Presentation

Objetivos da Inovação do Curso

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objetivos da Inovação do Curso • Tomar contato com recentes tecnologias para Internet: XML. • Estimular novas áreas de trabalhos/pesquisas. • Foco: tornar os sistemas interoperáveis, ou comunicáveis. • É importante fazer usos de padrões abertos. Isto é, evitar padrões e software proprietários. • Há muitos padrões para atender melhor cada tipo de aplicação, fragmentando o alcance de cada um deles. XML ajuda a uni-los. • Apresentação de um projeto básico: • Será definido as linhas gerais do trabalho. • Espera-se que se identifique o uso de estruturas de dados. • O incremento de funcionalidades além do básico é bastante desejável. • Inclusão de documentação e relatório do trabalho.

  2. XML eXtensible Markup Language Um alcance maior com a independência de plataformas

  3. Rapidamente: Como é XML? <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>Hello, world!</greeting> <?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting> PCDATA: Parseable character data Well-Formed XML Documents

  4. XML • É um formato de marcação extensível para domínios de aplicação. • Teve origem no SGML e na experiência com HTML • Parser - faz uso extenso do analisador sintático. • DTD - Data Type Definition • Schema - alternativa com definição semântica enriquecida do DTD. • Xpath - XML Path Language • XSL - Extensible Stylesheet Language • XLL - XML Linking Language (Xlink + Xpointer + Xpath) • Namespace - similar ao namespace do C++ ou package do Java.

  5. Onde XML é usado? • Melhor perguntar onde XML não é usado. • XML se aplica quando algo faz uso de: • (representação/especificação de) dados e conteúdos. • Comunicação, e-business, e-services (XML-RPC, SOAP, ebXML) • interface gráfica (XUL - ) • multimídia (SMIL - synchronized multimedia integration language) • makefile e arquivos de configuração (ex: Apache, Java 1.4)

  6. XML por toda parte • DocBook • MathML • CML • VoiceXML • WML

  7. Introdução + Tutorial + Referência em XML • Sites principais • www.w3.org, • www.startkabel.nl/k/xml/ • www.xml.com (org) • www.xmlhack.com • www.javacommerce.com/tutorial/xmldev/index.html • www.xml.org • Livros: • Desvendando XML (New Riders), Steven Holzner • Java XML (O’Reilly), Benoit Marchal • www.oreilly.com (capítulos gratuitos) • http://www.extensibility.com/resources/books_wrox.asp • NÃO COMPREM O “XML BLACK BOOK”.

  8. Tutorial na Internet • http://www.w3schools.com/ • http://www6.software.ibm.com/developerworks/education/co-xmsg/co-xmsg-1-1.html • http://www-106.ibm.com/developerworks/education/tutorial-prog/parsing.html • http://www6.software.ibm.com/developerworks/education/wsbasics/index.html • XPath • http://geneura.ugr.es/~victor/cursillos/xml/XPath/ • http://www.sun.com/xml/developers/xsl/ • Namespace • http://www.simonstl.com/articles/namespaces/index.html • http://www.jclark.com/xml/xmlns.htm • http://www.xml.com/pub/a/2000/03/08/namespaces/index.html

  9. Programas e códigos • Software • Java J2SE (J2SDK) (http://java.sun.com/j2se/1.4/) • www.apache.org (xml) • Editores de XML: XML Spy e www.xmleverywhere.com/cooktop/ • Exercícios práticos on-line: • http://zvon.org/xxl/XMLTutorial/General/book.html • Exemplos de uso de XML na Internet • http://www.posc.org/ebiz/xmlLive.shtml • http://technet.oracle.com/sample_code/content.html • http://www.sys-con.com/xml/source/ • http://newinstance.com/writing/javaxml/examples.html

  10. Editoras - livros gratuitos • Livros da Sun: • Java: http://java.sun.com/docs/books/ • Xml: http://java.sun.com/xml/tutorial_intro.html • http://www.mindview.net/Books/DownloadSites • http://www.mcp.com/que/results_que.cfm?parameter=XML&scope=title • http://www.mcp.com/que/display_que.cfm?itemhdr=Sample%20Chapter&itemloc=chapter&item=0789724766 • http://www.oreilly.com/catalog/learnxml/chapter/ch02.html • http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html • http://www.oreilly.com/catalog/orxmlapp/chapter/index.html • http://www.oreilly.com/catalog/javaxml/chapter/ch09.html • http://www.ibiblio.org/xml/books/bible/examples/ • http://www.extensibility.com/resources/books_wrox.asp • http://xmlwriter.net/books/xml_books.shtml

  11. Buzz words • Componentes do XML: XSL, XLL, SAX, DOM, Xlink, XPointers • CGI tradicional: HTML, DHTML, JHTML, SHTML, XHTML • Markup Languages: MathML, MusicML, GML, CML, WML, -UML- • Ferramentas XML no Apache: Cocoon, Xalan, Xerces, • BD: JDBC-ODBC, JDO, RDBMS, ODBMS • Plataforma Java: Servlet, RMI, JavaBeans, JSP, EJB, JavaIDL, • Tiny HTML - Um subconjunto do HTML apropriado para Palm Pilots. • VoxML - The Motorola ML que permite interação voz-aplicação. • TTML - The Tagged Text ML é um subconjunto HTML desenvolvido p/ Nokia. • HDML - The Handheld Devices ML é uma versão simples de HTML para dispositivos de mão, handheld. • OMF - Weather Observation Markup Format codifica observações meteorológicas.

  12. Projeto: Biblioteca de documentos Cliente Servidor Apache Páginas HTML Navegador HTML / JavaScript html form BD/Diretorio xml, pdf, ps Servlets xml API html

  13. Tópicos e grupos • HTML - CSS - JavaScript (grupo A) • Especificação de Use Cases da interação do usuário (grupo A) • Java JDK - Servlet (grupo B) • Apache + Coccon + Tomcat (grupo B) • Editores de DTD, Schema, XSL (grupo C) • XML - XSL - XLL (Xpath - Xlink - Xpointer) (grupo C) • XML - DTD - DocBook - FOP (grupo D) • XML - Xquery - BD (JDBC) (grupo E) • XML - SMIL (grupo F) • Relatórios

  14. HTML • Exemplo de upload em HTML: • http://www.w3.org/2000/09/webdata/xsv • Arquitetura de Web sites (Arquitetura de design) • http://www.ccuec.unicamp.br/treinamentos/webpro/ • http://www.ambysoft.com/userInterfaceDesign.pdf • Desenhar e definir as páginas da biblioteca digital: • organizar as telas de consultas conforme a interação por: palavras-chave, título, autor, ... • Usar CSS para apresentação e Javascript para a interação. • Criar a tela de entrada de documentos: como txt, doc, ps, pdf. • Permitir a criação de cadastro, definir o layout e os links preferido e salvá-los no site. • Interagir com o responsável do DTD para definir o conteúdo das telas.

  15. Itens/sites relevantes para www • É desejável saber o que é http (www.whatis.com) • Tutorial/Primers sobre Html / JavaScript (Ramalho) • http://www.w3.org • http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html • http://www.htmlgoodies.com/ • http://training.oreilly.com/ • http://www.oreilly.com/catalog/jscript2/examples/ • http://developer.netscape.com/library/documentation/htmlguid/index.htm • Web-design • http://ituser.it.bton.ac.uk/staff/idd/ • http://info.med.yale.edu/caim/manual/contents.html

  16. Interface do nosso “Portal” • Pesquisar por data, autor, titulo, palavras-chave • Data: período (maior, menor, entre), mês, ano. • Quantos resultados. • Palavras-chave: exato, palavras similares, (and, or) • Categoria/área do assunto. • Instituição de origem. • Incluir dicas sobre campos usando ToolTips http://webdeveloper.earthweb.com/pagedev/webjs/item/0,3602,12760_26671,00.html • Acessórios relevantes não mencionados aqui.

  17. Computador Navegador Computador Estabelecer os possíveis casos de uso Consulta por autor Lista de resultados

  18. Java • APIs do servidor Apache (Tópico XML) • Xerces - XML parsers • Xalan - XSLT stylesheet processors • Cocoon - XML-based web publishing • FOP - XSL formatting objects • Xang - Rapid development of dynamic server pages, in JavaScript • Servlets (Tópico servidor) • Software: Tomcat do Apache (http://jakarta.apache.org/tomcat/). • http://c2.com/cgi/wiki?ServletDesign • Interagir com HTML e XSL • Artigos: • http://www.xml-data-servers.com/ • http://65.1.136.127/developerlife/saxtutorial1/default.htm • http://www-106.ibm.com/developerworks/library/data-binding4/index.html

  19. Editores • Artigo sobre editores de XML em geral • http://www-106.ibm.com/developerworks/java/library/x-matters6.html • Um dos melhores: XML Spy (http://www.xmlspy.com/) • Gratuitos: http://www.garshol.priv.no/download/xmltools/ • Pode usar WordPad para textos. • Pode usar NotePad para XML da MS. • Software em geral: http://www.xmlsoftware.com/

  20. DTD • Definir as regras e o vocabulário do DTD. • Investigar linguagens baseadas em XML mais apropriada para o projeto. Veja, por exemplo, DocBook (ML p/ documento técnico). • Interagir com os responsáveis do HTML e do XSLT. • Links: • http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html • http://www.oasis-open.org/docbook/intro.html • http://zvon.org/xxl/DTDTutorial/General/book.html • http://www.developer.ibm.com/devcon/rsinnarticle.htm • FOP (Formatador de PDF) • http://xml.apache.org/fop/

  21. DTD http://www.w3.org/TR/xslt http://www.cs.rutgers.edu/~shklar/classes/476/class21/slide5.html http://www.cs.rutgers.edu/~shklar/classes/476/schedule.html <!ELEMENT book (author+, title, publisher)> <!ATTLIST book year CDATA> <!ELEMENT article (author+, title, year?, (shortversion|longversion))> <!ATTLIST article type CDATA> <!ELEMENT publisher (name, address)> <!ELEMENT author (firstname?, lastname)>

  22. XML Query • Coleções de arquivos XML podem ser acessados como Banco de Dados • Links: • http://www.rpbourret.com/xmldbms/readme.htm • http://www.cs.bell-labs.com/who/wadler/topics/xml.html • http://www.w3.org/TandS/QL/QL98/pp/xql.html • http://www.ibiblio.org/xql/ • Fazer uso inteligente da estrutura do XML. • Site principal: http://www.w3.org/XML/Query • Exemplo: http://www.w3.org/TR/xmlquery-use-cases

  23. XSL - Extensible Stylesheet Language • Linguagem para expressar padrões similar aos estilos do Word: • É uma linguagem para transformar documentos XML. • Contém um vocabulário para especificar formatação semântica. • http://www.w3.org/TR/xsl/ • Introduction to Cocoon, XML, XSL • http://www.devshed.com/Client_Side/XML/INTCXX/ • Artigos: • http://www-106.ibm.com/developerworks/library/x-xslt5.html • http://www-106.ibm.com/developerworks/library/jguru-dom/index.html

  24. Xpath - XML Path Language • http://www.w3.org/TR/xpath • Excelente curso prático online para experimentar: • http://www.zvon.org/xxl/XPathTutorial/General/examples.html

  25. Selecionando elementos com XPath <xsl:template match="/"> <xsl:value-of select=“AAA” </xsl:template> Selecionando /AAA /AAA/CCC /AAA/CCC/BBB <AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </ AAA > <AAA> <BBB/> < CCC /> <BBB/> <BBB/> <DDD> <BBB/> </DDD> < CCC /> </ AAA > <AAA> <BBB/> < CCC /> <BBB/> <BBB/> <DDD> < BBB /> </DDD> < CCC /> </ AAA >

  26. XLink • Links • http://www.ibiblio.org/xml/books/bible/updates/16.html • http://www.ibiblio.org/xml/books/bible/updates/17.html • http://www.sun.com/xml/developers/xlink/ • http://www.javacommerce.com/tutorial/xml/linking.html • http://pages.wooster.edu/ludwigj/xml/thesis.html • http://www.thefaactory.com/xlink2html/ • http://www.diffuse.org/TopicMaps/20001025/schema.html

  27. XSL Veja http://www.finetuning.com/styletutorials.html

  28. Regras xsl (1/3) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  29. Regras xsl (2/3) <xsl:template match="/"> <html> <head> <title>finetuning.com - Glossary of Terms</title> </head> <body> <center><h4>Glossary</h4></center> <table width="100%" border="1"><thead> <th>Term</th> <th>Definition</th> </thead> <tbody> <xsl:apply-templates/> </tbody> </table> </body> </html> </xsl:template>

  30. Regras xsl (3/3) <xsl:template match="item"> <tr> <td><strong> <xsl:value-of select="title" /></strong></td> <td><xsl:value-of select="definition" /></td> </tr> </xsl:template> </xsl:stylesheet>

  31. <libro> <titulo>Dos por tres calles</titulo> <autor>Josefa Santos</autor> <capitulo num="1"> La primera calle <parrafo> Era una sombría noche del mes de agosto... </parrafo> <parrafo destacar="si"> Ella, inocente cual <enlace href="http://www.enlace.es">mariposa</enlace> que surca el cielo en busca de libaciones... </parrafo> </capitulo> . . . . . . . . . . . . . ......... </libro> ejemplo.xml

  32. ejemplo.xsl <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="libro"> <HTML> <HEAD> <TITLE>Ejemplos en XPath</TITLE> </HEAD> <BODY> <H1>Resultados:</H1> <PRE> <xsl:apply-templates select="/libro/capitulo/text()"/> </PRE> </BODY> </HTML> </xsl:template> </xsl:stylesheet>

  33. Teste Execução > xsl ejemplo.xml ejemplo.xsl ejemplo.html É preciso de: - um analisador de XSLT como Xalan - um analisador de XML como Xerces Ambos estão no Cocoon (Apache)

  34. Saída do exemplo no Navigator

  35. Exemplo de arquivo XML <?xml version="1.0"?> <!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Test (Testing) --> <?xml-stylesheet type="text/xsl" href="planets.xsl"?> <PLANETS> <PLANET> <NAME>Mercury</NAME> <MASS UNITS="(Earth = 1">.0553</MASS> </PLANET> <PLANET> <NAME>Venus</NAME> <MASS UNITS="(Earth = 1">.815</MASS> </PLANET> <PLANET> <NAME>Earth</NAME> <MASS UNITS="(Earth = 1">1</MASS> </PLANET> </PLANETS>

  36. Cont... <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="PLANETS"> <xsl:apply-templates/> </xsl:template> <xsl:template match="PLANET"> <p> <xsl:value-of select="NAME"/> </p> </xsl:template> </xsl:stylesheet>

  37. Carregando o arquivo .xml no IE

  38. XML DTDs - XML Schemas • Permite escrever regras que definem uma estrutura de relacionamento. • Arquivos em XML podem ser validados segundo essas regras. • Permite construir a sua própria linguagem (vocabulário) por meio de DTD. • DTD é essencialmente uma gramática livre de contexto (BNF) para descrever uma linguagem e o vocabulário usado numa área de aplicação. • Para efetuar troca de dados entre instituições basta que codifique os dados conforme a DTD. • Ex: <Course> é constituído de <Name>, <Dept> (nessa ordem). • Ex: <html> é constituído de <head> e <body>

  39. Atividades envolvidas • Para construir aplicações em XML é preciso fazer 4 coisas: • Selecionar ou escrever uma DTD • Gerar documentos em XML • Interpretar documentos XML, e • Exibir documentos XML.

  40. Exemplo de DTD definindo “item” <!ELEMENT item (prodName+,USPrice, shipDate?) <!ATTLIST item partNum CDATA> <!ELEMENT prodName (#PCDATA)> <!ELEMENT USPrice (#PCDATA)> <!ELEMENT shipDate (#PCDATA)>

  41. XML schema definindo “item” <xsd:element name="item"> <xsd:complexType> <xsd:sequence> <xsd:element name="prodName" type="xsd:string" maxOccurs="5"/> <xsd:element name="USPrice" type="xsd:decimal"/> <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="partNum" type="SKU"/> </xsd:complexType> </xsd:element> <!-- Stock Keeping Unit, a code for identifying products --> <xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction> </xsd:simpleType>

  42. XSL • É muito mais do que um estilo (CSS). • CSS provê um conjunto de estilos para o HTML. • XSL uma linguagem de transformação e de formatação. • Especifica como um documento se transforma num outro. • ordenar • filtrar/traduzir • montar/compor, inserir, apresentar

  43. Conversão de dados da origem para o destino Sem XML Com XML

  44. Conteúdo dissociado da apresentação PDF HTML Dados xml WML XSLT SVG html XSL wml XSL svg XSL XSL - extensible style language

  45. SMIL - synchronized multimedia integration language • Pronunciação: “smile” • Permite integrar partes de arquivos de multimídia (Áudio/Vídeo) • Sincronizar arquivos do tipo: mp3, som, imagens, Flash, jpeg, etc. • Links: • http://www.w3.org/AudioVideo/ • http://www.cwi.nl/~media/SMIL/ • Em Português: http://www.helio.org/products/smil/tutorial_pt/

  46. Controlando a mídia com SMIL <smil> <head> <layout> <root-layout width="300" height="200" background-color="white" /> <region id="vim_icon" left="75" top="50" width="32" height="32" /> </layout> </head> <body> <img src="vim32x32.gif" alt="The vim icon" region="vim_icon" dur="6s" begin="2s" /> </body> </smil>

  47. Eventos em paralelo Inserir elemento de mídia numa apresentação especificando a região Evento com tempo e duração <smil> <head> <layout> <root-layout width="300" height="200" background-color="white" /> <region id="vim_icon" left="75" top="50" width="32" height="32" /> </layout> </head> <body> <img src="vim32x32.gif" alt="The vim icon" region="vim_icon" /> </body> </smil> Sincronização baseada em eventos

  48. Linguagem SVG (W3C) • Adobe (Plug-in) – Apache - SVGView (IBM) • Linguagem para descrever gráficos em 2-D • Formas vetoriais gráficas; • Imagens; • Texto. • E operações gráficas: animações, clipping, etc. • Todas as facilidades providas no XML • Suporte do World Wide Web Consortium (W3C) • Conversões de outros formatos para SVG: • Color Graphics Metafile (CGM) • Alternativa ao GIF/JPEG para visualização em browser.

  49. SVG: rect <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN“ "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> <svg width="12cm" height="4cm"> <desc>Example rect01 - rectangle expressed in physical units</desc> <rect x="4cm" y="1cm" width="4cm" height="2cm“ style="fill:yellow; stroke:navy; stroke-width:0.1cm" /> </svg>

  50. SVG: rect <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN“ "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> <svg width="12cm" height="4cm" viewBox="0 0 1200 400"> <desc>Example rect02 - rounded rectangles expressed in user coordinates</desc> <rect x="1" y="1" width="1198" height="398“ style="fill:none; stroke:blue"/> <rect x="100" y="100" width="400" height="200" rx="50“ style="fill:green;" /> <g transform="translate(700 210) rotate(-30)"> <rect x="0" y="0" width="400" height="200" rx="50“ style="fill:none; stroke:purple; stroke-width:30" /> </g> </svg>

More Related