5

クロスプラットフォーム アプリケーション (Windows、Mac など) および 32 ビットおよび 64 ビット マシン用のアプリケーションを開発しています。XSDに対して検証する必要がある XML ファイルがたくさんあります。

Delphi XE3 でこれを行う方法はありますか?

DTD 検証を試みましたが、常に「DTD 禁止」エラーが発生します。このエラーを解決するために、多くの Web サイトで言及されている解決策も試しましたが、成功しませんでした。

前もって感謝します。

以下は私が使用したコードです...

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;
4

1 に答える 1

2

明らかに、クロスプラットフォームのバリデーターが必要です。

おそらく、 Libxml2 ( http://xmlsoft.org/ ) は、多くのプラットフォームで多くのプログラミング言語から使用できるため、オプションです。

Libxml2 のオープン ソース Pascal ラッパーは、 http: //sourceforge.net/projects/libxml2-pas/ で入手できます。

于 2013-06-28T09:56:18.647 に答える