使用MSXML6-DelphiXe5中的SAX进行DTD验证
以下代码输出“EOleException:验证期间出错”。这是一个错误: 0xC00CE225 XMLOM_VALIDATE_无效 验证失败 如果我添加错误处理程序,确切的错误消息是“XML既无效也无效,因为找不到任何模式” MSXML 6 SAX解析器是否支持嵌入DTD使用MSXML6-DelphiXe5中的SAX进行DTD验证,delphi,sax,dtd,msxml,msxml6,Delphi,Sax,Dtd,Msxml,Msxml6,以下代码输出“EOleException:验证期间出错”。这是一个错误: 0xC00CE225 XMLOM_VALIDATE_无效 验证失败 如果我添加错误处理程序,确切的错误消息是“XML既无效也无效,因为找不到任何模式” MSXML 6 SAX解析器是否支持嵌入DTD program TestSAXValidation; {$APPTYPE CONSOLE} {$R *.res} uses ActiveX, System.SysUtils, Winapi.msxml; var
program TestSAXValidation;
{$APPTYPE CONSOLE}
{$R *.res}
uses
ActiveX, System.SysUtils, Winapi.msxml;
var
R: IVBSAXXMLReader;
begin
CoInitialize(nil);
try
R := CoSAXXMLReader60.Create;
R.putFeature('use-inline-schema', True);
R.putFeature('schema-validation', True);
R.putFeature('exhaustive-errors', True);
R.putFeature('prohibit-dtd', False);
R.parse('<!DOCTYPE a[<!ELEMENT a (#PCDATA)>]> <a></a>');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
ReadLn;
end.
程序验证;
{$APPTYPE控制台}
{$R*.res}
使用
ActiveX,System.SysUtils,Winapi.msxml;
变量
R:IVBSAXMLReader;
开始
共初始化(零);
尝试
R:=CoSAXXMLReader60.Create;
R.putFeature('use-inline-schema',True);
R.putFeature('schema-validation',True);
R.putFeature(‘彻底错误’,真);
R.putFeature(“禁止-dtd”,假);
R.parse(“”);
除了
关于E:Exception-do
Writeln(E.ClassName,“:”,E.Message);
结束;
ReadLn;
结束。