XML uses markup tags to structure and describe content. Tags are delimited by angle brackets and are case sensitive. XML supports a wide range of characters from Unicode and uses UTF-8 or UTF-16 encoding. Special characters like < and & must be escaped. Elements contain content and can have attributes. Elements form a hierarchical tree structure with a single root element. Comments, processing instructions, and CDATA sections provide additional functionality. The XML document has an optional prolog and epilog surrounding the required body.