在FireMonkey中根据XSD验证XML文件
我正在为32位和64位机器开发一个跨平台应用程序(用于Windows、Mac等)。 我有很多XML文件,需要根据它们的XSD进行验证 在Delphi XE3中有没有实现这一点的方法 我已经尝试过DTD验证,但总是出现“DTD禁止”错误。我也尝试过很多网站上提到的解决方案来解决这个错误,但没有成功 提前谢谢 下面是我使用的代码在FireMonkey中根据XSD验证XML文件,xml,delphi,firemonkey,xml-validation,xsd-validation,Xml,Delphi,Firemonkey,Xml Validation,Xsd Validation,我正在为32位和64位机器开发一个跨平台应用程序(用于Windows、Mac等)。 我有很多XML文件,需要根据它们的XSD进行验证 在Delphi XE3中有没有实现这一点的方法 我已经尝试过DTD验证,但总是出现“DTD禁止”错误。我也尝试过很多网站上提到的解决方案来解决这个错误,但没有成功 提前谢谢 下面是我使用的代码 function TForm2.ValidateXML(const xmlFile : TFileName) : boolean; var xmlDoc: TXMLDo
function TForm2.ValidateXML(const xmlFile : TFileName) : boolean;
var
xmlDoc: TXMLDocument;
begin
result := false;
xmlDoc := TXMLDocument.Create(nil) ;
try
xmlDoc.ParseOptions := [poResolveExternals, poValidateOnParse];
try
xmlDoc.LoadFromFile(xmlFile) ;
xmlDoc.Active := true; //this will validate
result := true;
except
on EX : EDOMParseError do
begin
ShowMessage('Invalid XML: ' + Ex.Message) ;
end;
end;
finally
xmlDoc := nil;
end;
end;
显然,您需要一个跨平台的验证器 也许()是一个选项,因为它可以在许多平台上的许多编程语言中使用
Libxml2的开源Pascal包装器可在上获得,谢谢您的回复。我在上述网站上尝试过,但似乎没有Delphi的例子。谢谢。我使用过,但在启动时遇到访问冲突。@user2531352那么这应该是一个新的SO问题