Advantages
- XML is readable by both humans and machines
- It has 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
Disadvantages
- 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)
Components
- XML Base
- Stylesheets in XML
- XLink
- xml:id
- XInclude
- XPointer
- XForms
- XHTML Modularization
- XML Events
- XML Fragments
Development tools
- Notepad++
- XML Notepad
- EditiX
- AgPad
- XMLBeans
- RSSPect
- Devpad
P.S.: Don’t forget, arbitrary XML cannot be parsed with regex!