在VB6中校验XML文档
来源:互联网 发布:免费下载矢量图 知乎 编辑:程序博客网 时间:2024/05/16 11:25
XML Schema语言是校验XML文档格式的标准。可以在VB6中使用XML Schema来验证XML的合法性。
这个例子演示了怎样使用Microsoft XML Parser 4.0来校验XML文件。首先,创建一个名为WellFormed.xsd的文件并向其添加如下代码:
<?xml version="1.0" ?>
<xs:schema targetNamespace="http://tempuri.org/WellFormed.xsd"
xmlns="http://tempuri.org/WellFormed.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="qualified">
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
然后,创建一个名为Wellformed.xml的文件并向其添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<Test xmlns="http://tempuri.org/WellFormed.xsd">
<Name>John Doe</Name>
<Temp/>
</Test>
这份XML与上面的schema并不相符,因此在校验时会引起一个错误。
要校验该XML文档,需要创建一个XMLSchemaCache对象的实例。这个对象拥有一个XML schema的集合,通过调用Add方法并提供schema的命名空间和其URL或文件路径可以向该集合添加内容。(示例代码在可执行程序路径下寻找上面创建的文件。)
Dim xmlSchema As MSXML2.XMLSchemaCache40
Set xmlSchema = New MSXML2.XMLSchemaCache40
xmlSchema.Add "http://tempuri.org/WellFormed.xsd", _
App.Path & "/WellFormed.xsd"
然后创建并初始化一个XML DOMDocument对象实例。XMLSchemaCache与DOMDocument相互关联:
Dim xmlMessage As MSXML2.DOMDocument40
Dim lngErrCode As Long
Set xmlMessage = New MSXML2.DOMDocument40
xmlMessage.async = False
xmlMessage.validateOnParse = True
xmlMessage.resolveExternals = False
Set xmlMessage.schemas = xmlSchema
装载完XML文档后,调用DOMDocument的Validate方法。如果校验过程中发现与schema不符,会产生一个解析错误:
Call xmlMessage.Load(App.Path & "/WellFormed.xml")
lngErrCode = xmlMessage.Validate()
If xmlMessage.parseError.errorCode <> 0 Then
Text1.Text = " Reason: " & xmlMessage.parseError.reason
End If
在解析WellFormed.xml文档时会引起一个解析错误。要纠正该错误,因该从文件中删除<Temp/>标签。
- 在VB6中校验XML文档
- vb6中访问XML文档
- Structs2 输入校验,Action中校验,在xml中校验
- 在VB6中使用集合
- 如何在Weblogic中校验及解释XML文件
- 在Eclipse中制作xml校验提示插件
- 在Eclipse中制作xml校验提示插件
- 在.asp.net中读取xml文档
- 在浏览器中创建XML文档
- 在VC++中读写XML文档
- 在 XML 文档中引用 Schema
- sql2005 + VB6.0 在VB6.0中拼SQL 注意"()"
- XMl中DTD校验案例
- 在VB6或ASP中调用webservice
- 在VB6或ASP中调用webservice
- [原创]在VB6.0中访问注册表
- 在VB6或ASP中调用webservice
- 在VB6中实现Kodak控件编程
- javascript 面向对象初探
- 我的第一个Web Log 诞生!!!
- 用zend加速php
- 大四毕业生的牌局:谁输了就去骚扰女生宿舍
- 在.NET中获得程序所在的路径
- 在VB6中校验XML文档
- C++ Primer 学习笔记-练习6.7的答案错了?
- GDDDDB,haha
- signed&&unsigned in the c language
- 简单的递归程序,怎么考试的时候我就糊涂了呢?
- Request.QueryString的所有值
- 北京印象记
- 将 Java 应用程序迁移到 .NET(zhuan)
- JBuilder or Eclipse?What's your Choice? (转)