Skip to content

StanimirIglev/awesome-xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome XML Awesome

A curated list of the best tools, libraries, tutorials, and more for all things XML-related.

Contents

The XML Family (in a nutshell)

A list of W3C standards closely related to XML.

↥ back to top ↥

Drafts and Community Advances

A collection of actively developed drafts and community-driven XML-related projects.

↥ back to top ↥

Processing Libraries

Legend for Use Case Tags

Tag Description
DOM Libraries that support building or navigating XML trees via the Document Object Model.
SAX Libraries that use event-driven parsing, emitting parsing events (start tag, end tag, etc.) instead of building an in-memory tree.
Validation Support for XML schema validation (DTD, XSD, Relax NG, etc.).
XPath Libraries that support querying XML documents using XPath expressions.
XSLT Libraries with support for XML transformation using XSLT stylesheets.
Serialization Libraries that convert between native data structures and XML (marshal/unmarshal).

💡 Use these tags to quickly identify what capabilities each library provides. 💡

Libraries

Library Name Language Use Cases Notes
libxml2 C DOM, SAX, Validation, XPath, XSLT Comprehensive XML toolkit with support for various standards.
expat C SAX Stream-oriented parser suitable for event-driven applications.
libxml++ C++ DOM, SAX, Validation, XPath, XSLT C++ wrapper for libxml2 providing an object-oriented API.
pugixml C++ DOM, XPath Lightweight and fast XML parser with XPath support.
TinyXML C++ DOM Simple and small XML parser for C++ applications.
RapidXML C++ DOM High-performance XML parser with in-situ parsing capabilities.
Xerces-C++ C++ DOM, SAX, Validation Full-featured XML parser with support for various XML standards.
System.Xml C# DOM, SAX, Validation, XPath, XSLT, Serialization .NET's comprehensive XML processing library.
Dart XML Dart DOM Lightweight library for parsing and building XML documents.
encoding/xml Go Serialization Standard library for encoding and decoding XML.
xml-conduit Haskell DOM, Streaming Provides parsing and rendering functions for XML with streaming support.
Haskell XML Toolbox Haskell DOM, Validation, XPath Collection of tools for processing XML with Haskell.
JAXP Java DOM, SAX, Validation, XPath, XSLT Java API for XML Processing supporting various standards.
dom4j Java DOM, XPath Flexible XML framework for Java applications.
JDOM Java DOM Java-based document object model for XML that is easy to use.
VTD-XML Java DOM, XPath High-performance XML parser with non-extractive parsing.
Xerces2-J Java DOM, SAX, Validation Java version of Xerces with comprehensive XML support.
DOMParser JavaScript DOM Built-in browser API for parsing XML documents.
xml-js JavaScript DOM Converts XML text to JavaScript objects and vice versa.
xml2js JavaScript DOM Simple XML to JavaScript object converter.
fast-xml-parser JavaScript DOM Fast and lightweight XML parser for JavaScript.
XmlUtil Kotlin DOM Utility functions for XML processing in Kotlin.
XML::Parser Perl SAX Perl module for parsing XML documents.
XML::LibXML Perl DOM, XPath, Validation Interface to the libxml2 library for Perl.
XML::Simple Perl DOM Simple API for reading and writing XML.
SimpleXML PHP DOM Provides a simple way to access XML elements.
xml.etree.ElementTree Python DOM Lightweight XML parser and tree builder.
lxml Python DOM, XPath, XSLT, Validation Powerful and feature-rich XML processing library.
xml.dom.minidom Python DOM Minimal implementation of the Document Object Model interface.
NokoGiri Ruby DOM, XPath, XSLT HTML, XML, SAX, and Reader parser with XPath and CSS selector support.
REXML Ruby DOM Pure Ruby XML processor conforming to the XML 1.0 specification.
xml-rs Rust SAX Event-based XML parser for Rust.
quick-xml Rust SAX Fast and low-level XML reader and writer.
scala-xml Scala DOM XML processing library for Scala.
SWXMLHash Swift DOM Simple XML parser for Swift.
AEXML Swift DOM Lightweight XML parser for iOS and macOS.

↥ back to top ↥

Command-Line Tools

A collection of command-line tools for XML processing.

  • xmllint - a multifaceted XML tool that comes with libxml2.
  • xmlstarlet - a set of utilities for querying, editing, validating, and transforming XML documents.
  • xq - beautifier and content extractor.
  • dasel - query and modify data structures using standart selector strings. Supports XML among others.
  • graphtage - semantically compare and merge tree-like structures.
  • HTML-XML-utils - a collection of utilities for XML/HTML manipulation.
  • Saxon - XML processor supporting XSLT 3.0, XQuery 3.1, XPath 3.1, and XSD 1.1. (Note: only the HE version is free.)
  • tidy (libtidy) - correct and clean-up HTML and XML documents.
  • xsltproc (libxslt) - XSLT processor for the application of stylesheets to XML documents.

↥ back to top ↥

Online Tools

A small excerpt of the many online tools for XML processing.

↥ back to top ↥

Validation

Schema Languages

↥ back to top ↥

Native XML Databases

A list of XML databases that store and query XML data natively.

↥ back to top ↥

XML-based Formats/Languages

A curated list of popular formats and languages that use the XML syntax (often defined via a schema). A more extensive, but less curated list can be found here.

❗ The goal for this section is to have a list of established formats with links to resources, such as specifications, schemas, and tutorials. Feel free to contribute! ❗

↥ back to top ↥

Community

Websites/Forums

  • XML.com - a site for XML resources, tutorials, and news.
  • XML.org - a community-driven site for XML resources.
  • r/xml - a subreddit for XML discussions.
  • XML @ Stack Overflow - XML-related discussions on Stack Overflow.

Conferences

  • XML Prague - an annual conference on markup languages and data on the web.
  • Balisage - an annual conference devoted to descriptive markup
  • Markup UK - a conference about XML and other markup technologies
  • Declarative Amsterdam - a conference on the technologies and methods used for declarative programming and data
  • XML Summer School - a week-long event comprised of courses for XML and related technologies

Blogs

Mailing Lists

  • XSL-List - mailing list for XSLT questions and applications.
  • Schematron - mailing list for Schematron discussions.
  • XML-DEV - active mailing list on XML.org.

Articles

↥ back to top ↥

Tutorials

A list of tutorials that provide a good introduction to the XML ecosystem.

↥ back to top ↥

Books

Note that many of these books are available online for free - a quick Google search should suffice. 😉

↥ back to top ↥

Visual Studio Code Extensions

↥ back to top ↥

Editors (validating)

These are standalone XML editors with the inherent capability to validate XML against a DTD or schema. Browser-based XML editors (such as under Browser Extensions) and general text editors like Notepad++ and Vim are not included.

Free

Commercial, but with a free for personal use version

Commercial

↥ back to top ↥

Browser Extensions

Mozilla Firefox

Google Chrome

↥ back to top ↥

Contribute

Contributions are welcome! Read the contribution guidelines first.

Releases

No releases published

Packages

No packages published

Contributors 5