1. 모든 태그에는 해당하는 닫는 태그가 있어야 합니다.
이전 HTML에서는 해당 </p> 및 </li>를 작성하여 닫을 필요 없이 <p> 및 <li>와 같은 많은 태그를 열 수 있었습니다. 그러나 이는 XHTML에서는 합법적이지 않습니다. XHTML은 엄격한 구조를 요구하며 모든 태그를 닫아야 합니다. 페어링되지 않은 별도의 태그인 경우 태그 끝에 "/"를 추가하여 닫습니다. 예를 들어:
<br /><img height="80" alt="웹 디자이너" src="../images/logo_w3cn_200x80.gif" width="200" />
2. 모든 태그 요소 및 속성의 이름은 소문자여야 합니다.
HTML과 달리 XHTML은 대소문자를 구분하며 <title>과 <TITLE>은 다른 태그입니다. XHTML에서는 모든 태그 및 속성 이름이 소문자여야 합니다. 예를 들어 <BODY>는 <body>로 작성해야 합니다. 대소문자 혼합도 인식되지 않습니다. 일반적으로 Dreamweaver에서 자동으로 생성된 속성 이름 "onMouseOver"도 "onmouseover"로 변경해야 합니다.
3. 모든 XML 태그는 적절하게 중첩되어야 합니다.
또한 XHTML은 엄격한 구조를 요구하기 때문에 모든 중첩이 순서대로 이루어져야 합니다. 이전에는 다음과 같이 코드를 작성했습니다.
<p><b></p></b>
다음과 같이 수정해야 합니다.
<p><b></b></p>
즉, 레이어별 중첩은 엄격하게 대칭을 이루어야 합니다.
4. 모든 속성은 따옴표 ""로 묶어야 합니다.
HTML에서는 속성 값을 인용할 필요가 없지만 XHTML에서는 인용해야 합니다. 예를 들어:
<높이=80>
다음과 같이 수정해야 합니다.
<높이="80">
특별한 경우에는 속성 값에 큰따옴표를 사용해야 합니다. "를 사용할 수 있으며 작은따옴표는 '를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
<alt="안녕하세요"라고 말하세요">
5. < 및 & 특수 기호를 모두 인코딩합니다.
태그의 일부가 아닌 모든 미만 기호(<)는 <
레이블의 일부가 아닌 모든 초과 기호(>)는 >로 인코딩되어야 합니다.
엔터티의 일부가 아닌 앰퍼샌드(&)는 &로 인코딩되어야 합니다.
참고: 위 문자 사이에는 공백이 없습니다.
6. 모든 속성에 값을 할당합니다.
XHTML은 모든 속성에 값이 있어야 하며 값이 없으면 반복된다고 규정합니다. 예를 들어:
<td 현재 랩> <input type="checkbox" name="shirt" value="medium" selected>
다음과 같이 수정해야 합니다.
<td nowrap="nowrap"> <input type="checkbox" name="shirt" value="medium" check="checked">
7. 댓글 내용에 "--"를 사용하지 마세요.
"--"는 XHTML 주석의 시작과 끝에만 나타날 수 있습니다. 즉, 내용 내에서는 더 이상 유효하지 않습니다. 예를 들어 다음 코드는 유효하지 않습니다.
<!--여기에 댓글이 있습니다------------여기에 댓글이 있습니다-->
내부 점선을 등호나 공백으로 바꿉니다.
<!--여기에 댓글이 있습니다============여기에 댓글이 있습니다-->
위 사양 중 일부는 이상하게 보일 수 있지만 모두 향후 데이터 재사용을 용이하게 하기 위해 코드가 통일되고 고유한 표준을 갖도록 설계되었습니다.