> What is the difference between HTML and XML? HTML and XML are both SGML derivatives. They both function similarily: they are intended to markup documents or similar data. The markup is similar: the use of a DTD, tags, attributes, and so on. HTML is designed for web usage. The DTD specifies elements that are useful in web documents: headings, paragraphs, hyperlinks, and so on. XML is generic. You use it for whatever you want. So many markup formats are XML formats. RSS (news feeds) uses XML to markup the data. One of my development IDEs uses a configuration file to store program settings. This file uses XML. XML is a generic method of marking up data, and you can adapt it to whatever situation you want. Which is why it is possible to have HTML that is also XML. Known as XHTML. XHTML ...is... XML, and should be treated as one. But it is also HTML, because it is adapted for web usage. > What is the difference between logical elements and physical elements? Let's say you are reading an essay. At the top is a title in big bold letters. Why is it in big bold letters? Because that's the title. It could be in small underlined letters. Red letters. Blue letters. Who cares. That's the title. Remember how I said HTML is about document markup? Documents have headings, subheadings, paragraphs, quotes, citations, and so on. Logical elements indicate these structural components of a document. Physical elements have no structural meaning. They are things like bold tags, or italic tags, or underline tags. What is the meaning of bold? Nothing. It just makes text bold. Here's the thing. HTML is only for indicating structural meaning. You can determine the look of a webpage with what is known as CSS. CSS makes stylesheets, and in the case of webpages, they can be applied to HTML. So if you have a heading in HTML, you can use CSS to make that heading look big, or red, or underlined, or whatever. Google for “semantic HTML”. The mistake people make is they use <center> tags to center a heading. Or <b> (bold) tags to emphasize something. Or font tags to make something big or small. Don't. Why do you center something? Because it is a heading? Then use <h1> or <h2> tags, which indicate logically that is a heading. Use CSS to choose how it looks.