Hallo zusammen,
ich habe ein Projekt, in dem ich in Delphi
Rad Studio 2009 eine
XML-Datei (bisher als IXMLDocument implementiert) gegen ein XSD-Schema validieren muss.
Folgende Schritte habe ich probiert bzw. herausgefunden:
- XSD-Validierung geht nicht über die Standard-Interfaces (IXMLDocument)
- Ich habe mir aus verschiedenen Quellen eine angepasste Version der XMLValidation zusammengebaut.
http://stackoverflow.com/questions/4...sxml-in-delphi
- Dazu habe ich die MSXML6 in mein Projekt importiert, und verwende u.a. CoDOMDocument40 und CoXMLSchemaCache40 (s.u.)
Code:
// Typbib.: C:\Windows\System32\msxml6.dll (1)
// LIBID: {F5078F18-C551-11D3-89B9-0000F81FE221}
- Die Validierung funktioniert auf meinem PC tadellos (!), auf anderen PCs bekomme ich einen Fehler (Fehlerhafte Parameter in MSXML4.dll), selbst nachdem ich diverse Versionen der
MSXML 4 und 6 installiert habe.
- Ich würde am liebsten MSXML6 nehmen (deshalb habe ich auch die msxml6 importiert), damit ich auf dem Client-PC nichts installieren muss (ist ab Vista vorinstalliert, richtig?)
Stelle ich auf CoDOMDocument60 und CoXMLSchemaCache60 um, klappt es nicht mehr mit IXMLDocument. Kann ich in Delphi 2009 die msxml6 als Provider verwernden? Oder soll ich lieber die nativen Funktionen verwenden? Dazu muss ich aber viel Code umschreiben, deshalb frage ich lieber vorher ob es mglw. hilft.
- Was mache ich falsch, abgesehen davon die Versionen zu vermischen? Müsste es mit MSXML4 klappen, wenn ich es anstelle von MSXML6 importiere? Dann müsste ich die MSXML6 ins Setup aufnehmen, das wäre nicht schön aber möglich.
- Gibt es eine andere Komponente, mit der ich XSD validieren kann? Kann auch etwas kosten.
Danke für die Hilfe und viele Grüße
Eike