This code requires a project reference to
Microsoft XML 4.0 available from Microsoft's
Download CenterThis is a very simple example to demostrate the validation of a fragment of XML.
We want a validate than a element called sampleRoot has an attribute called myAttribute that can have a value of either 'animal', 'vegatable' or 'mineral'.
Sample XSDThis XSD defines our schema. We have to give it a namespace, for this example we're using urn:sample
<!-- two namespaces used, xsd schema and the one we're defining (targetNamespace) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:n="urn:sample"
targetNamespace="urn:sample">
<!-- define root element -->
<xs:element name="sampleRoot" type="n:sampleRootType"/>
<!-- define a datatype: sampleRootType -->
<xs:complexType name="sampleRootType">
<xs:attribute name="myAttribute" type="n:AnimalVegMineral" use="optional"/>
</xs:complexType>
<!-- define a Animal/Veg/Mineral data type -->
<xs:simpleType name="AnimalVegMineral">
<xs:restriction base="xs:string">
<xs:enumeration value="animal"/>
<xs:enumeration value="vegatable"/>
<xs:enumeration value="mineral"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Samples of XML that Reference Our Schema DefinitionXML documents that should conform to this schema must declare their namespace. The following fragments conform to the bove schema definition:
<x:sampleRoot xmlns:x="urn:sample" myAttribute="animal"/>
The following fragments do not.
<x:sampleRoot xmlns:x="urn:sample" myAttribute="piano"/>
Visual Basic Code to Validate an XML File against an XSD FileThis function accepts the paths of two datafiles. An XML Schema Definition and an XML file.
Private Function Validate(ByVal strXMLPath As String, _
ByVal strXSDPath As String) As Boolean
Dim objSchemas As MSXML2.XMLSchemaCache40
Dim objXML As MSXML2.DOMDocument40
Dim objXSD As MSXML2.DOMDocument40
Dim strNamespace As String
Dim objErr As MSXML2.IXMLDOMParseError
' load XSD as DOM to populate in Schema Cache
Set objXSD = New MSXML2.DOMDocument40
objXSD.async = False
If Not objXSD.Load(strXSDPath) Then
Err.Raise 1, "Validate", "Load XSD failed: " & objXSD.parseError.reason
Else
' get namespace name from XSD targetNamespace attribute
strNamespace = objXSD.documentElement.getAttribute("targetNamespace")
End If
' populate schema cache
Set objSchemas = New MSXML2.XMLSchemaCache40
objSchemas.Add strNamespace, objXSD
' load XML file (without validation - that comes later)
Set objXML = New MSXML2.DOMDocument40
objXML.async = False
objXML.validateOnParse = False
objXML.resolveExternals = False
' load XML, without any validation
If Not objXML.Load(strXMLPath) Then
Err.Raise 1, "Validate", "Load XML failed: " & objXML.parseError.reason
End If
' bind Schema Cache to DOM
Set objXML.schemas = objSchemas
' does this XML measure up?
Set objErr = objXML.Validate()
' any good?
Validate = (objErr.errorCode = 0)
If objErr.errorCode <> 0 Then
Err.Raise 1, "Validate", objErr.reason
End If
End Function
The above function could easily be adapted to load XML and XSD from string variables as opposed to data files.
For situations where multiple XML validations are required, repeatedly populating and destroying the schema cache is clearly ineffecient and could be optimised.
Examples Calling this Function Validate App.Path & "\sc-valid-tjh.xml", App.Path & "\sc-tjh-min.xsd"
Validate App.Path & "\sc-valid.xml", App.Path & "\sc-tjh-min.xsd"
<script type="text/javascript">// <![CDATA[
google_ad_client = "pub-0974635012543471";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "DCDCDC";
google_color_bg = "F5F5F5";
google_color_link = "000080";
google_color_url = "008000";
google_color_text = "000000";
// ]]></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
相关推荐
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而XSD(XML Schema Definition)则是用来定义XML文档结构和数据类型的规范。当我们需要确保XML文档符合特定的结构和约束时,就...
### 如何验证XML文档符合Schematron规则 #### Schematron模式概述 Schematron是一种简单而强大的结构化模式语言,用于对XML文档中的模式进行断言。它几乎完全依赖于XPath查询模式来定义规则和检查。Schematron验证...
3. 验证XML:使用XML文档对象的validate方法,传入XSD文档对象作为参数。 4. 处理验证结果:检查验证结果,如果返回值为真,说明XML文档有效;否则,遍历错误集合获取错误信息。 通过这样的验证器,开发者可以确保...
在Visual Studio 2005(VS2005)中,使用C++来实现XML文档与XSD模式的验证是一个常见的需求。VS2005提供了一套强大的XML工具和库,如MSXML和ATL(Active Template Library),这些工具可以帮助开发者方便地处理XML和...
在IT行业中,XML(eXtensible Markup Language)是一种用于数据交换的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了...
6. **动态数据绑定**:Visual Basic引入了动态数据绑定功能,允许在运行时将数据源绑定到控件,增强了灵活性和适应性。 7. **显示数据的控件**:Visual Basic提供了一系列数据绑定控件,如DataList、DataCombo、...
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE...
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE...
validate.js的流星包 库@version 0.9.0的流星程序包装器! 当前软件包版本:0.6.0 安装 AtmosphereJS meteor add awsp:validatejs 手动安装 克隆此存储库,将其添加到目录packages (如果尚未创建,请在您的应用...
6. **异步验证**:对于需要服务器端验证的情况,可以使用`remote`规则。它会发送一个AJAX请求到指定的URL,根据返回值(`true`或`false`)决定是否通过验证。 7. **即时反馈**:`validate`插件能实时检测用户输入,...
官方离线安装包,亲测可用
XSD架构验证器 (XSD)模式验证器,使用执行实际验证。 先决条件 在后台,该实用程序使用Java进行实际验证。... validateXML ( xmlStr , 'resources/foo.xsd' , function ( err , result ) { if ( err ) {
验证xsd和xml文件的小工具,方便检索xml格式是否与xsd一致。
该软件包的目标是将xsd文件预加载到内存中,并使用libxml2(快速)验证xml,例如xml服务端点或api路由器的后主体。 在撰写本文时,我在github上找到的类似软件包没有提供错误详细信息,或者卡在了负载下。 除了提供...
MSXML提供了IXMLDOMDocument接口,它包含了一个validate方法,可以用来验证XML文档是否符合指定的XSD模版。 以下是使用VC++和MSXML进行XML验证的基本步骤: 1. **加载XML文件**:使用IXMLDOMDocument的load方法...
它提供了多种接口供开发者集成到自己的应用程序中,其中ActiveX接口是适用于Visual Basic 6.0、VB.NET和C#等编程语言的一个选项。本文将详细阐述如何利用BarTender的ActiveX接口进行开发。 1. **BarTender ActiveX...
5. **XML Schema验证**:如果你有XML Schema(XSD),可以使用Nokogiri的`Nokogiri::XML::Schema`类来验证XML文档是否符合规范: ```ruby schema = Nokogiri::XML::Schema(File.read('your_xml_schema.xsd')) doc...
javascript表单验证:validate.js
VB(Visual Basic)是Microsoft开发的一种面向对象的编程语言,它允许开发者轻松地创建桌面应用程序。在VB中操作XML,可以通过.NET Framework提供的System.Xml命名空间中的类来实现。 本压缩包“XMLoper.rar”似乎...
bcrypt库C/C++使用 ```cpp #include "bcrypt/... std::cout << BCrypt::validatePassword(password,hash) << std::endl; std::cout << BCrypt::validatePassword("123456",hash) << std::endl; return 0; } ```