uses
MSXML,
Xml.XMLIntf,
XML.XMLDoc,
XML.XMLDOM;
function Validate_XML(xmlFile:String): Boolean;
var
XMLDoc: IXMLDocument;
T0,T1,T2,T3,T4:String;
begin
XMLDoc := NewXMLDocument;
XMLDoc.ParseOptions := [poResolveExternals, poValidateOnParse];
Result := True;
try
XMLDoc.LoadFromFile(xmlFile) ;
XMLDoc.Active := true;
except
on E: EDomParseError do
begin
If LastDelimiter('\',E.URL) = 0 then T0:= Copy(E.URL,LastDelimiter('/',E.URL)+1,50);
If LastDelimiter('/',E.URL) = 0 then T0:= Copy(E.URL,LastDelimiter('\',E.URL)+1,50);
T1:= 'Bei der Validierung der ' + T0 + ' wurde folgender Fehler festgestellt:' + #13 +#13;
T2:= E.Reason + #13; // Grund
T3:= 'Fehler in Zeile : ' + IntToStr(E.Line) + #13; // Zeile
T4:= 'Text der Zeile : ' + Trim(E.SrcText) + #13 + #13; // Zeilentext
If E.ErrorCode <> -2146697210 then
begin
Application.MessageBox(Pchar(T1+T2+T3+T4),Pchar('Validierungsfehler'),16);
end;
Result:=False;
end;
end;
end;