[66] 要素は、節点木上の構成要素 (節点) の一種です。要素には種別があり、要素名と名前空間名の組で表されます。
[67] 要素は、HTML文書上は開始タグと終了タグとその間の部分によって表現されます。
[60] 要素型は、 特定の局所名と名前空間名を持つ要素の集合を指します >>59。
[68] 要素型は、要素の種別を表しています。要素の意味は、 要素型ごとに規定されています。
[69] 要素型は、曖昧でなければ局所名のみで表されます。 要素の局所名のことを要素名ともいいます。
[70] 名前空間 n で局所名 l の要素型の要素を、 「名前空間 n の l 要素」 のようにいいます。曖昧でなければ単に 「l 要素」といいます。
Element
インターフェイス (DOM)[2] Element
界面は、 HTML・XML
の要素のための機能を提供します。1つの Element
節が HTML/XML 文書の1つの要素に対応します。
[1] DOM1 では、要素節は次の種類の節を子供に出来ます。
[3] Node
界面を継承して、
[44] かつては次の状態もありました。
[23] 要素オブジェクトは、その名前空間URLと局所名から決まるインターフェイス (要素インターフェイス) を実装することになっています。
[63] HTML要素は HTMLElement
またはそれを継承したもの、
SVG要素は SVGElement
またはそれを継承したものが要素インターフェイスとなります。
いずれも、 Element
を継承しています。
[62] それ以外の要素では、 Element
が要素インターフェイスです。 >>33
[37] embed
要素 (HTMLEmbedElement
),
object
要素 (HTMLObjectElement
),
では、プラグインがスクリプト可能インターフェイスを提供する場合、
これを晒すべきであるとの規定 HTML Standard があります。applet
要素 (HTMLAppletElement
)
[64] カスタム要素では、要素インターフェイスではなく、
HTMLElement
(または子孫) を継承したクラスが用いられます。
[24] HTML Standard は、その定義において示された DOM インターフェイスを実装しなければならないとしています >>28, >>25。 更に HTML構文解析器の挙動についても同様の規定があります >>26。
[30]
MathML は MathMLElement
およびそのサブインターフェイスを定義しています。
XBL は XBLContentElement
などを定義しています。
Atom DOM は AtomElement
およびそのサブインターフェイスを定義しています。
XUL は XULElement
およびそのサブインターフェイスを使っています。
[35] MathML 2.0 の表現要素のインターフェイス一覧
* MathMLElement math MathMLMathElement semantics MathMLSemanticsElement annotation MathMLAnnotationElement annotation-xml MathMLXMLAnnotationElement mglyph MathMLGlyphElement mspace MathMLSpaceElement mi MathMLPresentationToken mn MathMLPresentationToken mtext MathMLPresentationToken mo MathMLOperatorElement ms MathMLStringLitElement mrow MathMLPresentationContainer mphantom MathMLPresentationContainer merror MathMLPresentationContainer mstyle MathMLStyleElement mpadded MathMLPaddedElement mfenced MathMLFencedElement menclose MathMLEncloseElement maction MathMLActionElement mfrac MathMLFractionElement mroot MathMLRadicalElement msqrt MathMLRadicalElement msub MathMLScriptElement msup MathMLScriptElement msubsup MathMLScriptElement munder MathMLUnderOverElement mover MathMLUnderOverElement munderover MathMLUnderOverElement mmultiscripts MathMLMultiScriptsElement mtable MathMLTableElement mtr MathMLTableRowElement mlabeledtr MathMLLabeledRowElement mtd MathMLTableCellElement maligngroup MathMLAlignGroupElement malignmark MathMLAlignMarkElement
normalize
は、 DOM 2
で界面 Node
に移動しました。Node
界面では hasAttributes
method も定義されています (DOM 2)。 hasAttribute
との違いに注意。[7] IRC logs: freenode / #whatwg / 20110802 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20110802>
[8] IRC logs: freenode / #whatwg / 20111011 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20111011>
[9] Web Controls 1.0 ( ( 版)) <http://www.whatwg.org/specs/web-controls/current-work/#the-elementui>
[10] Web Applications Markup Language 1.0 ( ( 版)) <http://hixie.ch/specs/html/apps/web-apps-1#the-elementui>
Interface ElementExtended Methods getId Returns one of identifiers of the element. If the element does not have any identifier, "null" is returned. Note that an identifier might not be a valid XML name or might not be unique in the document, particularlly in case the original document is invalid. No Parameter Return Value DOMString An identifier of the element, or "null" if there is no identifier. No Exception
[65] SGML は、クラスに当たるものを要素型、 インスタンスに当たるものを要素と呼んで、 時折区別していました。
[12] 循環定義のように見えますが、おそらく原文では構成要素
が
component
かなにかなのでしょう。
[13] 開始タグ、終了タグが省略できるのは、それぞれ特定の条件を満たす場合のみです。 詳しくはそれぞれの説明を参照してください。また、 強制空要素では内容が必ず空になります。
[52] 要素型は、平たく言えば要素の種類。文書の意味構造を明示する言語である HTML 風に味付けした定義が >>50。
[17] 要素とは、 文書の構造上の単位です。 要素は要素型の実現値です。
タグは、 実体中で要素のはじめや終わりを識別するための記号列です。
これらはしばしば混同され、時には厳密な区別が意味を成さない場面もありますが、 多くの場合には分けて考えるべきものです。特に、 構造上の範囲である要素と、構造上の位置を示すタグを混同しないことは重要です。
[20] ある要素は、複数の体系における要素形式に同時に適合することができますが、 一つの体系の複数の要素形式に同時に適合することはできません。
ただし、ある要素が (その属性に関して) 複数または一つの体系の、 複数の属性形式に適合することは、 (特に禁止されていなければ) 可能です。
[53] 要素型と要素は、よくある種別 (級; クラス) と実現値 (インスタンス) の関係にあります。
要素と要素型の違いはさして重要でないことが多いので、歴史的にはいい加減に (多くの場合は要素型のことを要素と言ったりして) 扱ってきました。
[54] WebSGML (ISO 8879 TC2) では、 SGML
規格中の一部の要素
と書かれた箇所をばっさり要素型
に修正しています。
[57] 要素型の名前が要素型名です。そしてその要素型名がすなわち共通識別子 (GI) です。 SGML 的には要素型(名)よりも GI の方が脚光を浴びていたので、 混同があったんですかね?
[58] SGML で付番 (RANK
)
を使うとタグに記述する名前を省略できますけど、
それと要素
vs 要素型
vs GI
vs
タグ名
は何か関係があるのでしょうか? 詳しい人解説きぼん。
[10] Atom や AtomPub の仕様書では、「要素」は要素情報項目を意味します >>22, >>36。
[31] Delivery Context: Client Interfaces (DCCI) 1.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-DPF-20071221/#iddiv396386240>
[34] XBL 2.0 ( ( 版)) <http://dev.w3.org/2006/xbl2/Overview.html#the-elementxbl-interface>
[41] XQuery and XPath Data Model 3.0 ( ( 版)) <http://www.w3.org/TR/xpath-datamodel-3/#ElementNode>
[46] Shadow: define slots and slotables · whatwg/dom@a2b04df ( 版) <https://github.com/whatwg/dom/commit/a2b04df51b4342d7617c128e80e5aa892889d2e0>
[48] Add custom elements to HTML · whatwg/html@6e7eaa4 ( 版) <https://github.com/whatwg/html/commit/6e7eaa4bd2912965fd83766f99f984f249531f3a>
[72] [css-display] Don't export 'element'; now that Bikeshed is used outsi… (fantasai著, ) <https://github.com/w3c/csswg-drafts/commit/a9b7214d728d560feffc35d9fe7ad9f6b29ccf13>