我正在尝试使用Delphi和MSXML2_TLB对XML文件进行验证,以确保其符合所引用的模式。相关代码如下:
procedure TfrmMain.ValidateXMLFile;
var
xml: IXMLDOMDocument2;
err: IXMLDOMParseError;
schemas: IXMLDOMSchemaCollection;
begin
xml := ComsDOMDocument.Create;
if xml.load('Data/file.xml') then
begin
schemas := xml.namespaces;
if schemas.length > 0 then
begin
xml.schemas := schemas;
err := xml.validate;
end;
end;
end;
这样做的结果是缓存被加载 (schemas.length > 0
),但接下来的赋值会引发异常:"只能使用XMLSchemaCache-schemacollections"。
我该怎么处理?