[11] [DFN[[[MSXML]]]] は、 [[Microsoft]] による [[XML]] の実装です。

[12] 
かつては [[IE]] が [[XML]] の処理に用いていました。

[13] 
その他色々な [[Windows]] [[アプリケーション]]が [[XML]]
を処理するために使っていました。

* 実装

- [1] ''MSXML に XHTML 1.1 を解析させる - DTD 関連'' <http://www.satoshii.org/markup/dtd/xhtml11-msxml>

[2]
[PRE(XML)[
<!ATTLIST foo xmlns CDATA #FIXED "http://foo.example/">
]PRE]

なんてやると、名前空間の既定属性宣言は対応していないとか言って処理してくれない、
というのは有名な話。
こりゃ XML/XML 名前空間適合は名乗れないな。
([[名無しさん]])

[3]
[PRE(XML)[
<!ENTITY foo "<foo:bar/>">
]PRE]

のようにすると、接頭辞 [SAMP(XML)[foo]] が宣言されていないと言われる。
これも MSXML が実体置換文を文書実現値より先に処理しているのが原因。
やっぱり不適合だ。
([[名無しさん]])

[4]
>>3 に [SAMP(XMLa)[xmlns:foo]] 属性を補ったところで、
なぜかその [SAMP(XMLe)[foo:bar]] 要素は文書のはじめのほう (詳しくは調べていない) に並べられる。参照していないのにだよ。
([[名無しさん]])

[5]
そしてなぜか、 XML 根要素の上には [CODE[BODY]] 要素節があって、更に上には [CODE[HTML]] 要素 (これが[[文書要素]]) 節があるらしい。
([[DOM]] 属性 [CODE(DOMa)[[[documentElement]]]] が指すのはその [CODE[HTML]] 要素節。)
いったいなんだというのか。

なお、 >>2-4 は WinIE 6.0 + MSXML での話。
([[名無しさん]])

[6]
[CITE[Microsoft XML パーサーのバージョン一覧]] <http://support.microsoft.com/default.aspx?scid=kb;JA;269238>
([[名無しさん]])

[7]

- <https://suika.suikawiki.org/~wakaba/-temp/test/xml/dtd/model/empty-peref-3.xml>
- <https://suika.suikawiki.org/~wakaba/-temp/test/xml/dtd/model/empty-peref-4.xml>

[[内容モデル]]中で[[参照]]される[[引数実体]]の[[実体文]]に、
[[名前]]に置換される[[実体参照]]と空の[[実体]]への[[参照]]が連続していると、
次の[[実体宣言]]で[Q[この場所ではスペースが許可されません。]]というよくわからないエラーがでる。
([[名無しさん]] [WEAK[2006-09-10 11:07:08 +00:00]])

[8] [CITE[Hawk's W3 Laboratory : XML : JavaScriptでXMLを扱う方法]] ([TIME[2009-01-04 12:36:07 +09:00]] 版) <http://web.archive.org/web/20060902115316/www.hawk.34sp.com/stdpls/xml/js_xml.html>

>
ProgIDとMSXMLのバージョンについて、現時点で調べが付いている部分のメモ。
>
Microsoft.XMLDOM … 使用されるバージョン≦3.0。IE 6.0以降がインストールされている場合は無条件で3.0。IE 5.Xを使用している場合、MSXML 3.0をxmlinst.exeを使用して置換モードでインストールした場合には3.0。それ以外の場合には同梱されているMSXMLのバージョン(2.X)。
>
MSXML.DOMDocument … 基本的にMicrosoft.XMLDOMと同じ。
Msxml2.DOMDocument … MSXML 3.0がインストールされている場合のみ使用可能。使用されるのは必ず3.0。
Msxml2.DOMDocument.3.0 … 必ず3.0。
Msxml2.DOMDocument.4.0 … 必ず4.0。
>
基本的に、バージョンを明示しないProgIDでは、バージョン3.0までしか使用されない(参考
<http://www.microsoft.com/japan/msdn/xml/msxml/whatsnew40rtm.asp>、参考2
<http://www.microsoft.com/japan/developer/workshop/xml/general/replacemode.asp>)。 

* 同一起源方針との関係

[9] [CODE@en[[[Microsoft.XMLDOM]]]] は[[同一起源方針]]を無視して他の[[ドメイン]]の [[XML]] を読み込めるといわれていますが、
[[Windows XP]] + [[IE6]]、[[IE8]] では確認できませんでした。

* テスト・ケース

[10] [CITE[Index of /~wakaba/-temp/test/dom/document/ls]] ([TIME[2011-04-24 12:18:40 +09:00]] 版) <https://suika.suikawiki.org/~wakaba/-temp/test/dom/document/ls/>

