XML is Extensible Markup Language. It is a markup language - much like HTML - and was designed to describe data. XML uses tags but these tags are not predefined as in HTML. In XML you define your own tags. All XML documents have 3 types of components: Elements, attributes and data.