[quot] HTML Compatibility Guidelines ;HTML 대비 XHTML 가이드

fr. trio.co.kr ( http://trio.co.kr/webrefer/xhtml/overview.html#guidelines )

부록 C. HTML 공통 사용성 안내서

(HTML Compatibility Guidelines)

이 부록은 정보를 제공하기 위 한 것이다.

이 부록은 그들의 XHTML 문서들이 기존 HTML 사용도구들에 표현되기를 원하는 작성자들을 위 한 설계 안내서를 요약하였다.

C.1 처리 지시서

일부 사용도구들에서 처리 지시서가 표현 됨으 알아야 한다. 그러나, 문서에 XML 선언이 되어 있지 않으면, 그 문서가 UTF-8 또는 UTF-16 디폴트 글자 엔코딩(encoding)들 만 사용 할 수 있다는 점도 기억하여야 한다.

C.2 빈(empty) 엘레멘트들

빈 엘레멘트들에 공간과 /, >를 포함시켜라.
예: <br />, <hr />, <img src="karen.jpg" alt="Karen" />.
또한, 빈 엘레멘트들에서, 많은 기존 사용도구들에서 확실한 결과가 기대되지 않는 XML에서 허용하는 <br></br>를 사용하는 대신, 예를 들어 <br />와 같은 단축(minimized) 태그를 사용하라.

C.3 엘레멘트 단축(minimization)과

빈 엘레멘트 내용

내용 모델이 빈(EMPTY) 것이 아닌 엘레멘트(예: 빈 title 또는 paragraph)에 빈 인스탄스가 주어지면, 단축 양식을 사용하지 말라(예: <p />가 아니고, <p> </p> 사용).

C.4 깔린(embedded) 스타일쉬트와 스크립트

스타일쉬트(style sheet)에 <,&, ]]> 또는 --를 사용하면 외부(external) 스타일쉬트를 사용하라. 스크립트(script)에 <, &, ]]> 또는 --를 사용하면 외부 스크립트를 사용하라. XML 해석자(parser)는 코멘트의 내용을 조용히 제거하는 것을 허용 함을 유의하라. 그래서 역사적인 스크립트와 스타일 안의 숨김 코멘트를 위 한 과거 버전 부합성는 XML에 기초한 적용에는 작용하지 않을 것으로 기대된다.

C.5 애트리뷰트 값 안에서 줄바꿈

애트리뷰트 값 안에서 줄바꿈과 여러개의 공백문자의 사용을 피하라. 이들은 사용도구들에 의하여 일정하지 않게 처리된다.

C.6 Isindex

문서 head에 한 개 이상의 isindex 엘레멘트를 포함시키지 말라. isindex 엘레멘트는 input 엘레멘트에 의하여 성능을 상실(폐기)한다.

C.7 langxml:lang 애트리뷰트들

엘레멘트에 언어를 지정 할 때는 langxml:lang 애트리뷰트들을 둘 다 사용하라. xml:lang 애트리뷰트 값 이 우선한다.

C.8 부위 인식자(Fragment Identifier)

XML에서, URI[RFC2396]들에서 끝의 "#foo" 양식 부위 인식자들은 애트리뷰트 name="foo"의 엘레멘트들을 참조하지 않고, 타입 ID로 정의 된 애트리뷰트로 엘레멘트들을 참조한다. 예: HTML 4의 id 애트리뷰트. 많은 기존 HTML 사용자들은 이 방식으로 ID 타입 애트리뷰트들의 사용을 지원하지 않는다. 그래서 같은 값들이 향후 버전과 이전 버전에서의 공통 사용성(compatibility)을 높이기 위하여 이들 양쪽 애트리뷰트들에 제공 될 수 있다.(예:, <a id="foo" name="foo">...</a>).

또한 ID 타입 애트리뷰트들에서 유효한 값들은 CDATA 타입에서 보다 훨신 작으므로 name 타입 애트리뷰트는 NMTOKEN으로 변경되었다. 이 애트리뷰트는 ID 타입과 같은 값들 만 가질 수 있거나, XML 1.0 항목 2.5, 5 번의 이름(Name) 결과물(production)이 되도록 강요되었다. 불행하게도 이 강제사항은 XHTML 1.0 DTD에서 표현 될 수 없다. 이 변경 때문에 기존 HTML 문서들을 변환 할 때 주의하여야 한다. 이 애트리뷰트들의 값들은 그 문서 안에서 유일(unique)하여야 하며, 유효(valid)하여야 하고, 변환 과정에서 값들이 바뀌므로 이들 부위 지정자(내부나 외부 모두)의 어떤 참조는 업데이트(update: 변경) 되어야 한다.

마지막으로, XHTML 1.0은 aname 애트리뷰트, applet, frame, iframe, img, map 엘레멘트들을 불량한 것으로 하였으며, 이 후 버전들에서는 XHTML로 부터 제거 될 것이라는 점에 유의하라.

C.9 글자 엔코딩(encoding)

문서에서 글자 엔코딩(encoding)을 지정하기 위하여 xml 선언의 규격 엔코딩(encoding) 애트리뷰트를 사용(예: <?xml version="1.0" encoding="EUC-JP"?>)하거나 메타 선언(meta http-equiv 예: <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />)을 사용 할 수 있다. xml 처리 지시의 엔코딩(encoding) 애트리뷰트 값이 우선한다.

C.10 불린(Boolean) 애트리뷰트

일부 HTML 사용도구들에서, 불린 애트리뷰트들이 XML 1.0에서 요구하는 완전한(단축되지 않은) 양식으로 나타나면, 이들의 해석이 불가능하다. 이 문제는 HTML 4 사용도구들의 불만사항은 아니다. 다음 애트리뷰트들이 관련된다: compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

C.11 문서 오브젝트 모델(DOM)과 XHTMLM

(DOM : Document Object Model)

문서 오브젝트 모델(DOM: Document Object Model) 수준 1 추천안[DOM]은 문서 오브젝트 모델의 XML과 HTML 4의 인터페이스(interface)를 정의한다. HTML 4 문서 오브젝트 모델(DOM)은 HTML 엘레멘트과 애트리뷰트 이름들이 대문자로 돌아옴(return)을 지정한다. XML 문서 오브젝트 모델(DOM)은 엘레멘트과 애트리뷰트 이름들이 지정된 것(대문자나 소문자)으로 돌아옴을 지정한다. XHTML 1.0, 엘레멘트들과 애트리뷰트들에서는 소문자로 지정된다. 이 명백한 차잇점은 다음 두 방식들로 설명 할 수 있다:

  1. DOM을 통하여 인터넷 메디아(media type) text/html로 서브하는 XHTML 문서들에 접속의 적용(application)들은 HTML DOM을 사용 할 수 있고, 엘레멘트과 애트리뷰트 이름들이 인터페이스들로 부터 대문자로 돌아 온 것으로 간주 할 수 있다.
  2. 인터넷 메디아(media type) text/html 또는 application/xml로 서브하는 XHTML 문서들에 접속의 적용들은 XML DOM도 사용 할 수 있다. 엘레멘트들과 애트리뷰트들은 소문자로 돌아 올 이것다. 또한, 일부 XHTML 엘레멘트들은 내용 모델(예: tabletbody 엘레멘트)에서 선택적이므로 오브젝트 계통(tree)에 나타날 수도 있고 나타나지 않을 수도 있다. HTML 4의 일부 엘레멘트들은 시작과 종료 태그가 둘 다 생략되는 단축(minimized)이 허용되어 있으므로(SGML 적용) 이와 같은 현상이 나타난다. 이것은 XML에서는 불가능하다. 문서 작성자들이 번잡한 엘레멘트들을 삽입하는 대신 XHTML에서는 이 엘레멘트들을 선택적으로 하였다. 적용에는 이에 따라 사용 할 필요가 있다.

C.12 애트리뷰트 값 에서 '&'(ampersand)의

사용

애트리뷰트 값이 '&'를 포함하면, 이는 글자 참조(character entity reference)로 표현되어야 한다(예: "&amp;"). 예를 들어, a 엘레멘트의 href 애트리뷰트가 파라메터(parameter)들를 받는 CGI 스크립트(script)를 참조하면,
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user로 하지 말고,
http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user로 기술하여야 한다.

C.13 카스케이딩 스타일쉬트(CSS)와 XHTML

(CSS: Cascading Style Sheets)

카스케이딩 스타일쉬트 수준 2 추천안[번역문 CSS2]은 HTML 또는 XML 문서의 해석(parse) 계통(tree)에 적용되는 스타일 특성들을 정의한다. 해석(parsing)의 차잇점들은 사용 된 선택자(selector)들에 따라 보이거나(visual) 들리는(aural) 결과를 다르게 할 것이다. 아래 힌트들은, 이 두 메디아(media type)들에서 변경 없이, 문서들을 다르게 표현하는 영향을 감소시켜 줄 것이다:

  1. XHTML의 CSS 스타일쉬트에서 엘레멘트과 애트리뷰트 이름들을 소문자로 사용하여야 한다.
  2. 테이블들에서, tbody 엘레멘트은 HTML 사용도구의 해석자(parser)에 의하여 방해 될 것이나, XML 사용도구의 해석자(parser)에서는 그렇지 않다. 따라서 이것이 CSS 선택자(selector)를 참조하면, 항상 명시적으로 tbody 엘레멘트를 추가하여야 한다.
  3. XHTML 이름 자리 안에서, 사용도구들은 "id" 애트리뷰트를 ID 타입 애트리뷰트로 인식 할 것이 예상된다. 따라서, 스타일쉬트는 사용도구가 DTD를 읽지 못하더라도 약식 "#" 선택자(selector) 문법을 계속 사용 할 수 있어야 한다.
  4. XHTML 이름 자리 안에서, 사용도구들은 "class" 애트리뷰트를 인식 할 것이 예상된다. 따라서, 스타일쉬트는 약식 "." 선택자(selector) 문법을 계속 사용 할 수 있어야 한다.
  5. CSS는 HTML과 XML 문서들에서 서로 다른 규격 부합성 규칙들을 정의하였다; HTML로 전달 된 XHTML 문서들에는 HTML 규칙이 적용되고, XML로 전달 된 XHTML 문서들에는 XML 규칙이 적용 됨을 기억하라.

.

by 낭망백수 | 2008/02/25 17:38 | fr_code | 트랙백 | 덧글(1)

트랙백 주소 : http://mulriver.egloos.com/tb/4180867
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 낭망백수 at 2009/08/20 12:03

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶