

* createDocumentType (DOM 2+ DOMImplementation 界面)

[1] DOM 2 以上の method
[CODE[([CODE[[[DocumentType]]]]) := [VAR(DOMi)[[[DOMImplementation]]]].[CODE(DOMm)[createDocumentType]] ([VAR(DOMp)[([CODE(DOM)[[[DOMString]]]]) qualifiedName]], [VAR(DOMp)[([CODE(DOM)[DOMString]]) publicId]], [VAR(DOMp)[([CODE(DOM)[DOMString]]) systemId]])]]
を使うと、[[文書型節]]を作成することができます。

[2] 結果 : 
,返値	,[CODE(DOM)[DocumentType]]	,生成された文書型節
,例外 [CODE(DOM)[[[DOMException]]]]	,[CODE(DOMconst)[[[INVALID_CHARACTER_ERR]]]]	,修飾名に不正な文字が含まれる
,例外	,[CODE(DOM)[DOMException]]	,[CODE(DOMconst)[[[NAMESPACE_ERR]]]]	,修飾名が不正

得られる文書型節は空の状態で、
[CODE(DOMa)[[[ownerDocument]]]] も [CODE(DOM)[[[null]]]]
です。

[3] HTML のみの実装はこの method を実装しなくても構いません。

- [DOM2] ''Document Object Model Core'' <http://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType>

[4]
[CITE@en[DOM Core: DOMImplementation.createDocumentType(qualifiedName) 	requires namespace support]] ([[Philippe Le Hegaret]] 著, [CODE[2007-03-21 06:19:42 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-webapi/2007Mar/0089>
([[名無しさん]] [WEAK[2007-03-21 04:23:06 +00:00]])

[5]
[[DOM水準2]], [[DOM水準3]]によれば、
[[XML 1.0]] の[[名前]]でなければ
[CODE(DOMc)@en[[[INVALID_CHARACTER_ERR]]]] です。
([[名無しさん]])

[6]
[[公開識別子]]や[[システム識別子]]を指定しないで
[CODE(DOMi)@en[[[DocumentType]]]] [[節点]]を作ることができるのかどうかは不明です。
[CODE(DOMp)@en[[[publicId]]]] や [CODE(DOMp)@en[[[systemId]]]]
に [CODE(IDL)@en[[[null]]]] を指定できるとは明記されていません。
また、 [[XML]] として正しい[[公開識別子]]や[[システム識別子]]かどうかの検査が行われるという記述はありません。
([[名無しさん]])

[7]
>>5 訂正: [[DOM水準3]]では。
([[名無しさん]])

[8]
[[修飾名]]が正しいかどうかの[[XML]]の[[版]]については
[CODE(DOMm)@en[[[createAttributeNS]]]] を参照。
([[名無しさん]])


[9]
実装が [CODE(DOM)@en[[[XML]]]] [[機能]]に対応しておらず、
[Q@en[Document]] を介して晒されるのが [[XML名前空間]]に対応していない[[マーク付け言語]]なら
[CODE(DOMc)@en[[[NAMESPACE_ERR]]]] とありますが、
どの [Q@en[Document]] なのか不明です。
([[名無しさん]])


[[#comment]]


* memo