XML Tutorial · XML in the Real World · Lesson 28 of 28
XML Next Steps
Where to go after this tutorial: practice ideas, the XML in Production course, interview questions, and official references.
You've learned
- XML syntax, well-formedness, escaping, encodings and namespaces.
- Validation with DTD, XML Schema, RELAX NG and Schematron.
- Querying and transforming with XPath, XSLT and XQuery.
- Parsing and writing XML in Python, PHP, Java and JavaScript, streaming large files, and blocking XXE attacks.
- Real-world formats: SOAP, RSS and Atom, sitemaps, SVG, Office files and configuration.
Practice ideas
- Write an XSD for an order format, then a Schematron rule that checks the total.
- Stream a large public XML dump (for example a Wikipedia export) and count elements in constant memory.
- Turn an RSS feed into an HTML page with XSLT.
- Audit a project you know: find every XML parser call and check it's configured against XXE.
Keep going on ReadyCamel
- The XML in Production course walks through real incidents: namespace bugs, encoding corruption, memory blow-ups, XXE, schema drift and signature pitfalls.
- XML interview questions and the XML quiz.
- Related tutorials: Python, PHP, Java and JavaScript.
References
- XML 1.0 specification and Namespaces in XML
- lxml documentation and Python's xml.etree.ElementTree
- PHP: DOM and SimpleXML
- Java API for XML Processing (JAXP)
- MDN: DOMParser and XSLTProcessor
- Saxon for XSLT 3.0, XPath 3.1 and XQuery 3.1
Test yourself
Which tool would you use to run XSLT 3.0?
SaxonThe browser's XSLTProcessorlibxsltSimpleXML
Show answer
Answer: Saxon
Browsers, libxslt and the JDK implement XSLT 1.0; Saxon implements 2.0 and 3.0.