TOP / Contents / Previous / Next / Index
はじめに、HTML文書の典型的な例を示します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> Header... </HEAD> <BODY> Contents... </BODY> </HTML>
続いて、XHTML1.0文書の典型的な例を示します。左端の数字は解説のためのものです。
1: <?xml version="1.0" encoding="Shift_JIS"?> 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> 5: <head><title>この文書のタイトル</title> 6: Header... 7: </head> 8: <body> 9: Contents... 10: </body> 11: </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">は、HTML の バージョン情報です。これは、HTML 4の Strict (See http://www.w3.org/TR/html4/strict.dtd )の場合です。上と下は、同じ内容を示しています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
HTML 4 は誤植ではありません。HTML 4 の最新版として、HTML 4.01 が存在します。
なお、HTML 4.0 は破棄されたわけではなく、引き続き有効とのことです。
HTML 4.0 とは、URL が変わってますので、ご注意ください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
このほかに、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
HTML 4.0 のうち、Frameset と、その他の違いだけど、<FRAMESET>,<FRAME>,</FRAMESET> を含む文書であれば、 Frameset になります。なければ、Transitional か Strict になります。<NOFRAMES> は、Transitional にも含まれています。
XHTML1.0 では、以下のようになります。環境によっては改行されて2行にわたっているものもあると思いますが、すべて1行で書いてます。 もっとも、適切なところならば改行しても問題ありません。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
最近、読んだところによると、PUBLIC のあとにURIを置くのは、どうもw3cの独自拡張という話… 正確には例えば、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
とするほうが正しいらしい… 根拠はSGMLらしいんですけど、SGMLはISO/JISの規格(ISO 8879:1986(E)だそうです)なので、お金を払わないと見れないし…
18:39 2002/10/16
どうやら、OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401)により、
独自拡張ではないような気もするが、このOASIS(Organization for the Advancement of Structured Information Standards)というグループって何なんでしょうか…
結局、よく分からない…
Frameset では、BODY が HEAD要素の後に出てきません。FRAMESET になります。
(NOFRAMES の要素には含まれますので、BODY が Frameset に出てこないわけではありません。)
<!ELEMENT html (head, body)> <!ATTLIST html %i18n; id ID #IMPLIED xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' >
<!ENTITY % html.content "HEAD, BODY"> <!ELEMENT HTML O O (%html.content;) -- document root element --> <!ATTLIST HTML %i18n; -- lang, dir -- >
<!ELEMENT html (head, frameset)> <!ATTLIST html %i18n; id ID #IMPLIED xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' >
<!ENTITY % html.content "HEAD, FRAMESET"> <!ELEMENT HTML O O (%html.content;) -- document root element --> <!ATTLIST HTML %i18n; -- lang, dir -- >
<!ENTITY % html.content "HEAD, BODY"> <!ELEMENT HTML O O (%html.content;) -- document root element -->
どのバージョンでも、少なくともTITLE要素を一つ含むことを要求しています。TITLE要素を複数個含むことはできません。
<!ENTITY % head.misc "(script|style|meta|link|object)*"> <!-- content model is %head.misc; combined with a single title and an optional base element in any order --> <!ELEMENT head (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))> <!ATTLIST head %i18n; id ID #IMPLIED profile %URI; #IMPLIED >
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements --> <!ENTITY % head.content "TITLE & BASE?"> <!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head --> <!ATTLIST HEAD %i18n; -- lang, dir -- >
<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> <!-- content model is %head.misc; combined with a single title and an optional base element in any order --> <!ELEMENT head (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))> <!ATTLIST head %i18n; id ID #IMPLIED profile %URI; #IMPLIED >
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements --> <!ENTITY % head.content "TITLE & ISINDEX? & BASE?"> <!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head --> <!ATTLIST HEAD %i18n; -- lang, dir -- >
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements --> <!ENTITY % head.content "TITLE & ISINDEX? & BASE?"> <!ELEMENT HEAD O O (%head.content) +(%head.misc)>
TITLE要素は、各文書に必ず一つだけ書く必要があります。
<!ELEMENT title (#PCDATA)> <!ATTLIST title %i18n; id ID #IMPLIED >
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title --> <!ATTLIST TITLE %i18n>
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
文書の基準となるURI を指定するものですが、絶対URI形式に限られるらしい。
(どこに定義してあるかわからんけど、w3.org の解説文書には書いてある。)
<!ELEMENT base EMPTY> <!ATTLIST base href %URI; #REQUIRED id ID #IMPLIED >
<!ELEMENT BASE - O EMPTY -- document base URI --> <!ATTLIST BASE href %URI; #REQUIRED -- URI that acts as base URI -- >
<!ELEMENT base EMPTY> <!ATTLIST base id ID #IMPLIED href %URI; #IMPLIED target %FrameTarget; #IMPLIED >
<!ELEMENT BASE - O EMPTY -- document base URI --> <!ATTLIST BASE href %URI; #REQUIRED -- URI that acts as base URI -- target %FrameTarget; #IMPLIED -- render in this frame -- >
<!ELEMENT BASE - O EMPTY> <!ATTLIST BASE href %URL #REQUIRED >
<!ELEMENT meta EMPTY> <!ATTLIST meta %i18n; id ID #IMPLIED http-equiv CDATA #IMPLIED name CDATA #IMPLIED content CDATA #REQUIRED scheme CDATA #IMPLIED >
<!ELEMENT META - O EMPTY -- generic metainformation --> <!ATTLIST META %i18n; -- lang, dir, for use with content -- http-equiv NAME #IMPLIED -- HTTP response header name -- name NAME #IMPLIED -- metainformation name -- content CDATA #REQUIRED -- associated information -- scheme CDATA #IMPLIED -- select form of content -- >
<!ELEMENT META - O EMPTY -- Generic Metainformation --> <!ATTLIST META http-equiv NAME #IMPLIED -- HTTP response header name -- name NAME #IMPLIED -- metainformation name -- content CDATA #REQUIRED -- associated information -- >
<!-- Relationship values can be used in principle: a) for document specific toolbars/menus when used with the link element in document head e.g. start, contents, previous, next, index, end, help b) to link to a separate style sheet (rel="stylesheet") c) to make a link to a script (rel="script") d) by stylesheets to control how collections of html nodes are rendered into printed documents e) to make a link to a printable version of this document e.g. a PostScript or PDF version (rel="alternate" media="print") -->
<!-- Relationship values can be used in principle: a) for document specific toolbars/menus when used with the LINK element in document head e.g. start, contents, previous, next, index, end, help b) to link to a separate style sheet (rel=stylesheet) c) to make a link to a script (rel=script) d) by stylesheets to control how collections of html nodes are rendered into printed documents e) to make a link to a printable version of this document e.g. a postscript or pdf version (rel=alternate media=print) -->
<!ELEMENT link EMPTY> <!ATTLIST link %attrs; charset %Charset; #IMPLIED href %URI; #IMPLIED hreflang %LanguageCode; #IMPLIED type %ContentType; #IMPLIED rel %LinkTypes; #IMPLIED rev %LinkTypes; #IMPLIED media %MediaDesc; #IMPLIED >
<!ELEMENT LINK - O EMPTY -- a media-independent link --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset %Charset; #IMPLIED -- char encoding of linked resource -- href %URI; #IMPLIED -- URI for linked resource -- hreflang %LanguageCode; #IMPLIED -- language code -- type %ContentType; #IMPLIED -- advisory content type -- rel %LinkTypes; #IMPLIED -- forward link types -- rev %LinkTypes; #IMPLIED -- reverse link types -- media %MediaDesc; #IMPLIED -- for rendering on these media -- >
<!ELEMENT link EMPTY> <!ATTLIST link %attrs; charset %Charset; #IMPLIED href %URI; #IMPLIED hreflang %LanguageCode; #IMPLIED type %ContentType; #IMPLIED rel %LinkTypes; #IMPLIED rev %LinkTypes; #IMPLIED media %MediaDesc; #IMPLIED target %FrameTarget; #IMPLIED >
<!ELEMENT LINK - O EMPTY -- a media-independent link --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset %Charset; #IMPLIED -- char encoding of linked resource -- href %URI; #IMPLIED -- URI for linked resource -- hreflang %LanguageCode; #IMPLIED -- language code -- type %ContentType; #IMPLIED -- advisory content type -- rel %LinkTypes; #IMPLIED -- forward link types -- rev %LinkTypes; #IMPLIED -- reverse link types -- media %MediaDesc; #IMPLIED -- for rendering on these media -- target %FrameTarget; #IMPLIED -- render in this frame -- >
<!ELEMENT LINK - O EMPTY> <!ATTLIST LINK href %URL #IMPLIED -- URL for linked resource -- rel %Types #IMPLIED -- forward link types -- rev %Types #IMPLIED -- reverse link types -- title CDATA #IMPLIED -- advisory title string -- >
rel に使える値の一覧の抜粋です。大文字小文字は区別されません。
- Alternate
- 代替文書へのリンクを示します。lang属性と併用した場合、翻訳版の所在を示します。media属性との併用は、別メディア出力用に設計した版を示します。
- Stylesheet
- 外部スタイルシートを参照します。
- Start
- 長い文書が分割されている場合に、第1部を指し示します。
- Next
- 「次」ページを指し示します。
- Prev
- 「前」ページを指し示します。
- Contents
- 目次ページを指し示します。
- Index
- 索引ページを指し示します。
- Glossary
- 述語集ページを指し示します。
- Copyright
- 当該文書の著作権に関して記したページを指し示します。
- Chapter
- Section
- Subsection
- 多ページ化文書中の章、節、小節部分を指し示します。
- Appendix
- 多ページ化文書中の附記ページを指し示します。
- Help
- ヘルプのページ(詳説のページや、参照先のリンク一覧など)を指し示します。
- Bookmark
- ブックマークを参照します。外部文書へのリンク一覧です。ブックマークのラベルとしてtitle属性が利用されるでしょう。
(文書内で)STYLE を使うときは HEAD 内に次のような宣言が必要だとW3Cは言っています。
type が必須(#REQUIRED)になっていることに注意してください。text/css などです。
<!ELEMENT style (#PCDATA)> <!ATTLIST style %i18n; id ID #IMPLIED type %ContentType; #REQUIRED media %MediaDesc; #IMPLIED title %Text; #IMPLIED xml:space (preserve) #FIXED 'preserve' >
<!ELEMENT STYLE - - %StyleSheet -- style info --> <!ATTLIST STYLE %i18n; -- lang, dir, for use with title -- type %ContentType; #REQUIRED -- content type of style language -- media %MediaDesc; #IMPLIED -- designed for use with these media -- title %Text; #IMPLIED -- advisory title -- >
<!-- SCRIPT/STYLE are place holders for transition to next version of HTML --> <!ELEMENT STYLE - - CDATA -- placeholder for style info -->
Copyright (c) 1999-2000,2002 Yuuichirou Oka
[E-mail] avex-freak@ma1.seikyou.ne.jp
All right reserved. International copyright secured.