160 likes | 293 Views
Java e XML. Eduardo Aranha. Slogans de Java e de XML. Java “Portabilidade de Código” XML “Portabilidade de Dados” Java e XML “Portabilidade de Código e de Dados”. XML. Extensible Markup Language Metalinguagem Utilizada para definir outras linguagens Não define marcadores ( tags )
E N D
Java e XML Eduardo Aranha
Slogans de Java e de XML • Java • “Portabilidade de Código” • XML • “Portabilidade de Dados” • Java e XML • “Portabilidade de Código e de Dados”
XML • Extensible Markup Language • Metalinguagem • Utilizada para definir outras linguagens • Não define marcadores (tags) • Não define gramática • Conformidade com uma estrutura geral (uso de marcadores, sua ordem, única raiz, etc)
XML • Método para colocar dados estruturados em arquivos textos • Em formato texto, mas apenas para facilitar a depuração • Família de tecnologias (Xlink, Xpath, XLS, Namespace, ...)
XML • Uso • Protocolo de Comunicação • Ex: Entre Applet e Servlet, Business-to-Business, RPC, ... • Camada de Apresentação (XSL, XSLT) • Definição de objetos de transformação de dados para apresentação • Ex: Apresentar o dado em HTML, PDF, PS, ... • Configuração • Ex: EJB, Servlet 2.2, Shopping do Radix, Engenho de Teste, ...
XML • Exemplo simples de arquivo XML <?xml version=“1.0”?> <banco nome=“PB & Associados”> Banco sem limites financeiros <conta numero=“100” saldo=“10.000.000,00” /> <conta numero=“50” saldo=“9.000.000,00” /> </banco>
Especificando o Formato do Arquivo • Determina se um documento é válido • Document Type Declarations (DTD) • Determina a estrutura do documento • Esquema XML • Determina a estrutura do documento e restrições para os textos contidos nele • Sintax XML, datatypes, hierarquia, regras, suporte a namespace, ...
Document Type Declarations (DTD) • Arquivo XML <?xml version=“1.0”?> <!DOCTYPE banco SYSTEM “banco.dtd”> <banco nome=“PB & Associados”> ... </banco>
Document Type Declarations (DTD) • Arquivo banco.dtd <?xml version="1.0"?> <!ELEMENT banco (conta*)> <!ELEMENT conta EMPTY> <!ATTLIST banco nome CDATA #REQUIRED> <!ATTLIST conta numero ID #REQUIRED saldo (9.000.000,00 | 10.000.000,00 ) #IMPLIED>
Esquema XML • Exemplo de esquema <?xml version="1.0"?> <schema> <attribute name="shoeSize"> <simpleType baseType="integer"> <minExclusive value="0" /> <maxInclusive value="20" /> </simpleType> </attribute> </schema>
Formas de Acesso • DOM • Document Object Model • API baseado em árvores • Utilizado para manipulação dos dados • Lê todo o documento para depois gerar uma árvore • pacote org.w3c.dom
Formas de Acesso • SAX • API Baseado em eventos start document start element: banco characters: Banco sem limites financeiros start element: conta end element: conta ... end element: banco end document
Formas de Acesso • SAX • Simple API for XML • Não cria uma representação em forma de árvore • Durante a leitura do documento já vai gerando os eventos • pacote org.xml.sax
Java e XML • Algumas APIs • JAXP (Java API for XML Parsing) Da Sun Microsystem, um dia deve ser incorporada no kit Java • JDOM Jason Hunter, Brett McLaughlin • Outras APIs foram desenvolvidas pela IBM, Oracle e Apache Software Foundation
Referências • Extensible Markup Language http://www.w3c.org/XML • Brett McLaughlin. Java and XML. O´Reilly, 2000. • Site sobre XML da Sun Microsystem http://java.sun.com/xml
Referências • Validation with Java and XML schema http://www.javaworld.com/javaworld/jw-09-2000/jw-0908-validation.html • Jato: The new kid on the open source block http://www.javaworld.com/javaworld/jw-04-2001/jw-0413-jato2.html