XML (Extensible Markup Language) is a simple text-based format, simultaneously human and machine-readable, which is used to create custom markup languages and share structured information. The language derives from an older standard format called SGML (ISO 8879) and it was created in order to be more suitable for Web use.
Defined by the W3C's XML 1.0 specification and by other free open standard related specifications, XML's design goals target simplicity, generality and usability. It has been used for a large number of custom-designed languages, some of which have become widely used on the Internet (RSS, Atom, XHTML). Although XML has its focus on documents, it is often used in web services for representation of arbitrary data structures.
- XML is readable by both humans and machines
- It has a good Unicode support for different human languages
- The language is platform-independent and is not affected by changes in technology
- XML is scalable, as it can be used to represent both small and large amounts of data, online and offline
- It can process most general data structures, such as: records, lists and trees
- It allows validations using schema languages, such as: Schematron, XSD
- XML uses plain text files, making it less restrictive than other document formats
- XML is redundant, and it may affect the efficiency of the application due to higher storage transmission and processing costs
- The hierarchical model for representation has limitations in comparison to the relational models or object oriented graphs
- Overlapping (non-hierarchical) node relationships are harder to express
- It is difficult to fully implement an XML parser (although, this might be fixed by using libraries for certain purposes)
- XML Base
- Stylesheets in XML
- XHTML Modularization
- XML Events
- XML Fragments
- XML Notepad
P.S.: Don't forget, arbitrary XML cannot be parsed with regex!