2008년 02월 25일
[quot] HTML Compatibility Guidelines ;HTML 대비 XHTML 가이드
부록 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 lang과 xml:lang 애트리뷰트들
엘레멘트에 언어를 지정 할 때는 lang과 xml: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은 a의 name 애트리뷰트, 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, 엘레멘트들과 애트리뷰트들에서는 소문자로 지정된다. 이 명백한 차잇점은 다음 두 방식들로 설명 할 수 있다:
- DOM을 통하여 인터넷 메디아(media type)
text/html로 서브하는 XHTML 문서들에 접속의 적용(application)들은 HTML DOM을 사용 할 수 있고, 엘레멘트과 애트리뷰트 이름들이 인터페이스들로 부터 대문자로 돌아 온 것으로 간주 할 수 있다. - 인터넷 메디아(media type)
text/html또는application/xml로 서브하는 XHTML 문서들에 접속의 적용들은 XML DOM도 사용 할 수 있다. 엘레멘트들과 애트리뷰트들은 소문자로 돌아 올 이것다. 또한, 일부 XHTML 엘레멘트들은 내용 모델(예:table의tbody엘레멘트)에서 선택적이므로 오브젝트 계통(tree)에 나타날 수도 있고 나타나지 않을 수도 있다. HTML 4의 일부 엘레멘트들은 시작과 종료 태그가 둘 다 생략되는 단축(minimized)이 허용되어 있으므로(SGML 적용) 이와 같은 현상이 나타난다. 이것은 XML에서는 불가능하다. 문서 작성자들이 번잡한 엘레멘트들을 삽입하는 대신 XHTML에서는 이 엘레멘트들을 선택적으로 하였다. 적용에는 이에 따라 사용 할 필요가 있다.
C.12 애트리뷰트 값 에서 '&'(ampersand)의
사용
애트리뷰트 값이 '&'를 포함하면, 이는 글자 참조(character entity reference)로 표현되어야 한다(예: "&"). 예를 들어, 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&name=user로 기술하여야 한다.
C.13 카스케이딩 스타일쉬트(CSS)와 XHTML
(CSS: Cascading Style Sheets)
카스케이딩 스타일쉬트 수준 2 추천안[번역문 CSS2]은 HTML 또는 XML 문서의 해석(parse) 계통(tree)에 적용되는 스타일 특성들을 정의한다. 해석(parsing)의 차잇점들은 사용 된 선택자(selector)들에 따라 보이거나(visual) 들리는(aural) 결과를 다르게 할 것이다. 아래 힌트들은, 이 두 메디아(media type)들에서 변경 없이, 문서들을 다르게 표현하는 영향을 감소시켜 줄 것이다:
- XHTML의 CSS 스타일쉬트에서 엘레멘트과 애트리뷰트 이름들을 소문자로 사용하여야 한다.
- 테이블들에서, tbody 엘레멘트은 HTML 사용도구의 해석자(parser)에 의하여 방해 될 것이나, XML 사용도구의 해석자(parser)에서는 그렇지 않다. 따라서 이것이 CSS 선택자(selector)를 참조하면, 항상 명시적으로 tbody 엘레멘트를 추가하여야 한다.
- XHTML 이름 자리 안에서, 사용도구들은 "id" 애트리뷰트를 ID 타입 애트리뷰트로 인식 할 것이 예상된다. 따라서, 스타일쉬트는 사용도구가 DTD를 읽지 못하더라도 약식 "#" 선택자(selector) 문법을 계속 사용 할 수 있어야 한다.
- XHTML 이름 자리 안에서, 사용도구들은 "class" 애트리뷰트를 인식 할 것이 예상된다. 따라서, 스타일쉬트는 약식 "." 선택자(selector) 문법을 계속 사용 할 수 있어야 한다.
- CSS는 HTML과 XML 문서들에서 서로 다른 규격 부합성 규칙들을 정의하였다; HTML로 전달 된 XHTML 문서들에는 HTML 규칙이 적용되고, XML로 전달 된 XHTML 문서들에는 XML 규칙이 적용 됨을 기억하라.
.
# by | 2008/02/25 17:38 | fr_code | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]