La menor potencia de XML respecto de SGML, hace a este lenguaje de marcado más restrictivo. Por ejemplo, en SGML el sistema cierra automáticamente las etiquetas no cerradas por error, ya que incorpora las reglas sintácticas necesarias para ello. XML generaría en este caso un error, por lo que no llegaría a abrirse el documento. Por otra parte, XML no es un estándar ISO, sino una recomendación del W3C (1998), derivada del estándar SGML. Supone una simplificación de este último para su uso en Internet.
El problema del tratamiento se ha solucionado en XML aplicando la misma filosofía de uso de SGML. XML facilita el tratamiento ya que los programas desarrollados en un lenguaje de programación de propósito
general pueden ser ayudados mediante la utilización de APIs1, partes de código ya escritas que implementan las funcionalidades básicas, para así poder concentrarse en la funcionalidades avanzadas. De esta forma, el tratamiento de documentos con XML no parte de cero, sino que ya están disponibles una serie de APIs aplicables a XML:
DOM (Document Object Model, recomendación de W3C)
Da una representación orientada a objetos, basada en árboles, del documento XML, estableciendo nodos de información (datos o metadatos).
SAX (Simple API for XML)
David Megginson. Tiene menos capacidad que el DOM. Recorre el documento y “avisa” cuando encuentra una marca y cuando encuentra contenido (eventos).
Ambas APIs cargan el documento en un formato determinado. Por otra parte, el paso de documentos XML a HTML (transformación de etiquetas XML en etiquetas HTML) se realiza mediante el estándar XSL (Extended Stylesheets Language), cuyo núcleo es XSLT (Extended Stylesheets Language Transformations). XSL es XSLT más un lenguaje para pasar etiquetas XML a un formato de presentación HTML.