XML
XML (eXtensible Markup Language) is an extensible markup language for structuring and exchanging data between systems. It stores data as a hierarchy of tags (elements) with attributes. It is human-readable and strictly formalized for machine processing.
Purpose
- A universal data exchange format (for integration, documents, configurations).
- Suitable for complex hierarchies and mixing text with metadata.
- Has a rich ecosystem: XSD (schemas), DTD, XPath, XSLT, Namespaces.
Basic Concepts
- Element — A pair of tags with content: <title>Book</title>.
- Attribute — An additional property of an element: <price currency=”RUB”>990</price>.
- Root Element — The single top-level container of the document.
- Namespace — A prefix for distinguishing identically named tags:
<xhtml:div xmlns:xhtml=”http://www.w3.org/1999/xhtml”>…</xhtml:div>. - Well-formed — The document is syntactically correct (closed tags, one root, correct quotation marks).
- Valid — The document conforms to a schema (XSD/DTD), i.e., the structure and data types.
XML Example
xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<order id=”A-1024″ date=”2025-11-04″>
<customer>
<name>Irina Petrova</name>
<email>irina@example.com</email>
</customer>
<items>
<item sku=”BK-001″ qty=”2″>
<title>Advanced SEO</title>
<price currency=”RUB”>990</price>
</item>
<item sku=”BK-002″ qty=”1″>
<title>Web Analytics</title>
<price currency=”RUB”>1290</price>
</item>
</items>
<total currency=”RUB”>3270</total>
</order>
Where It’s Used
Sitemap.xml, RSS/Atom, configurations (e.g., web.config), documents (DOCX, XLSX contain XML packages), SOAP/enterprise system integration, GIS/geodata (GML), graphs (GraphML), validation of complex formats via XSD.
Pros and Cons
Pros:
- Self-descriptive and extensible.
- Strict validation via schemas.
- Powerful query and transformation tools (XPath, XSLT).
Cons:
- Verbosity (more “weight” than JSON).
- Parsing and serialization are typically heavier.
XML vs. JSON (Briefly)
- JSON is more compact and convenient for web APIs, especially with JavaScript.
- XML is preferable when formal schemas, namespaces, complex types, and transformations are needed.
Best Practices
- Explicitly specify the encoding: <?xml version=”1.0″ encoding=”UTF-8″?>.
- Use XSD for validation and as contracts between systems.
- Introduce namespaces when integrating multiple tag vocabularies.
- Try to store data as content, and metadata as attributes, without mixing their roles.
- Keep the structure stable; coordinate changes through schema versioning.
Free in the Telegram bot 