W3c definiuje tylko specyfikacje (XML, XSLT, DOM, itp.) I nie próbuje dopasować interfejsu API do żadnego konkretnego języka lub platformy.
Jest przeznaczony dla twórców analizatorów jako wytyczna do tworzenia produktu zgodnego z istniejącym kodem korzystającym z tych parserów.
Podczas budowania architektury aplikacji najlepiej jest zawijać wszystkie wywołania interfejsu API, aby można było kontrolować sposób uzyskiwania interfejsu API w różnych językach lub na różnych platformach.
W języku Java, JavaScript, C# lub jakimkolwiek innym używanym, utwórz klasę \ obiekt, który otacza dostęp do wywołań API. W JavaScript pomaga przy wykonywaniu kodu zgodnego z różnymi przeglądarkami, jeśli publikujesz rozwiązanie dla wielu platform, będziesz musiał tylko zaktualizować swoją klasę opakowania.
Oto przykład poniżej, jednak można uzyskać dowolną dowolność, zdefiniować własny interfejs opakowania i klasę bazową z klasami potomnymi, które mają charakter nadrzędny, aby zapewnić określone implementacje.
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;
Bo DOM jest okropny. Dużo wyprzedza 'Iterable' i domyślam się, że jest to po prostu całkowicie" port "specyfikacji W3C, bez względu na" podobieństwo Java ", i nikt tak naprawdę nie chciał wrócić, aby dowiedzieć się, jak zrobić API ładniejsza i nie łamliwa kompatybilność. (Zobacz także: 'Kalendarz'.) – millimoose
@millimoose To byłoby okropne - jeśli to prawda! Czy mamy jakieś dowody na to, czy po prostu zgadujemy tę część? W tej sprawie nie mogłem znaleźć żadnej dokumentacji. – zEro
Zakładasz, że takie dowody istnieją, ale ani JDK, ani Java nie zostały początkowo opracowane na otwartej przestrzeni. Nie jest to naprawdę miejsce, o które należy zapytać, czy chcesz wiedzieć, dlaczego mała grupa ludzi, z których żadna nie jest członkiem SO, nie wykonała danego połączenia wiele lat temu lub dlaczego nikt nie zdecydował inaczej w czasie interwencji. Możesz spróbować spojrzeć na stronę JSR, aby zobaczyć, czy istnieją konkretne propozycje związane z XML, które mogą mieć przyczyny odrzucenia: http://jcp.org/en/jsr/tech?listBy=1&listByType=tech. Najbliżej mogę znaleźć JDOM, który został wycofany po dziesięciu latach opieki nad nikim. – millimoose