XmlSchema的验证器(Delphi实现)

本文介绍了如何在Delphi中创建一个XML Schema验证器。由于VCL库中缺乏直接的支持,作者通过阅读微软的XML Schema Complete Reference并利用MSXML库中的DOMDocument40对象和XMLSchemaCache40接口实现了验证功能。示例代码展示了加载XML Schema文件,验证XML文档,并处理验证错误的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       有段时间前,自己想要做一个xmlschema的验证器,首先想到的就是delphi的vcl中是否已经有现成的函数或者对象,经过一番查找,发现里面只封装了Dom中的Document,对于与Document密切相关的schema几乎看不到踪影;然后到网络上进行搜寻,发现关于这个验证器的信息很少(也许搜索技术不好^_^);最后没有办法,找到了‘xml schema complete reference’这本英文电子书,凭着兴趣我居然读完了大半内容,实际上读这本书的过程是超爽的,因为讲到了自己想要的东西。

       既然没有现成的可以用,那么我就用微软留给我们的编程接口(1)对于xml文件,我们都知道微软提供了Dom(文档对象模型)来访问遍历它,而对于xml Schema文件来说,其实它也是个xml文件,所以我们依旧可以用Dom来去访问它(2)Dom的早期版本中并没有一个Schemas的属性,只有到了msxml4.dll及以后的版本才提供了这个属性,所以早期版本的Dom是不能够验证xmlschema,要用DOMDocument40对象

下面代码示例:

var
  iDomDoc40: DOMDocument40;
  iSchemaDoc: DOMDocument40;
  iDomParseError: IXMLDOMParseError ;
  iSchemaCache: XMLSchemaCache40;
  sNameSpace: string;
 // iXMLSchema: ISchema;
begin
  iSchemaDoc := CoDOMDocument40.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值