XML, XSLT, Java, and JSP: A Case Study in Developing a Web Application- P10

Chia sẻ: Thanh Cong | Ngày: | Loại File: PDF | Số trang:50

lượt xem

XML, XSLT, Java, and JSP: A Case Study in Developing a Web Application- P10

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

XML, XSLT, Java, and JSP: A Case Study in Developing a Web Application- P10: Là một nhà phát triển Web, bạn biết những thách thức trong việc xây dựng các ứng dụng mạnh mẽ trên nhiều nền tảng. Tạo các ứng dụng di động trở nên thật sự có thể bằng cách sử dụng Java cho code và XML để tổ chức và quản lý dữ liệu. "XML, XSLT, Java, và JSP: Một trường hợp học" sẽ giúp bạn tối đa hóa khả năng của XML, XSLT, Java, và JSP trong các ứng dụng web của bạn....

Chủ đề:

Nội dung Text: XML, XSLT, Java, and JSP: A Case Study in Developing a Web Application- P10

  1. 432 Chapter 11 XML Data Storage Class: ForestHashtable wally::Hey! I’m here charlie. Are you there? 965506098557.965501551999.965501551959 965503142126.965501552059.965501551959 965503119944.965501551999.965501551959 11.12.1 Chat Data in the XML Data Example At the time the bonForum data was dumped to an XML file, two chats had been started.The nicknames and ages of the two chat hosts are stored inside host elements as children of the actors element. Only one guest has joined a chat, and that guest’s nickname and age are stored in a guest element also as a child of the actors element. Adam is the host of a topic with the subject Vehicles.Trucks.Other and the topic “my other truck is a ferrari.” Adam is still awaiting his first guest, and only his own single message appears in the chat. It could be displayed as follows: [Saturday 05 09:08:09 2000] adam::this is dynamite! Charlie is the host of a chat with the subject Animals.Fish.Piranhas and the topic “pet piranha stories.” Charlie and his guest,Wally, have each entered one message to the chat, which could be displayed as follows: [Saturday 05 09:19:02 2000] charlie::Is anybody there? [Saturday 05 10:09:35 2000] wally::I’m here, charlie. 11.13 More ForestHashtable Considerations In this last part of this chapter, we will mention a few final things that are important to the understanding and future development of the ForestHashtable class. 11.13.1 Some Important Data Characteristics In the example of bonForum XML data content at runtime shown previously, you can notice the following two characteristics of the way the chat data is kept in the ForestHashtable:
  2. 11.13 More ForestHashtable Considerations 433 1. The objects stored in a Hashtable have no order.Therefore, the order of sibling elements in the XML document has no meaning. For human readability, if that is needed, some XML elements could be sorted by modifying the XSLT style sheet. Sorting could also be implemented by changing the underlying data struc- ture to a SortedMap implementer, such as TreeMap, or by keeping an external sorted index in the manner of an RDB. 2. The NodeKey values are referred to by other key attributes, to relate the informa- tion in different elements together. For example, a chat element has a hostKey child that contains the value of the chat’s host’s NodeKey.That is why we pre- serve the NodeKey values in NodeKey” attributes within each element when the XML is output from the ForestHashtable. 11.13.2 Setting ForestHashtable Capacity By reading the API documentation on the java.util.Hashtable class, you can learn about the issue of the capacity of a Hashtable object.The only way we have dealt with this so far is to provide a constructor for the class that takes an argument called capacity, which (surprise!) sets the capacity of a ForestHashtable. The idea is that this capacity setting can be determined by the Web application, perhaps by having it saved as a parameter in the Web app deployment descriptor (web.xml) of the application. For the bonForum Web chat application example, we set the capacity to 5000.This number was selected by estimating 200 bytes per node. More testing is necessary to tune this factor, which is very important for the experi- ence of using the Web application. Setting the capacity correctly can minimize the inevitable rehashing time. 11.13.3 XPATH Modeling Planned One premise behind the design of ForestHashtable is that is could be easier or faster to manipulate a triple-valued key than to work with the (infinitely) long path expres- sions that can be present in an XML data document.The hierarchy of nodes can be modeled as a forest of trees by a table with a double- or triple-valued key. A plan for the future is to see if we can create methods that fulfill all the XPATH functionality solely by processing the keys in the table. 11.13.4 Self-Healing XML Documents Another idea of ours is to create an XML document representation that would create, by default, any “missing” set of nodes.These nodes that would be supplied form a node path connection between a “disconnected” XML fragment and the “closest” existing related node. Why do that? Because that means you can put a tree-fragment into empty space in the forest.Then you could either tell or ask the forest to “decide” which tree the frag-
  3. 434 Chapter 11 XML Data Storage Class: ForestHashtable ment belongs in.This would cause the forest to “grow” any necessary branches to con- nect the fragment with the tree, thus creating one new tree that can be expressed as a valid XML document. Two practical outcomes appear here. First, if the keys for the forest are globally unique identifiers, you can throw together two or more forests of data, and they will still function as a forest (that is, the keys will not clash).That would be great for mix- ing data from laptops and servers, for example. Second, the self-sticking tree fragment addition to the forest means that relations among combined data sets can be “patched” by using default values, which preserves displayability and processability, in many cases. It might even keep your browser from choking! 11.13.5 Improvement of Algorithms Much of the code in this class, as in the bonForum project in general, is intentionally written in a “dumb” style, leaving much room for optimization. Rather than trying to get too smart and doing many things in one statement, we think that it is easier to debug code that is spread out over smaller steps. Our motto is, “First get it working, and then get it working right!” moveNode() Further optimization will include addition of new methods. One candidate, for exam- ple, is a moveNode() method that would have the following signature: moveNode(NodeKey KeyOfNodeToMove, NodeKey KeyOfNewParentNode, Boolean IfLeafOnly); The moveNode() method would also have a leafOnly argument, as the deleteNode() method does. If IfLeafOnly is true, then the node would not be moved if it has one or more child nodes. If IfLeafOnly is false, then the node and all its descendants would be moved. Another argument called NewParentNode would tell the method the destination to which it should move a node. If the NewParentNode is null, then the NodeToMove would be made a root node in the forest. 11.13.6 Enforcing Uniqueness Among Nodes In the method of ForestHashtable, uniqueness is enforced for addNode() nodeNameHashtable entries.When we remove an “old” cached NodeKey from the nodeNameHashtable, we cannot simultaneously remove the node in the ForestHashtable because it may be in use in other thread. However, we need to enforce unique sibling names in some situations—for exam- ple within descendant levels of the Subjects subtree in the bonForum Web chat appli- cation XML data. Also, at least in that application of the ForestHashtable, we would like to somehow enforce unique chatTopic values and nickName values by using a mechanism intrinsic to the ForestHashtable.This is left as a task for a future time.
  4. 11.13 More ForestHashtable Considerations 435 11.13.7 Usability of the ForestHashtable Class Without having tested the ForestHashtable experimental class sufficiently, it is not yet possible to characterize its runtime performance versus the quantity of data and thread loading. Certainly, processing will slow down at some point, but that depends on many factors, including the hardware on which it is running. ForestHashtable Is a Design Laboratory The ForestHashtable class is primarily a design laboratory.We will be implementing some of the ideas tried out there in a relational database system.You are invited to bring your comments and participation to http://www.bonforum.org, our open source site for the bonForum project on SourceForge.
  5. 12 Online Information Sources T HESE INTERNET LINKS ARE MOSTLY to XML, XSLT, Java servlet, and JSP informa- tion. Some cover what was left out of this book, intentionally or otherwise. Some link to topics that were discussed in this book.To keep current with all these technologies, you might want to subscribe to some mailing list groups and search and surf the Web frequently.This list does not pretend to be complete or fair—it simply offers some starting points on the Internet. It also is available on the CD-ROM accompanying this book and online at www.bonForum.org, where you can click on the links. Our apolo- gies go out to all the developers who have been ignored—we promise that it was not done intentionally! 12.1 Always Useful Sites Web site for the bonForum Web application project http://www.bonForum.org A fun and smart way to search the Web http://www.links2go.com/ A huge number of Java links from Cetus Links http://www.cetus-links.org/oo_java.html XML-based information retrieval http://www.goxml.com
  6. 438 Chapter 12 Online Information Sources A great multilingual text editor http://www.textpad.com The World Wide Web Consortium http://www.w3c.org/ W3C recommendations http://www.w3.org/TR/#Recommendations Internet Engineering Task Force http://www.ietf.org/ Mailing lists and archives http://archives.java.sun.com/cgi-bin/wa http://archives.java.sun.com/archives/index.html Sun Java Forums http://forum.java.sun.com/ 12.2 Apache Software Foundation Apache Software Foundation http://www.apache.org/ Apache Conference http://apachecon.com/ Apache mailing lists http://xml.apache.org/mail.html http://jakarta.apache.org/getinvolved/mail.html News about Apache http://slashdot.org/index.pl?section=apache 12.3 Big Corporations IBM http://www.ibm.com IBM Alphaworks http://www.alphaworks.ibm.com/ IBM DeveloperWorks http://www.ibm.com/developer/ Microsoft http://www.microsoft.com/ MSDN http://msdn.microsoft.com/ Sun Microsystems http://www.sun.com
  7. 12.7 HTTP 439 Sun Developers http://www.sun.com/developers/ 12.4 CSS Cascading Style Sheets information http://www.w3.org/TR/REC-CSS2/ CSS and XSL overview http://www.w3.org/Style/Activity 12.5 DOM Information Recommendations http://www.w3.org/TR/#Recommendations DOM Scripting WebRing http://nav.webring.org/hub?ring=domscript;list XML via the Document Object Model http://wdvl.com/Authoring/Languages/XML/DOM/Intro/ 12.6 HTML Recommendations http://www.w3.org/TR/html401/ http://www.w3.org/TR/REC-html32 HTML reformulated as XML http://www.w3.org/TR/xhtml1/ Web Developers Library links for HTML http://wdvl.com/Authoring/HTML/ The HTML Guide http://www.webfrontier.org/html/index.html 12.7 HTTP Description of HTTP http://www.ietf.org/rfc/rfc2068.txt
  8. 440 Chapter 12 Online Information Sources 12.8 Java 12.8.1 Java: Compilers and SDKs Java 2 SDK, Standard Edition, download http://java.sun.com/j2se/1.3/download-windows.html 12.8.2 Java: Books, Articles, and Magazines Thinking in Java, free downloadable book http://www.bruceeckel.com/TIJ2/index.html Java Developer’s Journal http://www.sys-con.com/java/newjava.cfm JBuilder Developer’s Journal http://www.sys-con.com/jbuilder/index.html The Swing Connection http://java.sun.com/products/jfc/tsc/articles/index.html 12.8.3 Java: Information Sun BluePrints design guidelines for J2EE http://java.sun.com/j2ee/blueprints/ Enterprise JavaBeans technology http://java.sun.com/features/1999/12/ejb.html Information on setting the class path http://java.sun.com/products/jdk/1.2/docs/tooldocs/win32/classpath.html About three-tier distributed architecture at Java Report Online http://www.javareport.com/html/features/archive/9804/reese.shtml Tomcat servlet and JSP development with VisualAge for Java http://www7.software.ibm.com/vad.nsf/data/document2389?OpenDocument Java extensions FAQ http://java.sun.com/products/jdk/1.2/docs/guide/extensions/ext_faq.html Bridging Java and Active X with Java plug-in scripting http://java.sun.com/products/plugin/1.2/docs/script.html 12.8.4 Java: Language The Java Language Specification: Gosling http://java.sun.com/docs/books/jls/html/index.html http://java.sun.com/docs/books/jls/html/1.1Update.html
  9. 12.9 JavaServer Pages 441 Code conventions for the Java Programming Language contents http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 12.8.5 Java: Resources Bruce Eckel’s MindView, Inc., OOP resources http://www.bruceeckel.com/ Java programming resources at Gamelan.com http://www.gamelan.com/ 12.8.6 Java: Tools JavaBeans and BDK1.1 http://java.sun.com/products/javabeans/ Forte for Java, free Community Edition http://www.sun.com/forte/ffj/ce/ ElixirIDE http://elixirtech.com Java Beanshell: interactive Java shell http://www.beanshell.org JPython http://www.jpython.org/ IBM alphaWorks Bean Scripting Framework http://www.alphaworks.ibm.com/tech/bsf Java for Linux http://blackdown.org/ 12.8.7 Java: Tutorials The Java Tutorial http://java.sun.com/docs/books/tutorial/index.html 12.9 JavaServer Pages 12.9.1 JSP: Main Web Site JavaServer Pages technology http://java.sun.com/products/jsp/
  10. 442 Chapter 12 Online Information Sources 12.9.2 JSP: Specifications JavaServer Pages (JSP) Specfication,Version 1.1 http://java.sun.com/products/jsp/download.html 12.9.3 JSP: Books JavaServer Pages book http://www.browsebooks.com/Fields/ Group writing a JSP book online http://www.esperanto.org.nz/jspbook http://www.aptura.com/technology/jspBook_Architectures.html 12.9.4 JSP: Companies Information about commercial products supporting JSP http://java.sun.com/products/jsp/industry.html tarent GmbH http://www.tarent.de 12.9.5 JSP: FAQ Sun JSP FAQ http://java.sun.com/products/jsp/faq.html Good FAQ for JSP, maintained by Richard Vowles http://www.esperanto.org.nz/jsp/jspfaq.html 12.9.6 JSP: Hosting Free server space on the Internet, including Java servlet and JSP support http://www.mycgiserver.com 12.9.7 JSP: Information JSP syntax cards, tutorials, a technical FAQ, and various presentations http://java.sun.com/products/jsp/technical.html JavaServer Pages technology: white paper http://java.sun.com/products/jsp/whitepaper.html Chat about JavaServer Pages http://developer.java.sun.com/developer/community/chat/JavaLive/2000/ jl0222.html
  11. 12.10 Java Servlets 443 JSP versus ASP http://java.sun.com/products/jsp/jsp-asp.html Introduction to JavaServer Pages http://www.builder.com/Programming/JSP/ 12.9.8 JSP: Taglibs Example http://www.orionserver.com/examples/jsp/taglib/loop/index.html 12.9.9 JSP: Tutorials JavaServer Pages tutorial http://java.sun.com/products/jsp/docs.html Servlet and JSP short courses http://courses.coreservlets.com/Servlet-Courses.html Basic JSP tutorial http://java.sun.com/products/jsp/pdf/talks/WebLayer.pdf IBM tutorial on JSP http://www.software.ibm.com/developer/education/java/online-courses.html 12.10 Java Servlets 12.10.1 Servlets: Main Web Site Servlet Web site at Sun http://java.sun.com/products/servlet/ 12.10.2 Servlets: Specifications Servlet implementations and specifications http://java.sun.com/products/servlet/download.html Servlet API Javadoc online http://java.sun.com/products/servlet/2.2/javadoc/index.html 12.10.3 Servlets: Books, Articles, and Magazines Server-side Java magazine online http://www.servletcentral.com
  12. 444 Chapter 12 Online Information Sources 12.10.4 Servlets: Companies JRun developer Web Site http://www.allaire.com/developer/jrunreferencedesk/ tarent GmbH http://www.tarent.de 12.10.5 Servlets: Hosting Free server space on the Internet, including Java servlet and JSP support http://www.mycgiserver.com Servlet hosting http://www.wantjava.com/ http://www.coolservlets.com/hosts.html http://www.servlets.net/index.html 12.10.6 Servlets: Information Good overview of servlets http://java.sun.com/docs/books/tutorial/servlets/overview/index.html Information about servlets http://www.javasoft.com/products/servlet/index.html 12.10.7 Servlets: Mailing Lists Archives of SERVLET-INTEREST@JAVA.SUN.COM http://archives.java.sun.com/archives/servlet-interest.html 12.10.8 Servlets: Resources Jason Hunter’s Web site http://www.servlets.com Free, open source Java servlets http://www.coolservlets.com Servlets Taverne, with links to information in French http://www.interpasnet.com/JSS/textes/xml.htm Information on XML, Java, JDBC, and servlets by Nazmul Idris http://developerlife.com/
  13. 12.12 Open Source 445 12.10.9 Servlets: Tutorials Servlets tutorial http://java.sun.com/docs/books/tutorial/servlets/ 12.11 Linux Linux Open Source Magazine http://www.linux.com/ Java Programming on Linux, the book http://www.javalinux.net/ 12.12 Open Source Online book: Open Sources:Voices from the Open Source Revolution http://www.oreilly.com/catalog/opensources/book/toc.html Eric S. Raymond’s The Cathedral and the Bazaar http://www.tuxedo.org/~esr/writings/cathedral-bazaar/ SourceXchange http://www.sourcexchange.com/ The Open Source Page http://www.opensource.org/ The Techie-Hacker’s Case for Open Source http://www.opensource.org/for-hackers.html#marketing Ask Tim at O’Reilly http://www.oreilly.com/ask_tim/index.html ExoLab.org Open Source & Enterprise Java http://www.exolab.org/ Free support for Open Source projects http://sourceforge.net/docs/site/services.php Licensing Open Source Software: Jason Hunter’s license http://www.servlets.com/resources/com.oreilly.servlet/license.html ClueTrain Manifesto http://www.cluetrain.com Mozilla http://www.mozilla.org/ Open source version control software http://www.sourcegear.com/CVS Open XML http://www.openxml.org/
  14. 446 Chapter 12 Online Information Sources Open Source Enhydra Java-XML Application Server Home http://www.enhydra.org/ Free XML software http://www.garshol.priv.no/download/xmltools/ 12.13 RDF Resource description framework http://www.w3.org/TR/REC-rdf-syntax/ 12.14 Web Applications Open Source Enhydra Java-XML Application Server Home http://www.enhydra.org/ IBM white paper, “The Web Application Programming Model” http://www.software.ibm.com/ebusiness/pm.html XML:The Key to E-Business http://www.washingtontechnology.com/news/14_10/tech_features/723-5.html IBM white papers http://www3.ibm.com/e-business/ 12.15 Web Browsers Microsoft Internet Explorer 5.5 http://www.microsoft.com/downloads/ MSDN Online Voices: Extreme XML http://msdn.microsoft.com/voices/xml.asp Information about IE5.5 XML http://xmlhack.com/read.php?item=402 http://xmlhack.com/read.php?item=806 Mozilla (open source Netscape Web browser) http://www.mozilla.org/ 12.16 Web Servers Apache Server http://www.apache.org/httpd.html Jigsaw Web Server (W3C) http://www.w3.org/Jigsaw/ http://www.w3.org/Jigsaw/User/Introduction/wp.html
  15. 12.17 XML 447 Jakarta Tomcat main Web site http://jakarta.apache.org/ FAQ index for Tomcat http://jakarta.apache.org/faq/faqindex.html Latest Tomcat Users Guide http://jakarta.apache.org/cvsweb/index.cgi/jakarta-tomcat/src/doc/ tomcat-ug.html 12.17 XML 12.17.1 XML: Specs and Recommendations W3C recommendation http://www.w3.org/TR/REC-xml XML.com:The Annotated XML Specification http://www.xml.com/xml/pub/axml/axmlintro.html Specifications of all XML-related technologies http://java.sun.com/xml/docs/tutorial/overview/2_specs.html 12.17.2 XML: Articles, Books, and Magazines XML Developer’s Journal http://www.sys-con.com/xml/index2.html XML Books: Mastering XML from Sybex http://www.extensibility.com/xml_resources/XML_books_mastering.htm Writings of Benoit Marchal http://www.pineapplesoft.com/site/focus/writings.html Articles by Jon Bosak http://www.ibiblio.org/bosak/ XML Developers Conference proceedings http://metalab.unc.edu/bosak/conf/xmldev99/tauber/tauber.pdf An Introduction to XML for Java Programmers http://www.xmlmag.com/upload/free/features/xml/1999/01win99/pmwin99/ pmwin99.asp Fatbrain.com: books about XML http://www.fatbrain.com/
  16. 448 Chapter 12 Online Information Sources 12.17.3 XML: Companies Bluestone Software, Inc. http://www.bluestone.com tarent GmbH http://www.tarent.de 12.17.4 XML: Editors and Tools Links and information for many XML editors http://www.xmlsoftware.com/editors/ Free XML software http://www.garshol.priv.no/download/xmltools/ XMLwriter http://xmlwriter.net/ XMetal http://www.softquad.com/ XML Spy http://www.icon-is.com/ Xeena and visual XML tools from IBM http://www.alphaworks.ibm.com/tech/ Visual XML http://www.pierlou.com/visxml/index.html 12.17.5 XML: Examples All Shakespeare works in XML http://metalab.unc.edu/ An XML-based project for instant messaging http://jabber.org/ XMLBinder and XSLServlet projects http://downloads.dyomedea.com/java/examples/ 12.17.6 XML: Information Anything related to XML http://tecfa.unige.ch/guides/xml/pointers.html XML Global http://www.xmlglobal.com XML Search Engine People http://www.goxml.com
  17. 12.17 XML 449 Cafe con Leche XML news and resources http://metalab.unc.edu/xml/ Extensible Markup Language (XML) http://www.oasis-open.org/cover/xml.html Chinese XML Now (English home page) http://www.ascc.net/xml/en/utf-8/index.html MSDN Online XML Developer Center http://msdn.microsoft.com/xml/default.asp XMLHack: great way to keep current on XML http://xmlhack.com Pineapplesoft Online Java, XML from Belgium (Benoit Marchal) http://www.pineapplesoft.com/ IBM developerWorks XML Standards: Describing Data http://www2.software.ibm.com/developer/standards.nsf/xml-describing-byname XML APIs for databases http://developer.java.sun.com/developer/technicalArticles/xml/api/ Activity in the XML world http://www.xml.org/xmlorg_catalog.htm XML in Spanish http://www.ramon.org XML, Java, JDBC, and servlets information http://developerlife.com/ 12.17.7 XML: Mailing Lists Apache XML Project mailing lists http://xml.apache.org/mail.html XML-DEV for XML developers around the world:To subscribe to this list, send an email message to majordomo@ic.ac.uk with “subscribe xml-dev your@email.address” in the body. XML-DEV archive http://www.lists.ic.ac.uk/hypermail/xml-dev/ The xmlhack Daily News Digest http://xmlhack.com/ 12.17.8 XML: Microsoft XML-related product downloads http://msdn.microsoft.com/downloads/
  18. 450 Chapter 12 Online Information Sources Information about MSXML http://xmlhack.com/read.php?item=806 An XML manifesto http://msdn.microsoft.com/workshop/xml/articles/xmlmanifesto.asp MSDN Online XML Developer Center http://msdn.microsoft.com/xml/default.asp XML Magazine http://www.xmlmag.com/ 12.17.9 XML: Namespaces W3C recommendation http://www.w3.org/TR/REC-xml-names/ 12.17.10 XML: Organizations Oasis XML and SGML organization http://www.oasis-open.org XML.ORG:The XML Industry Portal, hosted by OASIS http://www.xml.org/ Biztalk.org http://www.biztalk.org/ 12.17.11 XML: Parsers Apache XML Project http://xml.apache.org/ Open XML http://www.openxml.org/ XML Parser for Java, another alphaWorks technology http://www.alphaworks.ibm.com/tech/xml4j XP http://www.jclark.com/xml/xp/index.html Expat http://www.jclark.com/xml/expat.html Python XML parser http://www.python.org/topics/xml/ TclXML http://www.zveno.com/zm.cgi/in-tclxml/ Fxp, a parser written in SML http://www.informatik.uni-trier.de/~aberlea/Fxp/
  19. 12.17 XML 451 12.17.12 XML: SAX API Megginson Technologies, Ltd. http://www.megginson.com/ SAX:The simple API for XML http://www.megginson.com/SAX/Java/index.html 12.17.13 XML: SVG W3C Scalable Vector Graphics (SVG) http://www.w3.org/Graphics/SVG/ The SVG viewer applet demos http://sis.cmis.csiro.au/svg/demo.html 12.17.14 XML: Tutorials Very complete XML tutorial, based on JAXP http://java.sun.com/xml/docs/tutorial/index.html Tutorial on XML and Java http://www.developer.com Zvon tutorials http://zvon.vscht.cz/ZvonHTML/Zvon/zvonTutorials_en.html IBM developerWorks XML Education: online courses http://www-4.ibm.com/software/developer/education/transforming-xml/ transforming-xml-to-html/index.html Introduction to XML http://www-4.ibm.com/software/developer/education/xmlintro/ XML and Java http://www-4.ibm.com/software/developer/education/xmljava/ XML for Linux http://www-4.ibm.com/software/developer/library/xml-for-linux1.html The Foundation XML, XSL, X-Link http://www.webreference.com/xml/column2/ Good online XML guide slanted toward Microsoft version of XML http://xmlwriter.net/xml_guide/ 12.17.15 XML: XHTML HTML reformulated as XML http://www.w3.org/TR/xhtml1/
Đồng bộ tài khoản