![]() |
IXMLDocument versionsunabhängig?
Hi,
Ich brauche als XML-Parser eigentlich nur das IXMLDOMDocument aus MSXML2.0 (und nicht das IXMLDOMDocument2, das erst seit MSXML3 dabei ist). Nun steht da aber im SDK geschrieben, daß seit MSXML4.0 die GUIDs und ProgIDs nicht mehr versionsunabhängig sind. Was bedeutet das für mich als COM-Neuling? Ich will das Interface unabhängig von der Version der implementierenden Bibliothek nutzen. Will heißen, ich hätte gerne ein XMLDOMDocument, daß auf jedem System funktioniert, auf dem irgendeine MSXML-Version seit 2.0 läuft. Geht das irgendwie, wenn ja, wie? Sinn der Übung ist es, den Anwendern zu ersparen, eine aktuelle MSXML-Library runterzuladen, wenn sie nicht 4.0 haben, da eine XML-Bibliothek schon seit Win98 beim System dabei ist (dort ist es MSXML2.0). Tschüß Thomas P.S.: Bitte nicht auf OmniXML verweisen, irgendwie gefällt mir das dortige Interface nicht (ist so unschön zu programmieren :mrgreen:) |
Re: IXMLDocument versionsunabhängig?
Zitat:
XML 4 dagegen registriert sich wohl ein eigenes Interface, das unabhängig von den Vorversionen ist. Zitat:
Ich müsste mal schauen, ich habe irgendwo mal ein Redist-Paket gesehen, das nur die Bibliotheken für XML 3 enthielt. Das war also nicht so groß. Aber ich weiß jetzt nicht ob sich das Microsoft nur für eigene Zwecke geschrieben hat, oder ob man das auch als Entwickler benutzen und bspw. dem eigenen Setup beilegen darf. |
Re: IXMLDocument versionsunabhängig?
Ahh, jetzt habe im SDK verschiedene ProgIDs für die gleiche Klasse gefunden. Anscheinend gibt es für ältere Interfaces verschiedene IDs für das gleiche Objekt. Eine trug dabei die Versionsnummer und die andere nicht (ProgIDs). So gibt es beispielsweise aus der MSXML3.0 ein "MSXML2.DOMDocument" und ein "MSXML2.DOMDocument.3.0". Offenbar kann man mit letzterer explizit die Version festlegen (was passiert mit "MSXML2.Document.2.6" wenn MSXML3 installiert wurde, daß ja anscheinend die alten Versionen überschrieben hat?) und erstere benutzt die Standard-Implementierung (die aktuellste im System registrierte).
Bei der Dokumentation zum MSXML4 fehlen die Angaben der Versionslosen Interfaces. Anscheinend ist es weiterhin das gleiche Schema (z.B. "Msxml2.DOMDocument.4.0"), aber MSXML registriert nicht mehr die generischen (versionslosen) Interfaces sondern überlässt sie den Vorgängern (MSXML3). Zitat:
Demnach müsste es eigentlich genügen, wenn ich mein Objekt über die GUID von "MSXML2.DOMDocument" erzeuge, ohne irgendwelche Interfaceversion dahinter. Oder hab' ich was übersehen? Zitat:
Andernfalls würde ich dir natürlich zustimmen und auch die MSXML4 benutzen, wenn die Dateien mehrere Megabyte groß wären und Gebrauch von Schemas, DTDs und sonstigem Getier machen würden. |
Re: IXMLDocument versionsunabhängig?
Zitat:
Zitat:
Zitat:
|
Re: IXMLDocument versionsunabhängig?
Zitat:
Außerdem hätte ich sowas auch noch selbst hingekriegt. Aber das wäre dann das erste Programm, wo es tatsächlich heißt "Bitte Installieren Sie Bibliothek X in einer Version kleiner als Y.ZZ" :mrgreen:. Danke für deine Hilfe! |
Re: IXMLDocument versionsunabhängig?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz