Living Standard — Last Updated 13 November 2024
このセクションは、HTML MIMEタイプで標識されたリソースのための規則のみを説明する。XMLリソースのための規則は、"XML構文"と題する以降のセクションで説明する。
この節は、文書、オーサリングツール、およびマークアップジェネレーターにのみ適用される。とりわけ、適合性チェッカーには適用されない。適合性チェッカーは、次の節("HTML文書の解析")で指定される要件を使用しなければならない。
指定された順序で、文書は以下のパーツから構成されなければならない。
html
要素の形式で、文書要素。上記のさまざまな種類のコンテンツは、以下の数セクションで説明される。
また、そのトピックのセクションで説明したように、文字エンコーディング宣言がシリアライズされる方法にはいくつかの制限がある。
文書が解析されるときに、html
要素の前、html
要素の冒頭、およびhead
要素の前のASCII空白文字は、落とされる。あたかもASCII空白文字がbody
要素の最後であるかのように、html
要素の後のASCII空白文字は解析される。したがって、文書要素の周りのASCII空白文字は、ラウンドトリップしない。
これは、改行がDOCTYPEの後、文書要素の前にある任意のコメントの後、(省略されていない場合)html
要素の開始タグの後、およびhead
要素の前を除くhtml
要素の内部にある任意のコメントの後に挿入されることが示唆される。
HTML構文において、多くの文字列(たとえば要素名とその属性名など)は大文字・小文字不区別であるが、ASCII大文字とASCII小文字に対してのみである。便宜上、このセクションにおいて、これは単に"大文字・小文字不区別"とも呼ばれる。
DOCTYPEは必須のプリアンブルである。
DOCTYPEは時代に合わなくなった理由のために必要である。省略した場合、ブラウザーは一部の仕様と互換性のない異なるレンダリングモードを使用する傾向がある。文書内でDOCTYPEを含めることは、ブラウザーが以下の関連仕様でベストエフォートな試みをすることを保証する。
次の順序で、DOCTYPEは以下のコンポーネントで構成されなければならない:
<!DOCTYPE
"に一致するASCII大文字・小文字不区別の文字列。html
"に一致するASCII大文字・小文字不区別の文字列。言い換えると、大文字・小文字不区別で<!DOCTYPE html>
。
短いDOCTYPE"<!DOCTYPE html>
"でHTMLマークアップを出力できないHTMLの出力器の目的に対して、DOCTYPEレガシー文字列は(上記で定義された位置で)DOCTYPEに挿入してもよい。この文字列は以下で構成されなければならない:
SYSTEM
"に一致するASCII大文字・小文字不区別の文字列。about:legacy-compat
"。言い換えると、単一または二重引用符の部分を除いて大文字・小文字不区別で、<!DOCTYPE html SYSTEM "about:legacy-compat">
または<!DOCTYPE html SYSTEM 'about:legacy-compat'>
。
文書が短い文字列を出力できないシステムから生成されない限り、DOCTYPEレガシー文字列は使用すべきではない。
6つの異なる種類の要素が存在する。空要素、template
要素、生テキスト要素、エスケープ可能な生テキスト要素、外来要素、通常要素。
area
, base
, br
, col
, embed
, hr
, img
, input
, link
, meta
, source
, track
, wbr
template
要素template
script
、style
textarea
、title
タグは、マークアップで要素の開始と終了を区切るために使用される。生テキスト、エスケープ可能な生テキスト、および通常要素は、開始する場所を示すための開始タグを持ち、終了する場所を示すための終了タグを持つ。任意タグのセクションで後述するように、特定の通常要素の開始タグおよび終了タグは省略できる。省略できないものは省略してはならない。空要素は開始タグのみを持つ。空要素に対して終了タグは指定してはならない。外来要素は、開始タグと終了タグを持つ、または終了タグを持ってはならない場合、自己終了としてマークされる開始タグのいずれかを持たなければならない。
要素のコンテンツは、開始タグ(特定の場合に暗示されるかもしれない)のちょうど後、終了タグ(再び、特定の場合に暗示されるかもしれない)のちょうど前の間に配置されなければならない。この仕様で以前に説明したように、個々の要素の正確な許可されるコンテンツは、その要素のコンテンツモデルによって異なる。要素は、そのコンテンツモデルが禁止するコンテンツを含めてはならない。また一方、これらコンテンツモデルによってコンテンツに設定される制限に加えて、要素に5種類の追加の構文要件がある。
空要素は、任意のコンテンツを持つことができない(終了タグが存在しないので、コンテンツは開始タグと終了タグの間に置くことができない)。
template
要素はテンプレートコンテンツを持つことができるが、そのようなテンプレートコンテンツはtemplate
要素自体の子ではない。代わりに、ブラウジングコンテキストなしで、それらは別のDocument
に関連付けられたDocumentFragment
に保存され、template
のコンテンツがメインのDocument
と干渉するのを避けるようにする。template
要素のテンプレートコンテンツのマークアップは、(他の要素と同様に)template
要素の開始タグの直後かつtemplate
要素の終了タグの直前に配置され、テキスト、文字参照、要素、およびコメントで構成されてもよいが、 テキストは、文字U+003C LESS-THAN SIGN(<)または曖昧なアンパサンドを含めてはならない。
後述の制限があるが、生テキスト要素は、テキストを持つことができる。
エスケープ可能な要素は、テキストおよび文字参照を持つことができるが、テキストは曖昧なアンパサンドを含めてはならない。後述のさらなる制限もある。
開始タグが自己終了としてマークされる外来要素は、任意のコンテンツを持つことはできない(終了タグが存在しないので、コンテンツは開始タグと終了タグの間に置くことができない)。開始タグが自己終了としてマークされない外来要素は、テキスト、文字参照、CDATAセクション、他の要素、およびコメントを持つことができるが、テキストは、文字U+003C LESS-THAN SIGN(<)または曖昧なアンパサンドを含めてはならない。
外来要素であっても、HTML構文は、名前空間宣言をサポートしない。
たとえば、次のHTMLコードを考えてみる:
< p >
< svg >
< metadata >
<!-- this is invalid -->
< cdr:license xmlns:cdr = "https://www.example.com/cdr/metadata" name = "MIT" />
</ metadata >
</ svg >
</ p >
"xmlns:cdr
"属性は効果を持たない(XMLと異なる)ため、内側の要素cdr:license
は、実際にはSVG名前空間である。むしろ、上記断片のコメントにあるように、この断片は実際には不適合である。これは、SVG2が、SVG名前空間で"cdr:license
"と呼ばれる任意の要素を定義しないためである。
通常要素は、テキスト、文字参照、他の要素、およびコメントを持つことができるが、テキストは、文字U+003C LESS-THAN SIGN(<)または曖昧なアンパサンドを含めてはならない。一部の通常要素はまた、コンテンツモデルとこの段落で説明されるものによって課される制限を超えて、保持するために許可されるコンテンツでまだ多くの制限を持つ。これらの制限事項は以下のとおり。
タグは、要素の名前を与えるタグ名を含む。HTML要素はすべて、ASCII英数字を使用する名前のみを持つ。HTML構文において、外来要素に対するものでさえ、タグ名は、すべて小文字に変換する場合に、要素のタグ名に一致する小文字と大文字の任意の組み合わせで書かれてもよい。タグ名は、大文字・小文字不区別である。
開始タグは、次の形式を持たなければならない:
終了タグは、次の形式を持たなければならない:
要素の属性は要素の開始タグの中で表現される。
属性は名前および値を持つ。属性名は、制御文字、U+0020 SPACE、U+0022(")、U+0027(')、U+003E(>)、U+002F(/)、U+003D(=)、および非文字以外の1つ以上の文字で構成されなければならない。HTML構文において、外来要素に対するものでさえ、属性名は、ASCII小文字およびASCII大文字の任意の組み合わせで書かれてもよい。
属性値は、テキストが曖昧なアンパサンドを含めることができない追加の制限をもつ場合を除き、テキストおよび文字参照の混合物である。
属性は、4つの異なる方法で指定できる:
単に属性名。値は、暗黙的に空文字列である。
次の例において、disabled
属性は、空属性構文で与えられる:
< input disabled >
空属性構文を使用する属性が別の属性が続ける場合、2つを分離するASCII空白文字が存在しなければならない。
属性名、その後に0個以上のASCII空白文字、その後に1つのU+003D EQUALS SIGN文字、その後に0個以上のASCII空白文字、その後に属性値が続く。この属性値には、上記の属性値の要件に加えて、すべてのリテラルなASCII空白文字、U+0022 QUOTATION MARK文字(")、U+0027 APOSTROPHE文字(')、U+003D EQUALS SIGN文字(=)、U+003C LESS-THAN SIGN文字(<)、U+003E GREATER-THAN SIGN文字(>)、またはU+0060 GRAVE ACCENT文字(`)を含めてはならず、かつ空文字列であってはならない。
次の例において、value
属性は、引用符で囲まれない属性値構文で与えられる:
< input value = yes >
引用符で囲まれない属性構文を使用する属性が別の属性に続く、または上記の開始タグ構文のステップ6で許可される任意のU+002F SOLIDUS文字(/)文字が続く場合、2つを分離するASCII空白文字が存在しなければならない。
属性名、その後に0個以上のASCII空白文字、その後に1つのU+003D EQUALS SIGN文字、その後に0個以上のASCII空白文字、その後に1つのU+0027 APOSTROPHE文字(')、その後に属性値が続く。この属性値には、属性値に関する上記の要件に加えて、リテラルのU+0027 APOSTROPHE文字(')を含めてはならない。そして最後にもう1つのU+0027 APOSTROPHE文字(')が続く。
次の例において、type
属性は、単一引用符で囲まれた属性値構文で与えられる:
< input type = 'checkbox' >
単一引用符属性構文を使用する属性が別の属性が続ける場合、2つを分離するASCII空白文字が存在しなければならない。
属性名、その後に0個以上のASCII空白文字、その後に1つのU+003D EQUALS SIGN文字、その後に0個以上のASCII空白文字、その後に1つのU+0022 QUOTE MARK文字(")、その後に属性値が続く。この属性値には、属性値に関する上記の要件に加えて、リテラルのU+0022 QUOTATION MARK文字(")を含めてはならない。そして最後にもう1つのU+0022 QUOTATION MARK文字(")が続く。
次の例において、name
属性は、二重引用符で囲まれた属性値構文で与えられる:
< input name = "be evil" >
二重引用符属性構文を使用する属性が別の属性が続ける場合、2つを分離するASCII空白文字が存在しなければならない。
名前が互いにASCII大文字・小文字不区別で一致する同じ開始タグで2つ以上の属性があってはならない。
外来要素が以下の表から行の1番目のローカル名および2番目のセルの名前空間によって与えられた名前空間属性のいずれかが含まれる場合、同じ行から3番目のセルで指定した名前を使用して書かれなければならない。
ローカル名 | 名前空間 | 属性名 |
---|---|---|
actuate | XLink名前空間 | xlink:actuate |
arcrole | XLink名前空間 | xlink:arcrole |
href | XLink名前空間 | xlink:href |
role | XLink名前空間 | xlink:role |
show | XLink名前空間 | xlink:show |
title | XLink名前空間 | xlink:title |
type | XLink名前空間 | xlink:type |
lang | XML名前空間 | xml:lang |
space | XML名前空間 | xml:space |
xmlns | XMLNS名前空間 | xmlns |
xlink | XMLNS名前空間 | xmlns:xlink |
それ以外の名前空間つき属性は、HTML構文で表現できない。
上記の表の属性が適合しているかは、他の仕様(たとえばSVG 2やMathMLなど)によって定義される。属性がHTML構文を使用してシリアライズされる場合、このセクションは、構文規則についてのみ説明する。
一部のタグは省略できる。
以下で説明される状況で要素の開始タグを省略することは、要素が存在しないことを意味するものではない。そのように暗示するが、要素は依然としてそこに存在する。たとえば、たとえマークアップのどこにも文字列<html>
が出現しない場合でも、HTML文書は常にルートhtml
要素を持つ。
html
要素内の最初の文がコメントでない場合、html
要素の開始タグは省略してもよい。
たとえば、以下の場合において"<html>
"タグを除去してよいものである:
<!DOCTYPE HTML>
< html >
< head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
そのようにすることは次のような文書をもたらす:
<!DOCTYPE HTML>
< head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
これは厳密に同じDOMを持つ。具体的に、文書要素の周りの空白はパーサーによって拒否されることに注意する。次の例はまた、厳密に同じDOMを持つ:
<!DOCTYPE HTML> < head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
しかし、次の例において、 開始タグを除去することは、コメントをhtml
要素の前に移動する:
<!DOCTYPE HTML>
< html >
<!-- where is this comment in the DOM? -->
< head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
タグを除去するとともに、文書は実際に次と同じものを返す:
<!DOCTYPE HTML>
<!-- where is this comment in the DOM? -->
< html >
< head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
これは、コメントに続かない場合、タグが除去されてもよい理由である: そこにコメントが存在する場合、タグを除去することは、文書のパースツリーを変更する。もちろん、コメントの位置が重要でない場合、あたかもコメントが最初の位置で開始タグを移動しているかのように、タグは省略することができる。
html
要素の直後がコメントでない場合、html
要素の終了タグは省略してもよい。
要素が空である場合、またはhead
要素内の最初の文が要素である場合、head
要素の開始タグは省略してもよい。
head
要素の直後がASCII空白文字またはコメントでない場合、head
要素の終了タグは省略してもよい。
body
要素の開始タグは、要素が空である場合、またはbody
要素内の最初のものがASCII空白文字またはコメントでない場合、省略してもよい。ただし、body
要素内の最初のものがmeta
、noscript
、link
、script
、style
またはtemplate
要素である場合を除く。
body
要素の直後がコメントでない場合、body
要素の終了タグは省略してもよい。
上記の例において、空白に囲まれているため、head
要素開始および終了タグ、およびbody
要素開始タグは省略できないことに注意する。
<!DOCTYPE HTML>
< html >
< head >
< title > Hello</ title >
</ head >
< body >
< p > Welcome to this example.</ p >
</ body >
</ html >
(body
およびhtml
要素終了タグは、問題なく省略できるだろう。これらの後の任意の空白はbody
要素にパースされる。)
しかし、通常は、空白は発行されない。最初に空白を除去する場合、以下を処理しない:
<!DOCTYPE HTML> < html >< head >< title > Hello</ title ></ head >< body >< p > Welcome to this example.</ p ></ body ></ html >
次にDOMに影響を与えることなしに多数のタグを省略することができる:
<!DOCTYPE HTML> < title > Hello</ title >< p > Welcome to this example.</ p >
このポイントは、いくつかの空白を加え戻すことができることにある:
<!DOCTYPE HTML>
< title > Hello</ title >
< p > Welcome to this example.</ p >
これは、パーサーの暗示する位置で示される省略されたタグとともに、次の文書と等価であるだろう。以下をもたらす空白テキストノードは、head
要素の最後における改行である:
<!DOCTYPE HTML>
< html >< head > < title > Hello</ title >
</ head >< body > < p > Welcome to this example.</ p > </ body ></ html >
li
要素が別のli
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、li
要素の終了タグは省略してもよい。
dt
要素が別のdt
要素またはdd
要素の直後に存在する場合、dt
要素の終了タグは省略してもよい。
dd
要素が別のdd
要素またはdt
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、dd
要素の終了タグは省略してもよい。
A p
element's end tag may be omitted if the p
element is immediately followed by an address
, article
, aside
, blockquote
, details
, dialog
, div
, dl
, fieldset
, figcaption
, figure
, footer
, form
, h1
, h2
, h3
, h4
, h5
, h6
, header
, hgroup
, hr
, main
, menu
, nav
, ol
, p
, pre
, search
, section
, table
, or ul
element, or if there is no more content in the parent element and the parent element is an HTML element that is not an a
, audio
, del
, ins
, map
, noscript
, or video
element, or an autonomous custom element.
このように前の例をさらに単純化することができる:
<!DOCTYPE HTML> < title > Hello</ title >< p > Welcome to this example.
rt
要素が別のrt
またはrp
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、rt
要素の終了タグは省略してもよい。
rp
要素が別のrt
またはrp
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、rp
要素の終了タグは省略してもよい。
optgroup
要素の終了タグは、optgroup
要素の直後に別のoptgroup
要素が続く場合、その直後にhr
要素が続く場合、または親要素にそれ以上のコンテンツがない場合、省略してもよい。
option
要素の終了タグは、option
要素の直後に別のoption
要素が続く場合、optgroup
要素が続く場合、hr
要素が続く場合、または親要素にそれ以上のコンテンツがない場合、省略してもよい。
colgroup
要素内の最初の文がcol
要素である場合、かつ終了タグが省略されている別のcolgroup
要素の直前に存在しない場合、colgroup
要素の開始タグは省略してもよい。(要素が空である場合、省略できない。)
colgroup
要素の直後がASCII空白文字またはコメントでない場合、colgroup
要素の終了タグは省略してもよい。
caption
要素の直後がASCII空白文字またはコメントでない場合、caption
要素の終了タグは省略してもよい。
thead
要素がtbody
またはtfoot
要素の直後に存在する場合、thead
要素の終了タグは省略してもよい。
tbody
要素内の最初の文がtr
要素である場合、かつこの要素が終了タグが省略されているtbody
、thead
、またはtfoot
要素の直前に存在しない場合、tbody
要素の開始タグは省略してもよい。(要素が空である場合、省略できない。)
tbody
要素が別のtbody
またはtfoot
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、tbody
要素の終了タグは省略してもよい。
親要素に追加のコンテンツが存在しない場合、tfoot
要素の終了タグは省略してもよい。
tr
要素が別のtr
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、tr
要素の終了タグは省略してもよい。
td
要素が別のtd
またはth
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、td
要素の終了タグは省略してもよい。
th
要素が別のtd
またはth
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、th
要素の終了タグは省略してもよい。
これらテーブル関連要素をすべて省略するための能力は、テーブルマークアップをより簡潔にする。
例を取ってみる:
< table >
< caption > 37547 TEE Electric Powered Rail Car Train Functions (Abbreviated)</ caption >
< colgroup >< col >< col >< col ></ colgroup >
< thead >
< tr >
< th > Function</ th >
< th > Control Unit</ th >
< th > Central Station</ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > Headlights</ td >
< td > ✔</ td >
< td > ✔</ td >
</ tr >
< tr >
< td > Interior Lights</ td >
< td > ✔</ td >
< td > ✔</ td >
</ tr >
< tr >
< td > Electric locomotive operating sounds</ td >
< td > ✔</ td >
< td > ✔</ td >
</ tr >
< tr >
< td > Engineer's cab lighting</ td >
< td ></ td >
< td > ✔</ td >
</ tr >
< tr >
< td > Station Announcements - Swiss</ td >
< td ></ td >
< td > ✔</ td >
</ tr >
</ tbody >
</ table >
一部の空白の違いを除き、次のように厳密に同じテーブルがマークアップされる:
< table >
< caption > 37547 TEE Electric Powered Rail Car Train Functions (Abbreviated)
< colgroup >< col >< col >< col >
< thead >
< tr >
< th > Function
< th > Control Unit
< th > Central Station
< tbody >
< tr >
< td > Headlights
< td > ✔
< td > ✔
< tr >
< td > Interior Lights
< td > ✔
< td > ✔
< tr >
< td > Electric locomotive operating sounds
< td > ✔
< td > ✔
< tr >
< td > Engineer's cab lighting
< td >
< td > ✔
< tr >
< td > Station Announcements - Swiss
< td >
< td > ✔
</ table >
この方法ではセルがより少ない空間を占めるため、これは1行で各列を持つことによってより簡単に作成できる:
< table >
< caption > 37547 TEE Electric Powered Rail Car Train Functions (Abbreviated)
< colgroup >< col >< col >< col >
< thead >
< tr > < th > Function < th > Control Unit < th > Central Station
< tbody >
< tr > < td > Headlights < td > ✔ < td > ✔
< tr > < td > Interior Lights < td > ✔ < td > ✔
< tr > < td > Electric locomotive operating sounds < td > ✔ < td > ✔
< tr > < td > Engineer's cab lighting < td > < td > ✔
< tr > < td > Station Announcements - Swiss < td > < td > ✔
</ table >
DOMレベルで、セマンティックに中立な任意の場合で)空白の正確な位置とともに、ただこれらテーブル間の違いにすぎない。
ただし、任意の属性を持つ場合、開始タグは省略してはならない。
前の例をすべての除去された空白で返し、すべての任意のタグを除去する:
<!DOCTYPE HTML> < title > Hello</ title >< p > Welcome to this example.
この例でbody
要素がclass
属性を持つ必要があり、かつhtml
要素がlang
属性を持つ必要がある場合、マークアップはこのようになる必要があるだろう:
<!DOCTYPE HTML> < html lang = "en" >< title > Hello</ title >< body class = "demo" >< p > Welcome to this example.
この節は文書が適合している、具体的に、コンテンツモデルの違反がないことを仮定する。この仕様で説明されるコンテンツモデルに適合しない文書で説明される流行のタグ省略は、予期しないDOMの違いをもたらすことになるだろう(部分的には、これは、コンテンツモデルが無効にされるよう設計されている)。
歴史的な理由により、特定の要素は、その内容モデルによって与えられても、制限を超えて追加の制限がある。
table
要素は、これらの要素がこの仕様で説明された内容モデルに従ってtable
要素内で技術的に許可されているにもかかわらず、tr
要素を含めてはならない。(tr
要素がマークアップ内のtable
の内側に配置される場合、実際にはその前のtbody
開始タグを暗示するだろう。)
単一の改行は、pre
とtextarea
要素の開始タグの直後に置かれてもよい。これは、要素の処理には影響を与えない。要素のコンテンツ自身が改行で開始した場合、(内容に他の方法でリーディング改行は任意の改行、および無視のように扱われることになるため)他のオプションの改行が含まれなければならない。
生テキストおよびエスケープ可能な要素でのテキストは、文字列"</
"(U+003C LESS-THAN SIGN、U+002F SOLIDUS)の後に要素のタグ名に大文字・小文字不区別で一致する文字の後にU+0009 CHARACTER TABULATION(tab)、U+000A LINE FEED(LF)、U+000C FORM FEED(FF)、U+000D CARRIAGE RETURN(CR)、U+0020 SPACE、U+003E GREATER-THAN SIGN(>)、またはU+002F SOLIDUS(/)のいずれか1つの出現を含んではならない。
テキストは要素、属性値、およびコメントの内側で許可される。追加の制約は、他のセクションで説明するように、テキストが配置される場所に基づいて、テキストで何が許可され何が許可されないのか判別される。
HTMLにおける改行は、U+000D CARRIAGE RETURN(CR)文字、U+000A LINE FEED(LF)文字、または順番にU+000D CARRIAGE RETURN(CR)、U+000A LINE FEED(LF)文字のペアのいずれかとして表されてもよい。
文字参照が許可される場所で、U+000A LINE FEED(LF)文字(ただしU+000D CARRIAGE RETURN(CR)文字ではない)の文字参照はまた改行を表す。
他のセクションで説明するような特定の例において、テキストは文字参照と混合してもよい。これは、他の方法で合法的にテキストに含めることができない文字をエスケープするために使用できる。
文字参照は、U+0026 AMPERSAND文字(&)で始まらなければならない。これに続いて、文字参照の3つの可能な種類がある:
上で説明したものを形成する数値文字参照は、U+000D CR、非文字、およびASCII空白文字以外の制御文字以外の任意のコードポイントを参照するために許可される。
曖昧なアンパサンドは、U+0026 AMPERSAND文字(&)に1つ以上のASCII英数字が続き、その後にU+003B SEMICOLON文字(;)が続くものである。ここで、これらの文字は名前文字参照のセクションで与えられた任意の名前に一致しない文字である。
CDATAセクションは、次の順に以下のコンポーネントで構成されなければならない:
<![CDATA[
"。]]>
"を含んではならないという追加の制約ととともに、任意のテキスト。]]>
"。CDATAセクションは外来コンテンツ(MathMLまたはSVG)でのみ使用できる。この例において、CDATAセクションはMathML ms
要素のコンテンツをエスケープするために使用される:
< p > You can add a string to a number, but this stringifies the number:</ p >
< math >
< ms > <![CDATA[x<y]]> </ ms >
< mo > +</ mo >
< mn > 3</ mn >
< mo > =</ mo >
< ms > <![CDATA[x<y3]]> </ ms >
</ math >
コメントは、次の形式を持たなければならない:
<!--
"。>
"で開始してはならず、文字列"->
"で開始してはならず、文字列"<!--
"、"-->
"、または"--!>
"を含んではならず、文字列"<!-
"で終了してはならないという追加の制約ととともに、任意のテキスト。-->
"。テキストは、<!--My favorite operators are > and <!-->
のように、文字列"<!
"を最後に付けることができる。