Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在FireMonkey中根据XSD验证XML文件_Xml_Delphi_Firemonkey_Xml Validation_Xsd Validation - Fatal编程技术网

在FireMonkey中根据XSD验证XML文件

在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

我正在为32位和64位机器开发一个跨平台应用程序(用于Windows、Mac等)。 我有很多XML文件,需要根据它们的XSD进行验证

在Delphi XE3中有没有实现这一点的方法

我已经尝试过DTD验证,但总是出现“DTD禁止”错误。我也尝试过很多网站上提到的解决方案来解决这个错误,但没有成功

提前谢谢

下面是我使用的代码

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问题