w3cは仕様(XML、XSLT、DOMなど)を定義するだけで、APIを特定の言語やプラットフォームに合わせようとしていません。
これらのパーサーを使用する既存のコードに準拠する製品を作成するためのガイドラインとして、パーサーの開発者を対象としています。
アプリケーションフレームワークを構築する際には、すべてのAPI呼び出しをラップして、異なる言語または異なるプラットフォームでAPIへのアクセス方法を制御できるようにすることをお勧めします。
Java、JavaScript、C#などで使用する場合は、API呼び出しにラップするクラス\オブジェクトを作成します。 JavaScriptでは、クロスブラウザ対応のコードを作成するときに役立ちます。複数のプラットフォーム用のソリューションを公開する場合は、ラッパークラスを更新するだけで済みます。
以下の例がありますが、あなたが望むように気に入ったようになり、固有の実装を提供するために独自のラッパーインターフェイスと子クラスをオーバーライドした基本クラスを定義できます。
function XMLNode(xnode) {
this.xnode = xnode;
}
function getNodes(path, xnode) {
if (browseTYPE != IE) {
//Ordered SnapShot
if (xnode.evaluate)
fld = xnode.evaluate(path, xnode, null, 7, null);
else
fld = xnode.ownerDocument.evaluate(path, xnode, null, 7, null);
//We need a result wrapper here
if (fld != null) return new XMLSnapShotList(fld);
} else {
fld = xnode.selectSingleNode(path).childNodes;
//We need a result wrapper here
if (fld != null) return new XMLList(fld);
}
return null;
}
XMLNode.prototype.getNodes = getNodes;
DOMがひどいので、 'Iterable'よりもずっと前になっていますが、私の推測では、" Java-likeeness "とは関係なく、W3C仕様の完全な単純な"ポート "であり、APIの作り方より良いと互換性を破ることはありません。 (参照: 'カレンダー'。) – millimoose
@millimooseそれは恐ろしいだろう - もし本当なら!これについての証拠がありますか、それともこの部分を推測していますか?私はこれに関するどこにもドキュメンテーションを見つけることができませんでした。 – zEro
あなたはそのような証拠があると仮定しますが、JDKもJavaも最初は開かれていませんでした。何年も何年も前に、何人かのSOのメンバーでもない少数の人々が、なぜ呼び寄せをしたのか、誰もその間に他の人を決めるのを知りたいのであれば、これは本当に尋ねる場所ではありません。 JSRサイトを見て、拒否理由がある特定のXML関連の提案があるかどうかを調べることができます:http://jcp.org/ja/jsr/tech?listBy=1&listByType=tech。私が見つけることができる最も近いのは、10年間の誰も気遣っていないことから取り去られたJDOMのものです。 – millimoose