[2] DOM水準1 は、 W3C で初めて勧告になった DOM の仕様です。
[9] DOM1 Core と DOM1 HTML が含まれていました。
[13] DOM1 Core は更に中核モジュール部分と DOM XML 部分に分かれていました。
[14] DOM1 は Netscape4 の JavaScript の DOM 部分と IE4 DOM を引き継いで初めて標準化されたものでした。 といっても Netscape4 の DOM や IE4 DOM とはほとんど互換性がなく、 IE4 DOM のデータモデルを整理したものを新規 API として規定したものでした。
[16] DOM1 の内容はすべて DOM2 にも引き継がれています。 いくつかの変更点を除いて技術的な内容も仕様書の構成もほとんど同じとなっています。
[17] 形式的には DOM2 が公開された後も DOM1 は W3C勧告として存続しています。 当初は DOM1 の第2版の開発が並行して進められていましたが、 DOM2 の開発に集中することを理由に中断されました。
[18] 現在は DOM1 の内容は Web IDL、DOM Standard、 HTML Standard で規定されています。
[7] その後第2版も開発が始められましたが、 DOM2 の開発に集中することを理由に中止されています。
[8] DOM2 には完全に含まれていますが (一部仕様変更あり)、 DOM1 は DOM2 の出版後も廃止はされずに残されているようです。
[1] DOM 水準1 API の変遷:
| WD 971009 | WD 971209 | WD 980318 | WD 980416 | WD 980720 | PR 980818 | REC 981001 | WD 000929 |
| [Core]DOM | [Core]DOMImplementation | ||||||
| getFactory | |||||||
| createDocument | |||||||
| hasFeature | |||||||
| [Core]DOMFactory | |||||||
| createDocument | |||||||
| createDocumentContext | |||||||
| createElement | |||||||
| createTextNode | |||||||
| createComment | |||||||
| createPI | |||||||
| createAttribute | |||||||
| [Core]DocumentContext | |||||||
| document[RW] | |||||||
| [Core]DocumentFragment | |||||||
| masterDoc[RW] | masterDoc[R] | ||||||
| [Core]Document : Node | [Core]Document : DocumentFragment | [Core]Document : Node | |||||
| documentType[RW] | doctype[R] | ||||||
| implementation[R] | |||||||
| documentElement[RW] | documentElement[R] | ||||||
| contextInfo | |||||||
| createDocumentContext | |||||||
| createElement | |||||||
| createDocumentFragment | |||||||
| createTextNode | |||||||
| createComment | |||||||
| createCDATASection | |||||||
| createPI | createProcessingInstruction | ||||||
| createAttribute | createAttribute | ||||||
| createAttributeList | |||||||
| createTextIterator | |||||||
| createEntity | |||||||
| createEntityReference | |||||||
| getElementsByTagName | |||||||
| [Core]Node | |||||||
| nodeName[R] | |||||||
| nodeValue[RW] | |||||||
| getNodeType | nodeType[R] | ||||||
| getParentNode | parentNode[R] | ||||||
| getChildren | getChildNodes | childNodes[R] | |||||
| getFirstChild | firstChild[R] | ||||||
| lastChild[R] | |||||||
| getPreviousSibling | previousSibling[R] | ||||||
| getNextSibling | nextSibling[R] | ||||||
| attributes[R] | |||||||
| ownerDocument[R] | |||||||
| insertChild | insertBefore | ||||||
| replaceChild | |||||||
| removeChild | |||||||
| appendChild | |||||||
| hasChildren | hasChildNodes | hasChildNodes | |||||
| cloneNode | |||||||
| equals | |||||||
| getElementsByTagName | |||||||
| [XML]XMLNode | |||||||
| getParentXMLNode | |||||||
| getChildXMLNodes | |||||||
| hasChildXMLNodes | |||||||
| getFirstXMLChild | |||||||
| getPreviousXMLSibling | |||||||
| getNextXMLSibling | |||||||
| getEntityReference | |||||||
| getEntityDeclaration | |||||||
| [Core]NodeList | X | X | [Core]NodeList | ||||
| getEnumerator | |||||||
| item | X | X | item | ||||
| replace | |||||||
| append | |||||||
| prepend | |||||||
| insert | |||||||
| remove | |||||||
| getLength | X | X | size[R] | length[R] | |||
| [Core]EditableNodeList | |||||||
| replace | |||||||
| insert | |||||||
| remove | |||||||
| [Core]NodeEnumerator | [Core]NodeIterator | ||||||
| getLength | |||||||
| getCurrent | getCurrentPos | ||||||
| atStart | X | atFirst | |||||
| atEnd | X | atLast | |||||
| getNext | toNext | toNextNode | |||||
| getPrevious | toPrevious | toPrevNode | |||||
| getFirst | toFirst | toFirstNode | |||||
| getLast | toLast | toLastNode | |||||
| toNth | moveTo | ||||||
| toNode | |||||||
| [Core]TreeIterator : NodeIterator | |||||||
| numChildren | |||||||
| numPreviousSiblings | |||||||
| numNextSiblings | |||||||
| toParent | |||||||
| toPreviousSibling | |||||||
| toNextSibling | |||||||
| toFirstChild | |||||||
| toLastChild | |||||||
| toNthChild | |||||||
| [Core]NamedNodeList | [Core]AttributeList | [Core]NamedNodeMap | |||||
| getNode | getAttribute | getNamedItem | |||||
| setNode | setAttribute | setNamedItem | |||||
| remove | removeNamedItem | ||||||
| item | item | ||||||
| getLength | size[R] | length[R] | |||||
| getEnumerator | |||||||
| [Core]Attribute : Node | [Core]Attr : Node | ||||||
| name[RW] | getName | name[R] | |||||
| specified[RW] | specified[R] | ||||||
| value[RW] | getValue | value[RW] | |||||
| (definition[RW]) | |||||||
| toString | |||||||
| [Core]Element : Node | |||||||
| tagName[RW] | getTagName | tagName[R] | |||||
| attributes[RW] | attributes | getAttributes | |||||
| getAttribute | |||||||
| setAttribute | setAttribute | ||||||
| removeAttribute | |||||||
| getAttributeNode | |||||||
| setAttributeNode | |||||||
| removeAttributeNode | |||||||
| getElementsByTagName | X | getElementsByTagName | |||||
| normalize | |||||||
| [Core]Text : Node | [Core]Data : Node | [Core]CharacterData : Node | |||||
| data[RW] | data[RW] | ||||||
| size[R] | length[R] | ||||||
| splice | substring | substringData | |||||
| append | appendData | ||||||
| insert | insertData | ||||||
| delete | deleteData | ||||||
| replace | replaceData | ||||||
| isIgnorableWhitespace[RW] | |||||||
| [Core]Text : Data | [Core]Text : CharacterData | ||||||
| splitText | |||||||
| joinText | |||||||
| [Core]Comment : Node | [Core]Comment : Data | [Core]Comment : CharacterData | |||||
| data[RW] | |||||||
| [Core]PI : Node | [Core]ProcessingInstruction : Node | [XML]ProcessingInstruction : Node | |||||
| name[RW] | target[RW] | target[R] | |||||
| data[RW] | |||||||
| [Core]Reference : Node | X | X | [XML]EntityReference : Node | ||||
| name[RW] | |||||||
| (definition[RW]) | |||||||
| isExpanded[RW] | |||||||
| expand | |||||||
| [Core]NamedCharacterReferemce : Reference | |||||||
| getReplacementText | |||||||
| [Core]NumericCharacterReference : Reference | |||||||
| character[RW] | |||||||
| original[RW] | |||||||
| [XML]DocumentType : Node | |||||||
| name[RW] | name[R] | ||||||
| externalSubset[RW] | |||||||
| internalSubset[RW] | |||||||
| generalEntities[RW] | entities[R] | ||||||
| paremeterEntities[RW] | |||||||
| notations[RW] | notations[R] | ||||||
| elementTypes[RW] | |||||||
| [XML]ElementDefinition : Node | |||||||
| name[RW] | |||||||
| contentType[RW] | |||||||
| contentModel[RW] | |||||||
| attributeDefinitions[RW] | |||||||
| inclusions[RW] | |||||||
| exceptions[RW] | |||||||
| [XML]PCDATAToken : Node | |||||||
| [XML]ElementToken : Node | |||||||
| name[RW] | |||||||
| occurence[RW] | |||||||
| [XML]ModelGroup : Node | |||||||
| occurrence[RW] | |||||||
| connector[RW] | |||||||
| tokens[RW] | |||||||
| [XML]AttributeDefinition : Node | |||||||
| name[RW] | |||||||
| allowedTokens[RW] | |||||||
| declaredType[RW] | |||||||
| defaultType[RW] | |||||||
| defaultValue[RW] | |||||||
| [XML]Notation : Node | |||||||
| name[RW] | |||||||
| isPublic[RW] | |||||||
| publicIdentifier[RW] | publicId[RW] | publicId[R] | |||||
| systemIdentifier[RW] | systemId[RW] | systemId[R] | |||||
| [XML]CDATASection : Node | X | [XML]CDATASection : Text | |||||
| content[RW] | |||||||
| [XML]ConditionalSection : Node | |||||||
| included[RW] | |||||||
| condition[RW] | |||||||
| content[RW] | |||||||
| ([XML]Entity : Node) | X | [XML]EntityDeclaration : Node | [XML]Entity : Node | ||||
| (name[RW]) | |||||||
| (isParameterEntity[RW]) | |||||||
| replacementString[RW] | |||||||
| replacementSubtree[RW] | |||||||
| publicId[RW] | publicId[R] | ||||||
| systemId[RW] | systemId[R] | ||||||
| notationName[RW] | notationName[R] | ||||||
| ([XML]InternalEntity : Entity) | |||||||
| (content[RW]) | |||||||
| ([XML]ExternalEntity : Entity) | |||||||
| (isNDATA[RW]) | |||||||
| (isPublic[RW]) | |||||||
| (publicIdentifier[RW]) | |||||||
| (systemIdentifier[RW]) | |||||||
| ([XML]ExternalTextEntity : ExternalEntity) | |||||||
| (content[RW]) | |||||||
| ([XML]ExternalNDATAEntity : ExternalEntity) | |||||||
| (notation[RW]) | |||||||
| (content[RW]) | |||||||
| ([XML]NDATA : Node) | |||||||
| (content[RW]) | |||||||
| [HTML]HTMLDocument : Document | - | [HTML]HTMLDocument : Document | |||||
| title[RW] | |||||||
| referrer[RW] | - | referrer[RW] | referrer[R] | ||||
| fileSize[RW] | - | fileSize[RW] | fileSize[R] | ||||
| fileCreatedDate[RW] | - | fileCreatedDate[RW] | fileCreatedDate[R] | ||||
| fileModifiedDate[RW] | - | fileModifiedDate[RW] | fileModifiedDate[R] | ||||
| fileUpdatedDate[RW] | - | fileUpdatedDate[RW] | fileUpdatedDate[R] | ||||
| domain[RW] | domain[R] | ||||||
| URL[RW] | URL[R] | ||||||
| body[RW] | - | body[RW] | |||||
| images[RW] (getImages) | - | images[RW] (getImages) | images[R] | ||||
| applets[RW] (getApplets) | - | applets[RW] (getApplets) | applets[R] | ||||
| links[RW] (getLinks) | - | links[RW] (getLinks) | links[R] | ||||
| forms[RW] (getForms) | - | forms[RW] (getForms) | forms[R] | ||||
| anchors[RW] (getAnchors) | - | anchors[RW] (getAnchors) | anchors[R] | ||||
| (getScripts) | |||||||
| location[RW] | |||||||
| cookie[RW] (getCookie, setCookie) | - | cookie[RW] (getCookie, setCookie) | cookie[RW] | ||||
| open | |||||||
| close | |||||||
| write | |||||||
| writeln | |||||||
| getElementById | |||||||
| getElementsByName | |||||||
| (alinkColor[RW]) | |||||||
| (background[RW]) | |||||||
| (bgColor[RW]) | |||||||
| (fgColor[RW]) | |||||||
| (linkColor[RW]) | |||||||
| (vlinkColor[RW]) | |||||||
| [HTML]HTMLLocation | |||||||
| href[RW] | |||||||
| protocol[RW] | |||||||
| host[RW] | |||||||
| hostname[RW] | |||||||
| port[RW] | |||||||
| pathname[RW] | |||||||
| search[RW] | |||||||
| hash[RW] | |||||||
| reload | |||||||
| replace | |||||||
| [HTML]HTMLElement : Element | - | [HTML]HTMLElement : Element | |||||
| (id[RW]) | - | (id[RW]) | id[RW] | ||||
| title[RW] | - | title[RW] | |||||
| lang[RW] | - | lang[RW] | |||||
| dir[RW] | - | dir[RW] | |||||
| className (className[RW]) | - | className[RW] | |||||
| style | - | style[RW] | (style[RW]) | ||||
| (parentElement[RW]) | |||||||
| (onClick[RW]) | |||||||
| (onDblClick[RW]) | |||||||
| (onKeyDown[RW]) | |||||||
| (onKeyUp[RW]) | |||||||
| (onKeyPress[RW]) | |||||||
| (onMouseOut[RW]) | |||||||
| (onMouseOver[RW]) | |||||||
| (onMouseMove[RW]) | |||||||
| (onMouseUp[RW]) | |||||||
| (onMouseDown[RW]) | |||||||
| (all[RW]) | |||||||
| (document[RW]) | |||||||
| (contains) | |||||||
| (addAttribute) | |||||||
| (setAttribute) | |||||||
| (removeAttribute) | |||||||
| ([HTML]NamedNodeList : NodeList) | - | ([HTML]NamedNodeList) | [HTML]HTMLCollection | ||||
| (length[R]) | length[R] | ||||||
| (item) | item | ||||||
| (namedItem) | namedItem | ||||||
注意: HTML モジュールは一部を除き省略しています。
注意: 名前や機能がほぼ同じものを行にまとめています。 その semantics などは異なることがあります。
注意: 丸括弧に入れたのは、本文に出てこないものの IDL 定義には存在しているものや、予約とされているものです。
[10] 初期案にあった DTD に関する機能のほとんどは削除され、その後の DOM2 や DOM3 でも復活していません。 (DOM3 AS に似た機能はありますが、 連続性は無さそうです。)
[11] DOM0 とは (DOM HTML の一部を除き) カバーしている機能がほぼ重なっていません。 DOM1 は DOM0 を包含するものではなく、後の Web Applications 1.0 (現 HTML Standard) まで10年近く DOM0 は標準不在状態が続きました。 W3C は当初から DOM0 部分を DOM1 に含めるつもりは無かったように見えます。
[12] DOM1 は IE4 DOM の影響を大きく受けていますが、 API としての互換性はそれほど高くありません。 IE と Netscape との第1次ブラウザー戦争の末期に当たり、両者の提案を盛り込みつつどちらとも異なる折衷案となったと思われます。 IE は DOM1 は比較的早い時期に実装しました。 Netscape は Gecko ベースとなった版で実装しました。
[19] Mark ElementTraversal Rec as obsolete · Issue #96 · w3c/WebPlatformWG () https://github.com/w3c/WebPlatformWG/issues/96
[20] KS X 6045:2004, KS X 6045:2014
[21] にこんなの出版するの時代遅れもいいところだし、 に何を改正したのかも謎で意味不明すぎる。 その後も廃止されてないのおかしすぎる。
[23] 解説にも何を改正したのか書いてないし。制定理由も 「世界的に普及しているDOMを国内で普及させるため」 とかわけのわからないことが書いてある。
[22] W3C が W3C勧告を廃止しないで放置してたから韓国が勘違いしちゃったのかな? 罪深いな。
[24] W3C は SE WD を出版して放置してたんだが、それすら反映されているようには見えない。 古い不具合がある FE をわざわざ KS として「普及」させようとするの、 もう有害行為だろ?