2

以下代码输出“EOleException:验证期间出错”。就是这个错误:0xC00CE225 XMLOM_VALIDATE_INVALID 验证失败。

如果我添加错误处理程序,则确切的错误消息是“XML 既不有效也不无效,因为没有找到模式”。

MSXML 6 SAX 解析器是否支持嵌入 DTD?

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

0 回答 0