DOM Level 1

DOM1 (Web)

[2] DOM水準 (Level) 1 は、 W3C で初めて勧告になった DOM の仕様です。

構成

[9] DOM1 CoreDOM1 HTML が含まれていました。

[13] DOM1 Core は更に中核モジュール部分と DOM XML 部分に分かれていました。


[14] DOM1Netscape4JavaScriptDOM 部分と IE4 DOM を引き継いで初めて標準化されたものでした。 といっても Netscape4DOMIE4 DOM とはほとんど互換性がなく、 IE4 DOMデータモデルを整理したものを新規 API として規定したものでした。

[15] DOM1 で標準に含まれなかった既存の API は俗に DOM0 と呼ばれ、 非常によく用いられ WebブラウザーJavaScript の基盤となる部分でありながら HTML5 までWeb標準からは無視されていました。

[16] DOM1 の内容はすべて DOM2 にも引き継がれています。 いくつかの変更点を除いて技術的な内容も仕様書の構成もほとんど同じとなっています。

[17] 形式的には DOM2 が公開された後も DOM1W3C勧告として存続しています。 当初は DOM1 の第2版の開発が並行して進められていましたが、 DOM2 の開発に集中することを理由に中断されました。

[18] 現在は DOM1 の内容は Web IDLDOM StandardHTML Standard で規定されています。

歴史

[6] 1998年に最初の W3C勧告が出版されました。

[7] その後第2版も開発が始められましたが、 DOM2 の開発に集中することを理由に中止されています。

[8] DOM2 には完全に含まれていますが (一部仕様変更あり)、 DOM1DOM2 の出版後も廃止はされずに残されているようです。

[1] DOM 水準1 API の変遷:

WD 971009WD 971209WD 980318WD 980416WD 980720PR 980818REC 981001WD 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
createPIcreateProcessingInstruction
createAttributecreateAttribute
createAttributeList
createTextIterator
createEntity
createEntityReference
getElementsByTagName
[Core]Node
nodeName[R]
nodeValue[RW]
getNodeTypenodeType[R]
getParentNodeparentNode[R]
getChildrengetChildNodeschildNodes[R]
getFirstChildfirstChild[R]
lastChild[R]
getPreviousSiblingpreviousSibling[R]
getNextSiblingnextSibling[R]
attributes[R]
ownerDocument[R]
insertChildinsertBefore
replaceChild
removeChild
appendChild
hasChildrenhasChildNodeshasChildNodes
cloneNode
equals
getElementsByTagName
[XML]XMLNode
getParentXMLNode
getChildXMLNodes
hasChildXMLNodes
getFirstXMLChild
getPreviousXMLSibling
getNextXMLSibling
getEntityReference
getEntityDeclaration
[Core]NodeListXX[Core]NodeList
getEnumerator
itemXXitem
replace
append
prepend
insert
remove
getLengthXXsize[R]length[R]
[Core]EditableNodeList
replace
insert
remove
[Core]NodeEnumerator[Core]NodeIterator
getLength
getCurrentgetCurrentPos
atStartXatFirst
atEndXatLast
getNexttoNexttoNextNode
getPrevioustoPrevioustoPrevNode
getFirsttoFirsttoFirstNode
getLasttoLasttoLastNode
toNthmoveTo
toNode
[Core]TreeIterator : NodeIterator
numChildren
numPreviousSiblings
numNextSiblings
toParent
toPreviousSibling
toNextSibling
toFirstChild
toLastChild
toNthChild
[Core]NamedNodeList[Core]AttributeList[Core]NamedNodeMap
getNodegetAttributegetNamedItem
setNodesetAttributesetNamedItem
removeremoveNamedItem
itemitem
getLengthsize[R]length[R]
getEnumerator
[Core]Attribute : Node[Core]Attr : Node
name[RW]getNamename[R]
specified[RW]specified[R]
value[RW]getValuevalue[RW]
(definition[RW])
toString
[Core]Element : Node
tagName[RW]getTagNametagName[R]
attributes[RW]attributesgetAttributes
getAttribute
setAttributesetAttribute
removeAttribute
getAttributeNode
setAttributeNode
removeAttributeNode
getElementsByTagNameXgetElementsByTagName
normalize
[Core]Text : Node[Core]Data : Node[Core]CharacterData : Node
data[RW]data[RW]
size[R]length[R]
splicesubstringsubstringData
appendappendData
insertinsertData
deletedeleteData
replacereplaceData
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 : NodeXX[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 : NodeX[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 に関する機能のほとんどは削除され、その後の DOM2DOM3 でも復活していません。 (DOM3 AS に似た機能はありますが、 連続性は無さそうです。)

[11] DOM0 とは (DOM HTML の一部を除き) カバーしている機能がほぼ重なっていません。 DOM1DOM0 を包含するものではなく、後の Web Applications 1.0 (現 HTML Standard) まで10年近く DOM0 は標準不在状態が続きました。 W3C は当初から DOM0 部分を DOM1 に含めるつもりは無かったように見えます。

[12] DOM1IE4 DOM の影響を大きく受けていますが、 API としての互換性はそれほど高くありません。 IENetscape との第1次ブラウザー戦争の末期に当たり、両者の提案を盛り込みつつどちらとも異なる折衷案となったと思われます。 IEDOM1 は比較的早い時期に実装しました。 NetscapeGecko ベースとなった版で実装しました。

[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] W3CW3C勧告を廃止しないで放置してたから韓国が勘違いしちゃったのかな? 罪深いな。

[24] W3C は SE WD を出版して放置してたんだが、それすら反映されているようには見えない。 古い不具合がある FE をわざわざ KS として「普及」させようとするの、 もう有害行為だろ?