W3C19 HTML을 위한 SGML 참고 정보Trio 홈페이지
목차
  1. 문서 유효성 점검(validation)
  2. SGML 카다로그(catalog) 견본

이 항목들은 HTML 4.01의 공식적인 SGML 정의를 설명한다. SGML 선언, 문서 타입 정의(DTD: Document Type Definition), 글자 엔티티 참조SGML 카다로그 견본이 포함되어있다.

이 화일들은 아래 목록의 ASCII 양식으로도 되어있다.
목차의 해당 항목에서 번역문과 설명을 찾을 수 있다.

디폴트(default) DTD:
설명은 번역문의 dtd.html를 참조하시오. (화일 원문 strict.dtd)
변이(Transitional) DTD:
설명은 번역문의 loosedtd.html를 참조하시오. (화일 원문 loose.dtd)
프레임세트(Frameset) DTD:
설명은 번역문의 framesetdtd.html를 참조하시오. (화일 원문 frameset.dtd)
SGML 선언:
설명은 번역문의 sgmldecl.html를 참조하시오. (화일 원문 HTML4.decl)
엔티티(entity) 정의 화일들:
특수문자의 설명은 번역문의 entities.html#h-24.4을 참조하시오. (화일 원문 HTMLspecial.ent)
수학기호 등의 설명은 번역문의 entities.html#h-24.3을 참조하시오. (화일 원문 HTMLsymbol.ent)
기본문다(Latin-1)의 설명은 번역문의 entities.html#h-24.4을 참조하시오. (화일 원문 HTMLlat1.ent)
카다로그(catalog) 견본:
SGML 카다로그 견본 참조 (화일 원문 다운로드 HTML4.cat)

19.1 문서 유효성 점검(validation)

많은 제작자들은 브라우저가 그 문서들을 표현하면 그 문서들은 유효하다는 가정 아래, 그 들이 만든 문서를 검정하기 위하여 제한 된 브라우저들에 의존한다. 불행하게도, 브라우저들은 유효하지 않은 문서를 표현 함으로서 잘 수습하고, 사용자의 혼동을 방지 할 수 있도록 설계되었기 때문에, 이 방법은 문서의 정확한 유효성 점검에 매우 비 효율적인 수단이다.

보다 나은 유효성 점검을 위하여, nsgmls [SP 참조]과 같은 SGML 처리자(parser)에 대하여 HTML 문서가 HTML 4 DTD에 부합하는가를 점검하여야 한다. 만일 문서의 문서 타입 선언(DTD)이 URI를 포함하고 SGML 처리자가 시스템 인식자(identifier) 타입을 지원하면, DTD를 직접 얻을 것이다. 그렇지 않으면, 다음 SGML 카다로그(catalog) 견본를 사용 할 수 있다. 이는 DTD가 화일 "strict.dtd" 로 저장되었고, 그 엔티티들은 "HTMLlat1.ent", "HTMLsymbol.ent"와 "HTMLspecial.ent" 화일들에 저장되어 있는 것으로 가정한다. 어느 경우든, SGML 처리자(parser)가 [ISO10646]를 취급 할 수 있슴을 확실히 하여야한다. 당신의 유효성 점검 도구의 설명서 세부사항을 참조하라.

이와 같은 유효성 점검은, 유용하고 강력히 추천되지만, 문서가 완전히 HTML 4 규격에 부합한다는 것을 보증하지는 않는다는 것을 명심하라. 이는, SGML 처리자가 유효한 HTML 4 문서의 모든 면을 나타내지 않는, 주어진 SGML DTD에 만 의존하기 때문이다. 구체적으로, SGML 처리자는 그 문법(syntax), 구조(structure), 엘레멘트 목록과 그들의 애트리뷰트들이 유효하다는 것을 확실히한다. 그러나 이는, 예를 들어, IMG 엘레멘트의 width 애트리뷰트에 유효하지 않은 값(예: "foo" 또는 "12.5")이 설정되면, 그 오류들은 잡아내지 못한다. 이 규격은 그 애트리뷰트의 값을 픽셀(pixel) 길이의 정수로 제한하지만, DTD는 단지 이것을, 실제 어느 값이나 허용하는, CDATA로 정의한다. 특별 프로그램 만이 완전한 HTML의 4 규격을 만족시킨다.

그럼에도 불구하고, 문서를 유효하지 않게하는 많은 오류들을 검정할 수 있기 때문에, 이 방법의 유효성 점검이 강력히 추천된다.

19.2 SGML 카다로그(catalog) 견본

이 카다로그는, nsgmls와 같은 처리 소프트웨어가 시스템 인식자에 우선하여, 공통(public) 인식자(identifier)들을 사용한는 것을 확실히 하기 위 한, 덮어 씌우는(override) 명령를 포함한다. 이것은, URI 기초 시스템 인식자들을 불러 올 때, 사용자가 웹에 연결되지 않아도 된다는 것을 의미한다.

덮어 씌움(OVERRIDE) 함

PUBLIC "-//W3C//DTD HTML 4.01//EN" strict.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" loose.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" frameset.dtd
PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent
PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent
PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent

Trio 홈페이지 문서(http://trio.co.kr/webrefer/html/sgml/intro.html)는 자유로이 연결 사용이 가능함.