SGML(Standard Generalized Markup Language)은 문서를 기술하기 위한 언어로, SGML은 ISO에 의해서 1986년에 국제 규격으로 제정되었다.
SGML은 XML보다는 꽤 이전에 존재하고, 고유 태그를 도입하여 Markup 언어를 사용하는데 있어서 XML과 차이점이 없다.
그러나 SGML은 복잡하여 대규모 규격으로 사용되는 것으로 어려운 것으로 알려지고 있다.
HTML이 지금까지 널리 보급된 것은 간단한 태그에 의해 간단히 단락 등을 표현할 수 있는 것이 큰 이유이다.
그러나 HTML은 확장성을 갖지 않는 언어로 문제가 된다.
XML도 또한 SGML에 의해 설계된 언어이다. 고유 태그를 도입하여 Markup 언어를 작성할 수 있는 이점을 가지고 SGML의 복잡성을 대폭 간략
화 하였으며, XML은 HTML과 SGML 양쪽의 장점을 갖춘 언어로 언급된다.
XML 문장은 논리구조와 문서형 정의(DTD)의 2가지 부분으로 구성된다.
XML 문장의 본체는 논리구조 이다. 엘리먼트(element)는 시작 태그와 종료 태그에 의해 표현된다.
두 가지 태그의 사이에 어느 것이든 이 엘리먼트의 내용이고, 이것이 논리 구조를 표현한다.
문서형 정의는 고유 태그를 도입하여 Markup 언어를 정의하는 부분이다. 문서형 정의는 HTML 문서에 포함되지 않지만 XML과 SGML 문서에
는 포함된다. HTML의 경우 HTML 전용 브라우저 내에 문서형 정의가 모두 포함되어 잇는 것으로 언급된다.

