Markup Languages: Theory & Practice