A technical definition of XML or Extensible Markup Language is "a document markup language for defining structured information". But that is a bit abstract, so let's take it step-by-step.
What is a Markup Language?
When you write text in a Word processor, you are actually writing more than just the words on the screen. You are also including information about how that text looks, even if you do nothing but start typing:
- is it in Times New Roman font or Geneva?
- is it black or red?
- is it 12 point or 36 point?
- is there a paragraph after the first 45 characters? or 60?
- is there a horizontal rule after the third paragraph?
- are there images embeded in the document?
- and so on...
With most word processors the information about how the text looks is hidden from you.
Markup languages are codes to tell the computer hidden information about text documents.
For example: to define the bulletted list above, I used HTML markup language
(shown in bold for this example):
<li>is it in Times New Roman font or Geneva?</li>
<li>is it black or red?</li>
<li>is it 12 point or 36 point?</li>
<li>is there a paragraph after the first 45 characters? or 60?</li>
<li>is there a horizontal rule after the third paragraph?</li>
<li>are there images embeded in the document?</li>
<li>and so on...</li>
When you look at the Web page (or a word processed document) all you see is the text and the bullet points defined by the markup. But when you look at the HTML, you see markup tags like <ul> and <li> that tell the browser how to display the text.
When HTML (a markup language for the Web) first came out, it was very similar to a word processor. The hidden information that it encoded was mostly about how the text would look in the Web browser. Just like the word processor you could define:
- the font face
- the font color
- the font size
- paragraph breaks
- horizontal rules
- and more
All of that information would be hidden from the reader in tags in the HTML document.