Querying, Transformation & Real-World XML
XML in the Wild: RSS, SVG, SOAP, Sitemaps & Beyond
XML is not theoretical — it is everywhere. This lesson tours the real-world XML formats you will actually encounter: RSS feeds, SVG graphics, SOAP web services, sitemap.xml, Office Open XML, Android layouts, and configuration files.
The XML Landscape in 2026
"XML is dead" is a take that has been wrong for 15 years. JSON won the REST API wars — but XML quietly won everything else. Your resume is XML (.docx). Your browser renders XML (SVG). Your podcast app reads XML (RSS). Your search ranking depends on XML (sitemap.xml). Your enterprise authentication uses XML (SAML). Here is the tour.
RSS & Atom — Content Syndication
RSS (Really Simple Syndication) is the format that powers podcast feeds, news feeds, and blog subscriptions. Every podcast platform — Apple Podcasts, Spotify, Overcast — reads RSS.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<channel>
<title>DevForge Academy Blog</title>
<link>https://devforgeacademy.com/blog</link>
<description>Tutorials and guides for modern developers.</description>
<language>en-us</language>
<item>
<title>XML in 2026: Still Everywhere</title>
<link>https://devforgeacademy.com/blog/xml-2026</link>
<pubDate>Thu, 20 Feb 2026 10:00:00 GMT</pubDate>
<description>A tour of XML formats that power the modern web.</description>
<guid>https://devforgeacademy.com/blog/xml-2026</guid>
<itunes:duration>15:30</itunes:duration>
</item>
</channel>
</rss>Atom is the modern alternative — same concept, stricter structure, better namespace support. Used by GitHub feeds, YouTube channel feeds, and many modern publishing platforms. The root element uses the Atom namespace: <feed xmlns="http://www.w3.org/2005/Atom">.
SVG — Vector Graphics in XML
SVG (Scalable Vector Graphics) is an XML-based image format that every modern browser renders natively. Every icon set (Heroicons, Lucide, Font Awesome), data visualization library (D3.js outputs SVG), and logo file you've encountered is likely SVG.
<svg xmlns="http://www.w3.org/2000/svg"
width="200" height="200" viewBox="0 0 200 200">
<defs>
<linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#E97627"/>
<stop offset="100%" style="stop-color:#f59e0b"/>
</linearGradient>
</defs>
<circle cx="100" cy="100" r="80" fill="url(#grad)"/>
<text x="100" y="115" text-anchor="middle"
fill="white" font-size="36" font-weight="bold">XML</text>
</svg>SVG elements: <rect>, <circle>, <line>, <path> (complex shapes), <text>, <g> (group), <defs> (reusable definitions), <use> (reference), <animate> (SMIL animation).
Because SVG is XML, it can be queried with XPath, transformed with XSLT, and generated programmatically from any language that can produce XML strings.
SOAP — Enterprise Web Services
SOAP (Simple Object Access Protocol) is an XML-based messaging protocol. Largely replaced by REST/JSON for new public APIs, but still the dominant protocol in enterprise: banking, healthcare, government, SAP/Oracle integration, payment gateways.
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:auth="http://example.com/auth">
<soap:Header>
<auth:Token>eyJhbGci...</auth:Token>
</soap:Header>
<soap:Body>
<m:GetCustomer xmlns:m="http://example.com/customers">
<m:CustomerId>CUST-4521</m:CustomerId>
</m:GetCustomer>
</soap:Body>
</soap:Envelope>WSDL (Web Services Description Language) is the XML document that describes a SOAP service — its available operations, input/output message formats, and endpoint URLs. Think of it as machine-readable API documentation. Tools like SoapUI, Postman, and IntelliJ can import a WSDL and auto-generate request templates.
Why you need to know SOAP: payment gateways (some still SOAP), government APIs, healthcare (HL7), and any integration project with a Fortune 500 company built before 2010.
sitemap.xml — SEO Infrastructure
Every site that cares about search ranking has a sitemap.xml. It tells Google, Bing, and other crawlers which pages exist and metadata about each.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://devforgeacademy.com/tutorials/xml-fundamentals</loc>
<lastmod>2026-02-20</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://devforgeacademy.com/tutorials/xml-fundamentals/xpath-querying</loc>
<lastmod>2026-02-20</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>For large sites, a sitemap index references multiple sitemaps:
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>https://example.com/sitemap-tutorials.xml</loc></sitemap>
<sitemap><loc>https://example.com/sitemap-blog.xml</loc></sitemap>
</sitemapindex>Most web frameworks auto-generate sitemap.xml. Understanding the format lets you customize, debug, and extend it.
Office Open XML — .docx, .xlsx, .pptx
Modern Microsoft Office files are ZIP archives containing XML. Rename document.docx to document.zip, unzip it, and you find:
word/
document.xml ← the actual document content
styles.xml ← character and paragraph styles
settings.xml ← document settings
_rels/ ← relationship definitions
[Content_Types].xmlThe document.xml uses the Word namespace:
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:rPr><w:b/></w:rPr>
<w:t>Bold text in a Word document</w:t>
</w:r>
</w:p>
</w:body>
</w:document>Libraries like python-docx, openpyxl (xlsx), and docx.js manipulate these XML structures programmatically. Understanding the underlying XML gives you the mental model to debug issues that library abstractions obscure.
Configuration Files
XML configuration formats you will encounter in every enterprise codebase:
Maven pom.xml — Java project dependencies and build configuration:
<project xmlns="http://maven.apache.org/POM/4.0.0">
<groupId>com.example</groupId>
<artifactId>my-service</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>Android `AndroidManifest.xml` — declares the app's components, permissions, and metadata. Required in every Android project.
Android layout files — UI structure defined in XML. <LinearLayout>, <TextView>, <Button> — the complete view hierarchy.
Spring XML — legacy bean configuration. .csproj (C# project files), web.config (IIS/ASP.NET), NuGet packages.config.
XML vs. JSON — The Honest Comparison
| Factor | XML | JSON |
|---|---|---|
| REST APIs | Used but uncommon | Dominant |
| Schema validation | XSD (powerful) | JSON Schema (limited) |
| Namespaces | Yes | No |
| Mixed content (text+markup) | Yes | No |
| Document markup | Yes | No |
| JavaScript integration | Verbose | Native |
| Transformation | XSLT | No standard |
| Digital signatures | XML-DSig | No standard |
| Human readability | Verbose but clear | Concise |
| Enterprise standards | Dominant | Growing |
The pragmatic answer: most new web APIs use JSON — use it there. Most enterprise integrations, document formats, web graphics (SVG), content syndication (RSS), and web standards still use XML. A complete developer needs both.
XML is not a technology you need to love. It is one you need to recognize, read, and work with competently — because you will encounter it everywhere you are not looking.
---
This lesson connects to multiple other pillars: sitemaps connect to SEO and the Business & Strategy pillar; SVG connects to frontend development; SOAP connects to API testing in the Testing pillar; Office Open XML connects to the Excel Mastery pillar; configuration XML connects to the Environments & Security pillar.
See the [XML, XPath & XSLT Reference](/tutorials/xml-fundamentals/reference/xml-reference) for the complete syntax and namespace URI reference.
Example
<!-- sitemap.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/about</loc>
<lastmod>2026-02-20</lastmod>
<priority>0.8</priority>
</url>
</urlset>
<!-- RSS feed item -->
<item>
<title>New Tutorial: XPath Querying</title>
<link>https://example.com/blog/xpath</link>
<pubDate>Thu, 20 Feb 2026 10:00:00 GMT</pubDate>
<guid isPermaLink="true">https://example.com/blog/xpath</guid>
</item>
<!-- SVG icon (inline in HTML) -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" fill="currentColor"/>
</svg>