XHTML 대 HTML

XHTML이 XML 응용 프로그램이라는 사실 때문에 SGML 기반 HTML 4에서 완벽하게 합법적 인 특정 관행을 변경해야합니다. 이전 장에서 이미 XHTML 구문을 보았으므로 XHTML과 HTML의 차이점은 매우 분명합니다. 다음은 XHTML과 HTML의 비교입니다.

XHTML 문서는 올바른 형식이어야합니다.

Well-formedness는 XML이 도입 한 새로운 개념입니다. 본질적으로 이는 모든 요소에 닫는 태그가 있어야하며 올바르게 중첩되어야 함을 의미합니다.

CORRECT: Nested Elements

<p>Here is an emphasized <em>paragraph</em>.</p>

INCORRECT: Overlapping Elements

<p>Here is an emphasized <em>paragraph.</p></em>

요소 및 속성은 소문자 여야합니다.

XHTML 문서는 모든 HTML 요소와 속성 이름에 소문자를 사용해야합니다. XHTML 문서는 XML 문서로 가정되고 XML은 대소 문자를 구분하기 때문에이 차이가 필요합니다. 예를 들어 <li>와 <LI>는 다른 태그입니다.

모든 요소에 끝 태그가 필요합니다.

HTML에서 특정 요소는 종료 태그를 생략 할 수 있습니다. 그러나 XML에서는 종료 태그를 생략 할 수 없습니다.

CORRECT: Terminated Elements

<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>

INCORRECT: Unterminated Elements

<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>

속성 값은 항상 따옴표로 묶어야합니다.

숫자 값을 포함한 모든 속성 값은 따옴표로 묶어야합니다.

CORRECT: Quoted Attribute Values

<td rowspan="3">

INCORRECT: Unquoted Attribute Values

<td rowspan=3>

속성 최소화

XML은 속성 최소화를 지원하지 않습니다. 속성-값 쌍은 전체로 작성해야합니다. compact 및 checked와 같은 속성 이름은 값을 지정하지 않으면 요소에서 발생할 수 없습니다.

CORRECT: Non Minimized Attributes

<dl compact="compact">

INCORRECT: Minimized Attributes

<dl compact>

속성 값의 공백 처리

브라우저가 속성을 처리 할 때 다음을 수행합니다.

  • 선행 및 후행 공백을 제거합니다.

  • 하나 이상의 공백 문자 (줄 바꿈 포함)의 시퀀스를 단일 단어 간 공간에 매핑합니다.

스크립트 및 스타일 요소

XHTML에서 스크립트와 스타일 요소는 "<"및 "&"문자가있는 경우 직접 포함해서는 안됩니다. 그런 다음 마크 업의 시작으로 처리됩니다. "<"및 "&"와 같은 엔티티는 각각 "<"및 "&"문자를 표시하기 위해 XML 프로세서에 의해 엔티티 참조로 인식됩니다.

CDATA 표시 섹션 내에서 스크립트 또는 스타일 요소의 내용을 래핑하면 이러한 엔티티의 확장을 방지 할 수 있습니다.

<script type="text/JavaScript">
   <![CDATA[
      ... unescaped VB or Java Script here... ...
   ]]>
</script>

대안은 외부 스크립트 및 스타일 문서를 사용하는 것입니다.

ID이름 속성 이있는 요소

XHTML은 name 속성을 id 속성으로 대체 할 것을 권장 합니다. XHTML 1.0에서는 이러한 요소 의 이름 속성이 공식적으로 더 이상 사용되지 않으며 XHTML의 후속 버전에서 제거됩니다.

미리 정의 된 값 세트가있는 속성

HTML과 XHTML에는 둘 다 미리 정의되고 제한된 값 집합이있는 일부 속성이 있습니다. 예를 들면type 의 속성 input요소. HTML 및 XML에서 이들은enumerated attributes. HTML 4에서 이러한 값의 해석은 대소 문자를 구분하지 않았으므로TEXT 다음의 값과 동일했습니다. text.

XHTML에서 이러한 값의 해석은 대소 문자를 구분하므로 이러한 모든 값은 소문자로 정의됩니다.

16 진수 값으로 엔티티 참조

HTML과 XML은 모두 16 진수 값을 사용하여 문자에 대한 참조를 허용합니다. HTML에서 이러한 참조는 다음 중 하나를 사용하여 만들 수 있습니다.&#Xnn; 또는 &#xnn; 유효하지만 XHTML 문서에서는 다음과 같은 소문자 버전 만 사용해야합니다. &#xnn;.

<html> 요소는 필수입니다

모든 XHTML 요소는 <html> 루트 요소 내에 중첩되어야합니다. 다른 모든 요소는 쌍으로 이루어져야하며 상위 요소 내에 올바르게 중첩되어야하는 하위 요소를 가질 수 있습니다. 기본 문서 구조는-

<!DOCTYPE html....>

<html>
   <head> ... </head>
   <body> ... </body>
</html>