unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons,XPMan;typeTForm1=class(TForm)edt1:TEdit;edt2:TEdit;mmo1...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons,
XPMan;
type
TForm1 = class(TForm)
edt1: TEdit;
edt2: TEdit;
mmo1: TMemo;
btn_Val: TBitBtn;
lbl1: TLabel;
lbl2: TLabel;
dlgOpen1: TOpenDialog;
dlgOpen2: TOpenDialog;
btn1: TButton;
btn2: TButton;
xpmnfst1: TXPManifest;
procedure btn_ValClick(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses MSXML2_TLB;
procedure TForm1.btn_ValClick(Sender: TObject);
var
SchemaDoc, XmlDoc: IXMLDOMDocument2;
SchemaCache: IXMLDOMSchemaCollection;
Error: IXMLDOMParseError;
begin
//---------------加载数据------------------------
XmlDoc := CoDOMDocument60.Create;
XmlDoc.async := False;
XmlDoc.load(edt1.Text);
//---------------加载schema架构文档------------------------
SchemaDoc := CoDOMDocument60.Create;
SchemaDoc.async := False;
SchemaDoc.load(edt2.Text);
//---------------注册架构缓存------------------------
SchemaCache := CoXMLSchemaCache60.Create;
SchemaCache.add('', schemadoc);
//---------------分配架构缓存到XML文档------------------------
XmlDoc.schemas := schemacache;
//---------------验证和报告------------------------
Error := xmldoc.validate;
if Error.errorCode <> S_OK then
mmo1.Lines.Add(Error.reason)
else
mmo1.Lines.Add('验证成功');
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
edt1.Text := dlgOpen1.FileName;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
if dlgOpen2.Execute then
edt2.Text := dlgOpen2.FileName;
end;
end.
源代码如上,感谢转换。后续可加分。
展开