構文違反

構文解析エラー (Web)

[8] 構文解析エラー (parse error) は、 HTML構文解析器XML構文解析器によって検出された処理対象である文書の構文的誤りです。

仕様書

HTML における構文解析誤り

[9] 構文解析エラーの条件と、その後の処理は、仕様書によって規定されています。 実装はエラーの有無に関わらず、仕様通りの動作をしなければなりません。

[10] 構文解析エラーを検出したら、構文解析器はそこで処理を停止して利用者に報告しても構いませんし、そのまま継続しても構いません。 Webブラウザーをはじめ一般的な実装は、そのまま処理を継続します。

[11] Web 上には構文解析エラーを含む文書が数多く存在しています。 処理を停止するような実装は用途によっては有用かもしれませんが、Web互換ではありません。

[4] 仕様書上は字句構文解析エラーの順序や構文解析エラー同士の順序が決まっていますが、 実装がその通りにすることは要求していません。

[6] 字句化器出力字句または構文解析エラーの列として実装することもできますし、 字句の列と構文解析エラーの列それぞれとすることもできます。 後者の実装方法なら字句構文解析エラーに前後関係はありません。

[5] 例えば入力ストリームレベルの構文解析エラー字句化器構文解析エラー木構築器構文解析エラーの相互の順序は実装方法によって前後するかもしれません。

[7] 構文解析エラースクリプトからアクセス可能ではありませんから、 どのように実装しても相互運用性には影響しません。

[2] <table><b>abc</b></table>colgroupinnerHTML における abc<frameset></frameset>abc のような場合に abc文字字句3つとして扱うか、 いくつかの文字の連続を1つの字句として扱うかで、構文解析エラーの数が変わることがあります。 (仕様書では1文字を1つの字句としていますが、 実在する構文解析器は複数の字句をまとめて扱うのが普通です。)

[3] 構文解析エラーを報告する場合、その個数は実装に委ねられていますから、 どちらの構文解析器も仕様に適合します。

[21] にエラーコード (code) の規定が追加され、適合性検査器構文解析誤りの報告時に用いることが推奨されています >>22

URL における構文違反

[15] 妥当性検証誤り (validation error) (旧構文違反 (syntax violation) ) は、 入力構文要件との致命的ではない不一致を表します >>14

[16] 利用者エージェント、とりわけ適合性検査器は、 これを何らかの形で報告するべき (encourage) です >>14

[17] URL Standard においては構文違反構文解析器の停止とは明確に区別されています >>14。 停止するよう明記されている場合を除き、構文違反だからといって処理を停止してはなりません。

歴史

[1] Re: [whatwg] Byte-wise tokenization algorithm (Philip Taylor <excors+whatwg@...> 著, 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.devel/224>

[12] 878364 – Report HTML parsing errors in the console ( ( 版)) <https://bugzilla.mozilla.org/show_bug.cgi?id=878364>

[13] IRC logs: freenode / #whatwg / 20140813 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140813#l-249>

[18] Rename parse error to syntax violation. Remove XXX on halting on firs… · whatwg/url@3651453 ( 版) <https://github.com/whatwg/url/commit/3651453f90900110cf0698eeb5eb1084a63b4208>

[19] Attempt to explain valid input better (annevk著, ) <https://github.com/whatwg/url/commit/50cb9ab9d8f70cc2bc72e91976bfaea0ad0fd330>

[20] Attempt to explain valid input better (annevk著, ) <https://github.com/whatwg/url/commit/50cb9ab9d8f70cc2bc72e91976bfaea0ad0fd330>

[23] Assign IDs to and explain all tokenization parse errors (inikulin著, ) <https://github.com/whatwg/html/commit/32dbd7d5b938ffda725e74dba8a50ed0c3b83b6d>

[24] Editorial: minor fixes to the parse error table (#2728) (zcorpan著, ) <https://github.com/whatwg/html/commit/dacd933e8aa6227bbb25040d6581e8cb6a3fb1c7>

[25] Editorial: Parse error table clarifications (inikulin著, ) <https://github.com/whatwg/html/commit/7f4c34a8588bf73adeb5ba9ee57eb24e3549a508>

[26] "The parser sets the Document to quirks mode in ..." · Issue #2732 · whatwg/html () <https://github.com/whatwg/html/issues/2732>

[27] Parse error table clarifications (closes #2732) by inikulin · Pull Request #2746 · whatwg/html () <https://github.com/whatwg/html/pull/2746>