자유분방한 기존의 문법과는 달리 기계들이 정형화된 형식속에서 이해하기 쉬운 구조를 만들어 확장성을 넓히는데에 중점을 둔 버전입니다.
XHTML 특징
현재에는 HTML5가 주요 버전으로 자리매김하고 있으므로 잘 사용되진 않지만 이런게 있었다 라는 정도만 이해하고 넘어갑시다.
- 기존의 모든 문서를 XHTML은 XML과 HTML 기반의 브라우저와 상호 교환성을 가지고 있다.
- XHTML의 논리적인 구조는 다른 플랫폼에서 콘텐츠를 좀 더 쉽게 재사용할 수 있다.
- XHTML 문서는 네임 스페이스와 함께 새로운 태그를 추가하기 위해 확장될 수 있다. 또는 XHTML이 XML이기 때문에 네임 스페이스 없이 새로운 태그를 추가할 수있다. 이러한 태그는 브라우저에 의해 무시되지만, 데이터를 교환하기 위한 XML 툴에 의해 사용될 수 있다.
- XHTML 문서는 신뢰할 만한 구조를 가지고 있고 XML문법에 대한 규격을 따르고 있다.
XHTML 규칙
XHTML은 HTML과 다르게 그 규칙이 매우 엄격한데, 이는 문법적인 면에서 기능이 강화되어 기계가 인식하기에 무리 없게 하기 위한 방안입니다.
-
요소 사용시 종료 태그의 생략 불가능
<p>content</p> <img src="" />
요소명과 속성명에 소문자(XML은 대소문자를 구별해야함)를 사용하고 속성값을 따옴표(")로 묶어 준다.
<img src="t.gif" width="1" height="1" alt="abcd" />
속성에 속성값을 반드시 지정(생략불가)한다.
<option selected="selected"></option> <!-- XHTML --> <option selected></option> <!-- HTML4.0, HTML5는 생략 가능 -->
요소의 잘못된 중첩 사용이 불가능하며, 빈 요소는 블럭 요소 속으로 중첩되게 합니다.
<p><span><em></em></span></p>
< , > , & 을 <
, >
, &
로 변환하여 사용해야 한다.
스타일시트와 특별한 스크립트는 HTML에서 XHTML로 교환될 때 주의해서 다루어져야만 한다. XHTML은 스크립트와 스타일의 컨텐츠 타입에서 HTML의 분석되지 않은 문자를 분석된 문자 데이터(#CDATA를 #PCDATA로)로 변경한다. 이런 변화가 스타일시트와 특히 스크립트에 주된 변화를 일으키기 때문에,XML 파일을 다룰 때 주의해야 한다. #PCDATA
또는 분석된 문자 데이터는 HTML이 하는 것과 같이 분석되지 않은 프로세싱 대신에 < 와 & 같은 마크업을 시작하는 문자를 해독한다. ]]> 와 - 은 역시나 #PCDATA 블록 내에서 금지된다. XML분석기들은 주석의 내용을 소리없이 다른 곳으로 옮길 수도 있다.
프래그먼트 식별자는 name이 아니라 id 타입이 되어야 한다.
XHTML에서 프래그먼트 식별자는 HTML과는 다르게 취급된다. 즉 XHTML에서 id 속성은 name속성을 대신한다. 프래그먼트 식별자에서 끝내 URI참조(#review 같은)는 이름지어진 속성과 함께 요소들을 언급하지는 않는다. 대신에 id속성을 가진 요소들을 언급한다. 또한 CSS에서 id속성은 HTML 요소들을 언급하기 위해 사용된다. 기존의 몇몇 HTML 브라우저는 id 속성을 제공하지 않는다. 그러므로 모든 버전에 대한 호환성을 확인하기 위해 id속성과 name속성을 함께 공급해야 한다.
<a id="review" name="review">...</a>
정리하자면 앞으로의 호환성만을 위한다면 id 속성만을 사용해도 되며, 이전의 오래된 브라우저의 호환을 고려한다면 name속성과 id속성을 함께 사용해야 한다.
또한 name과 id 속성의 데이터 타입은 CDATA에서 NMTOKEN으로 변화되어 왔다. 프래그먼트 식별자가 과거 버전의 브라우저에 적합하도록 만들기 위해 패턴 [A-Za-z][A-Za-z0-9:_.-]* 에 매치하는 id속성, / 또는 name속성을 사용하기 바란다. 예를 들어 스트링 시작 문자로 'a' 에서 'Z' 까지를 사용하고, 0 또는 특수문자를 사용한다.
HTML과 XHTML 모두 문자 참조(특수 문자)의 경우 Characters Entity Name이나 Characters Entity Code로 변환해야 합니다.
'웹코딩 > HTML' 카테고리의 다른 글
[HTML5] 1장 HTML5를 시작하기 전에... (0) | 2013.02.04 |
---|---|
관용모드와 표준모드 - Quirks mode & Standard mode (0) | 2012.11.27 |
문자셋 UTF-8과 EUC-KR (0) | 2012.11.26 |
X-UA-Compatible, IE=edge, 호환성 보기 (3) | 2012.11.26 |
XHTML 기본구조 (0) | 2012.11.26 |