XHTML 1.0에는 HTML 4.01의 세 가지 버전에 대응하는 세 가지 버전이 있습니다.
• XHTML 1.0 전환
• XHTML 1.0 엄격
• XHTML 1.0 프레임세트
XHTML 1.0 Transitional에는 HTML 4.01 Transitional의 모든 태그와 속성이 포함되어 있습니다. XHTML 1.0 전환 표준은 기존 HTML 디자이너와 개발자가 큰 어려움 없이 XHTML로 마이그레이션할 수 있도록 도입되었습니다.
XHTML 1.0 Strict는 문서 구조와 표현을 더욱 명확하게 분리한다는 점에서 XHTML 1.0 Transitional과 다릅니다. XHTML 1.0 Transitional과 달리 XHTML 1.0 Strict에서는 CSS 스타일 시트를 사용하여 페이지 모양을 제어해야 합니다.
XHTML 1.0 프레임셋 문서는 브라우저를 프레임으로 나누기 위해 태그를 사용하는 문서를 위한 것입니다(XHTML 1.0 Transitional 및 Strict 페이지는 태그를 포함할 수 없습니다).
W3C도 XHTML 1.1을 권장 사항으로 발표했습니다(2001년 5월 31일). XHTML 1.1은 XHTML 1.0 Strict와 매우 유사합니다. 주요 차이점은 XHTML 1.1이 새로운 요소를 지원하기 위해 추가 모듈을 통해 확장될 수 있다는 것입니다. 예를 들어, MathML(수학 마크업 언어), SVG(확장 가능 벡터 언어) 또는 사용자가 생성한 사용자 정의 모듈의 요소도 포함하는 특정 XHTML 1.1 페이지를 생성할 수 있습니다.
마지막으로 W3C는 XHTML 2.0 권장 사항을 개발하고 있습니다. XHTML 2.0은 아직 초안 단계에 있고 현재 표준을 지원하는 웹 브라우저가 없기 때문에 이 기사에서는 이에 대해 논의하지 않습니다.
ASP.NET 2.0 Framework 및 Visual Studio .NET 2005는 XHTML 1.0 Transitional을 대상으로 합니다. 이 표준은 XHTML 표준 중 제한이 가장 적으며 기존 HTML 페이지와 가장 잘 호환됩니다. 그러나 XHTML 1.0 Strict 표준이나 XHTML 1.1 표준을 대상으로 하는 ASP.NET 2.0 페이지를 생성할 수도 있습니다(나중에 "XHTML 규격 구성" 섹션 참조).
(ASP.NET Framework의 베타 2 버전은 기본적으로 XHTML 1.1을 대상으로 합니다. ASP.NET 2.0 Framework의 최종 버전은 XHTML 1.0 Transitional을 대상으로 합니다.)