This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
From a systems engineering point of view, the correct answer is "those technologies which you require." If you don't have a stated need for any of them, however, start at the beginning. In that case, once you've got the terms down (entities, elements, attributes, well-formed, valid, etc.), learning about SAX and DOM is a good starting point. Next I'd learn what there is to know about DTD's and how to make one. After that, XSLT. From there, any direction that tickles your fancy will work.
Make visible what, without you, might perhaps never have been seen. - Robert Bresson
As Michael said it really depends on what your requirements are. DOM and SAX are two "basic" APIs, and DOM even enjoys W3C standard status. There are other APIs that were designed to simplify XML processing, such as JDOM, or JAXB - maybe they will suffice and you do not need to learn "heavy-weight" DOM and SAX XSLT has nothing to do with Java, so if you are only interested in learning programming APIs, you can skip it. But it's very cool tool for XML transformations and quering; and it's usage overlaps with DOM/SAX, so perhaps again you get a chance not to learn them Or it can be a good supplement to your Java programs; it allows externalize presentation and even processing logic, so if any of these changes, you do not need to recompile your Java code. CSS is client-side presentation technology, and as such is of little interest for programmers. If you are interested in learning "Java and XML" in general, without any momentary task in mind, there are lots of articles that will give you an idea what each technology is good for. Then you can choose which you are interested most. Sun has good overview of Java APIs: http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/overview/3_apis.html Javaworld has good Java and XML section. Some of their articles: Easy Java/XML integration with JDOM Use XML data binding to do your laundry (generating Java classes based on DTD and Schema with JAXB and Castor) XML document processing in Java using XPath and XSLT [ February 05, 2002: Message edited by: Mapraputa Is ]