• Nenhum resultado encontrado

5.4. Indústria

5.4.1. Padrões em XML

5.4.2.2. Bancos de Dados XML Nativos

Em cenários onde não existe a preocupação de armazenar dados (objeto-) relacionais e XML em um repositório único, os bancos de dados nativos são

uma boa solução. Os bancos de dados XML nativos utilizam o modelo XML internamente, ou seja, não existe a necessidade de se realizar um mapea- mento entre o modelo relacional ou objeto-relacional para XML [Bourret 2005]. A maioria desses SGBDs utiliza o modelo DOM para armazenar os documen- tos XML.

É importante notar que nesses bancos de dados não existe o conceito de “tabela” e “tupla”. O que existem são “coleções” e “documentos”. Uma coleção pode armazenar vários documentos XML. Documentos em uma coleção po- dem estar associados a um esquema, e o banco de dados é capaz de verificar, no momento da inserção, se o documento é ou não válido de acordo com o esquema associado. No entanto, o uso de esquemas não é obrigatório. Uma coleção pode conter documentos com estruturas completamente diferentes.

Os SGBDs XML nativos oferecem suporte a consultas XPath e XQuery, e,

para atualização, possuem diferentes abordagens, já que a linguagem para

atualização de documentos XML ainda não foi recomendada pela W3C. Em re- sumo, um Banco de Dados XML Nativo apresenta as seguintes características: define um modelo lógico para documentos XML, armazenando e recuperando documentos de acordo com tal modelo, e tem o documento XML como unidade lógica de armazenamento (assim como a unidade lógica do modelo relacional é uma linha em uma tabela). Note que o modelo XML deve incluir elementos, atributos, PCDATA e ordem. Exemplos desse modelo são os modelos XPath e XML Infoset [Cowan and Tobin 2004], bem como os modelos inferidos a partir das APIs DOM e SAX.

Entre os SGBDs XML nativos podemos citar:

eXist-DB14é uma iniciativa aberta para criação de um SGBD XML nativo escrito em Java. Armazena documentos de acordo com o modelo XML e provê processamento de consultas XQuery de maneira eficiente utili- zando índices. Tem suporte a XQuery 1.0, XPath 2.0, XSLT 1.0 (usando Apache Xalan), XSLT 2.0, WebDAV, SOAP, XMLRPC, entre outros. • MonetDB/XQuery15, desenvolvido pelo centro de pesquisa CWI (Ho-

landa), provê suporte praticamente completo à linguagem XQuery, in- cluindo características como suporte a funções definidas pelo usuário e cache para consulta. O sistema escala para grandes coleções XML. • Ozone Database Project16é uma iniciativa aberta para criação de um

SGBD orientado a objetos com código aberto em Java. Inclui uma im- plementação do DOM para armazenar XML. Ainda oferece suporte para Apache Xerces-J e Xalan-J.

SEDNA17, implementado em C/C++, é um SGBD XML nativo não comer- cial que fornece vários serviços, entre eles: armazenamento, transações

14http://exist.sourceforge.net/ 15http://monetdb.cwi.nl/XQuery 16http://ozone-db.org

ACID, segurança, índices, suporte a XQuery com função de busca e uma linguagem de atualização no nível de elementos.

Tamino18associa o gerenciamento nativo a um servidor Web. O servi- dor acessa dados tanto de um repositório XML quanto de um relacional. Utiliza a linguagem de consulta XQL e tem suporte às APIs DOM, JDOM e SAX, serviços SOAP e WebDAB.

Timber19, desenvolvido pela Universidade de Michigan, fornece várias características importantes, tais como suporte a uma álbebra XML, inde- xação de dados e otimização de consultas. Outras informações podem ser encontradas no seu website e em [Jagadish et al. 2002].

Uma lista completa de outros SGBDs nativos XML pode ser encontrada

no seguinte website: http://www.rpbourret.com/xml/XMLDatabaseProds.htm#native

(acesso em 01 de fevereiro de 2009).

5.4.3. Ferramentas

Existem diversas ferramentas para trabalhar com XML. Algumas de código aberto, outras proprietárias. Esta seção apresenta um apanhado das princi- pais ferramentas para validar, transformar, consultar e trabalhar com XML em forma de objetos em memória. As ferramentas são apresentadas por categoria, dependendo da funcionalidade que disponibilizam.

Editores. O principal editor disponível no mercado é sem dúvida o Altova XML

Spy20. Por muitos anos, essa foi uma das principais ferramentas para se tra-

balhar com XML. Isso porque trata-se de uma ferramenta bastante completa, que apresenta opções para validação contra DTD e XML Schema, transforma- ções XSLT, consultas XPaths e XQuery, entre outras. No entanto, ela é uma ferramenta proprietária e baseada em Windows. Ao longo dos anos, desde o surgimento da XML Spy, quando comparadas com ele as ferramentas livres eram sempre menos completas. Isso vem mudando recentemente. Hoje exis- tem ferramentas livres bem mais robustas. Um exemplo é a Exchanger XML

Lite21. Ela possui todas as funcionalidades citadas anteriormente e várias ou-

tras. É baseada em Java e a princípio independente de plataforma. Outra boa

opção é o XML Copy Editor22. Esse também é livre e possui versões para

Windows e Linux. Provê as funcionalidades de validação contra DTD e XML Schema, consultas XPath e transformações XSLT.

17http://www.modis.ispras.ru/sedna 18http://www.softwareag.com/tamino 19http://www.eecs.umich.edu/db/timber 20http://www.altova.com/products/xmlspy/xml_editor.html 21http://www.freexmleditor.com/ 22http://xml-copy-editor.sourceforge.net/

Transformação. Todos os editores apontados no item anterior também são capazes de realizar transformações XML. Além disso, os principais navega- dores Web (IE Explorer, Firefox, etc.) possuem um processador XSLT embu- tido. Desse modo, sempre que um arquivo XML que tem associado um arquivo XSLT for aberto no navegador, a transformação será executada, e o usuário verá apenas o resultado final da transformação. O arquivo original pode ser visto, no entanto, escolhendo a opção "visualizar código fonte" que os nave- gadores oferecem. Além dessas opções, existe uma outra bastante poderosa. A Altova (fabricante do XML Spy) tem uma ferramenta específica para trans-

formações chamada Altova Map Force23. Essa ferramenta é capaz de gerar o

arquivo com as regras de transformação de forma automática.

XML e Orientação a Objetos. Além das APIs discutidas na Seção 5.2.2, exis- tem vários frameworks para manipulação de arquivos XML via linguagem de programação. O principal propósito desses frameworks é deixar transparente para a aplicação a existência de arquivos XML. Eles fazem a leitura do arquivo XML e transformam os elementos existentes no arquivo em objetos na memó- ria. Assim, um elemento cliente se transforma em um objeto cliente na me- mória, e a manipulação dos dados passa a ser totalmente orientada a objetos.

Exemplos de tais frameworks são Castor24e Apache XML Beans25.

Além disso, várias ferramentas atualmente usam XML como formato de seus arquivos. Exemplos são aplicativos da família Microsoft Office, Open Of- fice, Argo UML, entre outras.

5.5. Conclusão

O sucesso de XML reside em seu formato aberto e de fácil adoção. No en- tanto, XML por si só não teria obtido o alcance que tem hoje se não fossem suas linguagens relacionados. As APIs, linguagens de consulta, esquemas e demais tecnologias contribuíram para que XML fosse adotada tão intensamente pela indústria. Seu formato aberto também estimulou os pesquisadores a conside- rarem XML como apoio fundamental na resolução de vários problemas clás- sicos de pesquisa. Além disso, XML vem sendo usada cada vez mais pela indústria nos mais diversos segmentos. Por esses e outros motivos, XML é a tecnologia ubíqua de maior sucesso para Web, juntamente com as tecnologias básicas URI, HTTP e HTML [Wilde and Glushko 2008].

Especificamente na comunidade de Banco de Dados, nota-se um pe- ríodo de transição da pesquisa em bases de dados estruturadas (como aque- las que seguem o modelo relacional) para o gerenciamento de coleções de

23http://www.altova.com/products/mapforce/data_mapping.html

24http://www.castor.org/xml-framework.html

dados extremamente ricas em dados estruturados, semiestruturados e não- estruturados que estão espalhadas em diversos repositórios de negócios e na Web [Agrawal et al. 2008]. XML certamente será uma das tecnologias determi- nantes na busca de soluções para esses novos desafios que são extremamente relevantes. O objetivo deste capítulo é proporcionar aos alunos de graduação e pós, bem como profissionais, em Computação e Informática um panorama ge- ral da situação de XML nos dias atuais. O momento para esse panorama não poderia ser mais propício, visto a explosão da utilização de XML em trabalhos de pesquisa para a Web (e.g.: Web Sciences) bem como em tecnologia móvel para acesso universal à informação (e.g.: M-Government ).

Finalmente, este capítulo apresentou conhecimentos básicos de XML, uma noção geral dos problemas de pesquisa que XML ajudou e está ajudando a so- lucionar bem como um panorama da influência de XML nos padrões industriais. Espera-se que os seus leitores estejam motivados a estudar mais a fundo XML, contribuindo assim para o avanço científico e tecnológico do país.

Agradecimentos

Gostaríamos de agradecer a todos os colaboradores que trabalharam co- nosco nos últimos 8 anos em tópicos relacionados a XML, entre eles: Carina F. Dorneles (UPF), Renata M. Galante (UFRGS), Carlos A. Heuser (UFRGS), Adrovane Kade (UFRGS), Vassilis J. Tsotras (UCR, USA), Zografoula Va- gena (Microsoft, UK), Susan Davidson (UPenn, USA), Marta Mattoso (COPPE- UFRJ), Guilherme Figueiredo, Cláudio Ferraz, André Vargas, Fernanda Baião (UNIRIO), Ronaldo S. Mello (UFSC), Dênio Duarte (UnoChapecó), Alberto H. F. Laender (UFMG) e José Palazzo M. de Oliveira (UFRGS). Este trabalho foi parcialmente financiado por CNPq, CAPES, FAPEMIG e FAPERJ.

Referências bibliográficas

[Abiteboul et al. 2004] Abiteboul, S., Benjelloun, O., Cautis, B., Manolescu, I., Milo, T., and Preda, N. (2004). Lazy Query Evaluation for Active XML. In

Procs. of ACM SIGMOD Intl. Conf. on Management of Data, pages 227 –

238.

[Abiteboul et al. 2008] Abiteboul, S., Benjelloun, O., and Milo, T. (2008). The Active XML project: an overview. VLDB Journal, 17(5):1019–1040.

[Abiteboul et al. 2003] Abiteboul, S., Bonifati, A., Cobena, G., Manolescu, I., and Milo, T. (2003). Dynamic XML Documents with Distribution and Replica- tion. In Procs. of ACM SIGMOD Intl. Conf. on Management of Data, pages 527–538.

[Agrawal et al. 2008] Agrawal, R., Ailamaki, A., Bernstein, P. A., Brewer, E. A., Carey, M. J., Chaudhuri, S., Doan, A., Florescu, D., Franklin, M. J., Garcia- Molina, H., Gehrke, J., Gruenwald, L., Haas, L. M., Halevy, A. Y., Hellerstein, J. M., Ioannidis, Y. E., Korth, H. F., Kossmann, D., Madden, S., Magoulas, R., Ooi, B. C., O’Reilly, T., Ramakrishnan, R., Sarawagi, S., Stonebraker, M.,

Szalay, A. S., and Weikum, G. (2008). The Claremont Report on Database Research. SIGMOD Record, 37(3):9–19.

[Al-Khalifa et. al 2002] Al-Khalifa et. al, S. (2002). Structural Joins: A Primitive for Efficient XML Query Pattern Matching. In Procs. of Intl. Conf. on Data

Engineering - ICDE, pages 141–152.

[Amer-Yahia and Kotidis 2004] Amer-Yahia, S. and Kotidis, Y. (2004). A Web- Services Architecture for Efficient XML Data Exchange. In Procs. of Intl. Conf.

on Data Engineering - ICDE, pages 523–534.

[Andrade et al. 2006] Andrade, A., Ruberg, G., Baião, F. A., Braganholo, V. P., and Mattoso, M. (2006). Efficiently Processing XML Queries over Fragmen- ted Repositories with PartiX. In Procs. of Intl. Conf. on Extending Database

Technology - EDBT, Workshops, pages 150–163.

[Beyer et al. 2005] Beyer, K. S., Özcan, F., Saiprasad, S., and der Linden, B. V. (2005). DB2/XML: Designing for Evolution. In Procs. of ACM SIGMOD Intl.

Conf. on Management of Data, pages 948–952.

[Boag et al. 2007] Boag, S., Chamberlin, D., Fernández, M. F., Florescu, D., Robie, J., and Siméon, J. (2007). XQuery 1.0: An XML Query Language. W3C Recommendation 23 January 2007. http://www.w3.org/TR/xquery/. [Bonifati et al. 2004] Bonifati, A., Matrangolo, U., Cuzzocrea, A., and Jain, M.

(2004). XPath lookup queries in P2P networks. In Procs. of ACM Intl. Work.

on Web Information and Data Management - WIDM, pages 48–55.

[Booth and Liu 2007] Booth, D. and Liu, C. K. (2007). Web Services Descrip- tion Language (WSDL) Version 2.0 Part 0: Primer. W3C Recommendation 26 June 2007. http://www.w3.org/TR/wsdl20-primer/.

[Bose et al. 2003] Bose, S., Fegaras, L., Levine, D., and Chaluvadi, V. (2003). A Query Algebra for Fragmented XML Stream Data. In Procs. of Intl. Work.

on Database Programming Languages - DBPL, pages 195–215.

[Bourret 2005] Bourret, R. (2005). Native XML Databases in the Real World. In Procs. of XML Conference & Exposition.

[Bradley 2000] Bradley, N. (2000). The XML Companion, Second Edition.

Addison-Wesley.

[Braganholo and Heuser 2001] Braganholo, V. and Heuser, C. (2001). XML Schema, RDF(S) e UML: uma comparação. In Iberoamerican Workshop on

Requirements Engineering and Software Environments, pages 78–90.

[Bray et al. 2006] Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., and Yergeau, F. (2006). Extensible Markup Language (XML) 1.0 (Fourth Edition). W3C Recommendation 16 August 2006, edited in place 29 September 2006.

http://www.w3.org/TR/2006/REC-xml-20060816/.

[Bray et al. 2007] Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., and Yergeau, F. (2007). XQuery 1.0 and XPath 2.0 Functions and Operators.

W3C Recommendation 23 January 2007. http://www.w3.org/TR/2007/REC-

xpath-functions-20070123/.

[Bremer and Gertz 2003] Bremer, J.-M. and Gertz, M. (2003). On Distributing XML Repositories. In Procs. of Intl. Work. on the Web and Databases -

WebDB.

[Bruno et al. 2002] Bruno, N., Koudas, N., and Srivastava, D. (2002). Holistic Twig Joins: Optimal XML Pattern Matching. In Procs. of ACM SIGMOD Intl.

Conf. on Management of Data, pages 310–321.

[Chamberlin et al. 2008a] Chamberlin, D., Engovatov, D., Florescu, D.,

Ghelli, G., Melton, J., Simeon, J., and Snelson, J. (2008a). XQuery

Scripting Extension 1.0. W3C Working Draft 3 December 2008.

http://www.w3.org/TR/xquery-sx-10/.

[Chamberlin et al. 2008b] Chamberlin, D., Florescu, D., Melton, J., Robie, J.,

and Simï¿21on, J. (2008b). XQuery Update Facility 1.0. W3C Candidate Re-

commendation 01 August 2008. http://www.w3.org/TR/xquery-update-10/. [Clark 1999] Clark, J. (1999). XSL Transformations (XSLT) Version 1.0 W3C

Recommendation 16 November 1999. http://www.w3.org/TR/xslt.

[Clark and DeRose 1999] Clark, J. and DeRose, S. (1999). XML Path Lan- guage (XPath) Version 1.0. W3C Recommendation 16 November 1999.

http://www.w3.org/TR/xpath.

[Cowan and Tobin 2004] Cowan, J. and Tobin, R. (2004). XML Infor-

mation Set (Second Edition). W3C Recommendation 4 February 2004.

http://www.w3.org/TR/xml-infoset.

[Diao et al. 2004] Diao, Y., Rizvi, S., and Franklin, M. J. (2004). Towards an Internet-Scale XML Dissemination Service. In Procs. of Intl. Conf. on Very

Large Data Bases - VLDB, pages 612–623.

[Eisenberg and Melton 2002] Eisenberg, A. and Melton, J. (2002). SQL/XML is making good progress. SIGMOD Record, 31(2):101-108.

[Eisenberg and Melton 2004] Eisenberg, A. and Melton, J. (2004). Advance- ments in SQL/XML. SIGMOD Record, 33(3):79-86.

[Elmagarmid et al. 2007] Elmagarmid, A. K., Ipirotis, P. G., and Verykios, V. S. (2007). Duplicate Record Detection: A Survey. IEEE Transactions on Kno-

wledge And Data Engineering, 19(1): 1-16.

[Fallside and Walmsley 2004] Fallside, D. C. and Walmsley, P. (2004). XML Schema Part 0: Primer Second Edition. W3C Recommendation 28 October 2004. http://www.w3.org/TR/xmlschema-0/.

[Fiege 2005] Fiege, L. (2005). Data Dissemination. In Encyclopedia of Data-

base Technologies and Applications, pages 105–109.

[Figueiredo 2007] Figueiredo, G. (2007). Consultas sobre visões XML de Ba- ses Relacionais Distribu ídas. Dissertação de Mestrado, Programa de Enge-

nharia de Sistemas e Computação/UFRJ, Rio de Janeiro, RJ.

[Figueiredo et al. 2007] Figueiredo, G., Braganholo, V., and Mattoso, M. (2007). Um Mediador para o Processamento de Consultas sobre Bases XML Distribuídas. In Anais do Simpósio Brasileiro de Banco de Dados - SBBD,

Sessão de Demos, pages 21–26.

[Getov 2008] Getov, V. (2008). E-Science: the added value for modern disco- very. IEEE Computer, 41(11):30–31.

[Gou and Chirkova 2007] Gou, G. and Chirkova, R. (2007). Efficiently

Querying Large XML Data Repositories: A Survey. IEEE Transactions on

Knowledge and Data Engineering - TKDE, 19(10):1381–1403.

[Guerrini and Mesiti 2008] Guerrini, G. and Mesiti, M. (2008). X-Evolution: A Comprehensive Approach for XML Schema Evolution. In Procs. of Intl. Conf.

on Database and Expert Systems Applications - DEXA ,Workshops, pages

251–255.

[Guerrini et al. 2005] Guerrini, G., Mesiti, M., and Rossi, D. (2005). Impact of XML Schema Evolution on Valid Documents. In Procs. of ACM Intl. Work. on

Web Information and Data Management - WIDM, pages 39–44.

[Hors et al. 2004] Hors, A. L., Hégaret, P. L., Wood, L., Nicol, G., Ro-

bie, J., Champion, M., and Byrne, S. (2004). Document Object Model

(DOM) Level 3 Core Specification. W3C Recommendation 07 April 2004.

http://www.w3.org/TR/DOM-Level-3-Core.

[Jacobs 2005] Jacobs, I. (2005). World wide web consortium process docu- ment. http://www.w3.org/2005/10/Process-20051014/.

[Jagadish et al. 2002] Jagadish, H. V., Al-khalifa, S., Chapman, A., Laksh- manan, L. V. S., Nierman, A., Paparizos, S., Patel, J. M., Srivastava, D., Wiwatwattana, N., Wu, Y., and Yu, C. (2002). TIMBER: A native XML data- base. VLDB Journal, 11(4):274–291.

[Kade and Heuser 2008] Kade, A. and Heuser, C. (2008). Matching XML Docu- ments in Highly Dynamic Applications. In Procs. of ACM Symp. on Document

Engineering - DocEng, pages 191–198.

[Li et al. 2007] Li, G., Hou, S., and Jacobsen, H.-A. (2007). XML Routing in Data Dissemination Networks. In Procs. of Intl. Conf. on Data Engineering -

ICDE, pages 1400–1404.

[Ma and Schewe 2003] Ma, H. and Schewe, K.-D. (2003). Fragmentation of XML Documents. In Anais do Simpósio Brasileiro de Banco de Dados -

SBBD.

[Milano et al. 2006] Milano, D., Scannapieco, M., and Catarci, T. (2006). Structure-Aware XML Object Identification. Bulletin of the IEEE Computer

Society Technical Committee on Data Engineering, 29(2):67–76.

Profile Pruning on XML-aware Publish/Subscribe Systems. In Procs. of Intl.

Conf. on Very Large Data Bases - VLDB, pages 866–877.

[Moro et al. 2007b] Moro, M. M., Lim, L., and Chang, Y.-C. (2007b). Schema Advisor for Hybrid Relational-XML DBMS. In Procs. of ACM SIGMOD Intl.

Conf. on Management of Data, pages 959–970.

[Moro et al. 2009a] Moro, M. M., Lim, L., and Chang, Y.-C. (2009a). Challen- ges on Modeling Hybrid XML-Relational Databases. In Pardede, E., editor,

Open and Novel Issues in XML Database Applications: Future Directions and Advanced Technologies, pages 28–45. IGI Global.

[Moro et al. 2009b] Moro, M. M., Vagena, Z., and Tsotras, V. J. (2009b). Recent Advances and Challenges in XML Document Routing. In Pardede, E., editor,

Open and Novel Issues in XML Database Applications: Future Directions and Advanced Technologies, pages 136–150. IGI Global.

[Özsu and Valduriez 1999] Özsu, M. T. and Valduriez, P. (1999). Principles of

Distributed Database Systems, Second Edition. Prentice-Hall.

[Paparizos et al. 2004] Paparizos, S., Wu, Y., Lakshmanan, L., and Jagadish, H. (2004). Tree Logical Classes for Efficient Evaluation of XQuery. In Procs.

of ACM SIGMOD Intl. Conf. on Management of Data, pages 71–82.

[Pereira et al. 2006] Pereira, D., Ruberg, G., and Mattoso, M. (2006). Gera- ção Eficiente de Planos de Materialização para Documentos XML Ativos. In

Anais do Simpósio Brasileiro de Banco de Dados - SBBD, pages 236–250.

[Quin 2009] Quin, L. (2009). The Extensible Stylesheet Language Family

(XSL). http://www.w3.org/Style/XSL/.

[Rahm and Bernstein 2001] Rahm, E. and Bernstein, P. A. (2001). A Survey of Approaches to Automatic Schema Matching. VLDB Journal, 10(4):334–350. [Rahm and Bernstein 2006] Rahm, E. and Bernstein, P. A. (2006). An Online

Bibliography on Schema Evolution. SIGMOD Record, 35(4):30–31.

[Rahm et al. 2004] Rahm, E., Do, H.-H., and Maßmann, S. (2004). Matching Large XML Schemas. SIGMOD Record, 33(4):26–31.

[Roddick 1995] Roddick, J. F. (1995). A Survey of Schema Versioning Issues for Database Systems. Information and Software Technology, 37:383–393. [Ruberg and Mattoso 2008] Ruberg, G. and Mattoso, M. (2008). XCraft: Boos-

ting the Performance of Active XML Materialization. In Procs. of Intl. Conf. on

Extending Database Technology - EDBT, pages 299–310.

[Sedlar 2005] Sedlar, E. (2005). Managing Structure in Bits & Pieces: the Killer Use Case for XML. In Procs. of ACM SIGMOD Intl. Conf. on Management of

Data, pages 818–821.

[Shasha and Zhang 1997] Shasha, D. and Zhang, K. (1997). Approximate Tree Pattern Matching. In Pattern Matching Algorithms, pages 341–371. Oxford University Press.

[Vagena et al. 2007] Vagena, Z., Moro, M. M., and Tsotras, V. J. (2007). RoX- Sum: Leveraging Data Aggregation and Batch Processing for XML Routing. In Procs. of Intl. Conf. on Data Engineering - ICDE, pages 1466–1470. [Wang and Zaniolo 2003] Wang, F. and Zaniolo, C. (2003). Representing and

Querying the Evolution of Databases and their Schemas in XML. In Procs. of

Intl. Conf. on Software Engineering & Knowledge Engineering - SEKE, pages

33–38.

[Weis and Naumann 2005] Weis, M. and Naumann, F. (2005). DogmatiX

Tracks Down Duplicates in XML. In Procs. of ACM SIGMOD Intl. Conf. on

Management of Data, pages 431–442.

[Wiederhold 1992] Wiederhold, G. (1992). Mediators in the Architecture of Fu- ture Information Systems. IEEE Computer, 25(3):38–49.

[Wilde and Glushko 2008] Wilde, E. and Glushko, R. J. (2008). XML Fever.

Communications of the ACM, 51(7):40–46.

[XML-DEV Community 2002] XML-DEV Community (2002). SAX 2.0.1.

Documentos relacionados