XSD (XML Schema Definition) 文件用于定义XML文件的格式,通过XSD文件来验证XML文档格式是否符合定义中的规范,可以发现并指出XML文档中的错误。 我发现网络上介绍VB Script读取XML文档的文章很多,但是很难找到使用XSD文件验证XML Schema的文章。我这里介绍一个我写的例子。
有XML文件,定义了author.xml:
<?xml version="1.0" encoding="utf-8"?> <Authors xmlns="ns-authors"> <Author name="Bill" gender="male"> <Book category="science">computer programming</Book> <Book category="science">C++ Programming</Book> </Author> <Author name="Lily" gender="female"> <Book category="cooking">Sichuan Cuisine</Book> <Book category="travel">Travel in Britain</Book> </Author> </Authors>
Schema文件author.xsd:
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="ns-authors" targetNamespace ="ns-authors" elementFormDefault="qualified"> <xs:element name="Authors" > <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element name="Author"> <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element name="Book"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="category" type="xs:string" use ="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use ="required"/> <xs:attribute name="gender" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XMLValidation.vbs
xmlFile=WScript.Arguments(0) xsdFile=WScript.Arguments(1) Dim objDOM, objSchema, loadStatus, xmlParseErr Set objDOM = CreateObject("MSXML2.DOMDocument.6.0") Set objSchema = CreateObject("MSXML2.XMLSchemaCache.6.0") objSchema.add "ns-authors", xsdFile objDom.schemas = objSchema objDOM.async = False objDOM.validateOnParse = True objDOM.resolveExternals = True loadStatus = objDOM.Load(xmlFile) Set xmlParseErr = objDOM.parseError If xmlParseErr.errorCode <> 0 Then status="Fail"&":"&xmlParseErr.reason&"(LineNumber:"&XmlParseErr.line&")" else status="Success" End If WScript.Echo status
可以用下面的命令使用VS调试运行这个脚本:
CScript /nologo /X XMLReader.vbs Author.xml Author.xsd
简单分析一下脚本:
1, objDOM是实现IXMLDOMDocument3接口的对象
2, objSchema是实现IXMLDOMSchemaCollection2接口的对象
3, 第8行:objSchema.add "ns-authors", xsdFile. 第一个参数是XML使用的命名空间,即XML和XSD文件根节点中定义的xmlns="ns-authors"。如果不使用命名空间,在XML和XSD文件中将该命名空间删除,该参数需传递空字符串;第二个参数为XSD文件路径
4, 第14行loadStatus = objDOM.Load(xmlFile) 载入一个xmlFile文档到DOM对象,如果XML文档正确且符合Schema,则loadStatus=True,否则loadStatus=False
5, xmlParseErr为实现IXMLDOMParseError2接口的对象,其中最重要的3个属性值:
errorCode:错误码
reason:解析错误的原因
line:错误所在行.
通过reason和line我们可以轻松定位XML验证的问题。
Binhua Liu原创,装载请注明出处http://www.cnblogs.com/Binhua-Liu
相关推荐
6. **验证转化**:完成XSD文件编写后,可以用这个XSD文件来验证XML文档是否符合定义的结构和约束。 XSD验证XML的合法性: 1. **解析XSD**:首先,解析XSD文件以获取其定义的规则。 2. **匹配元素和属性**:遍历XML...
验证xml文件与xsd是否匹配
3. 验证XML:使用XML文档对象的validate方法,传入XSD文档对象作为参数。 4. 处理验证结果:检查验证结果,如果返回值为真,说明XML文档有效;否则,遍历错误集合获取错误信息。 通过这样的验证器,开发者可以确保...
在IT行业中,XML(eXtensible Markup Language)是一种用于标记数据的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。"xsd生成xml工具"是一个实用程序,它允许开发者根据XSD...
4. **验证XML文件**:使用XSD文件对XML文件进行验证,确保XML符合XSD定义的规则。可以使用XML解析器或者命令行工具如`xmllint`来进行验证。 5. **生成Java类**:利用JAXB或其他类似的工具,如Apache CXF的XJC,根据...
我们可以通过Add方法添加XSD文件,然后使用Validate方法对XML文档进行验证。 - `XmlReaderSettings`和`XmlReader`:`System.Xml.XmlReaderSettings`类允许设置验证选项,如启用或禁用验证、指定XSD集等。结合`...
在Visual Studio 2005(VS2005)中,使用C++来实现XML文档与XSD模式的验证是一个常见的需求。VS2005提供了一套强大的XML工具和库,如MSXML和ATL(Active Template Library),这些工具可以帮助开发者方便地处理XML和...
**使用JAXB根据XSD生成XML文档** ...这个过程包括创建XSD文件、生成Java类、配置JAXB绑定、创建和填充Java对象,最后使用`Marshaller`生成XML文档。了解并熟练掌握这一流程,能够极大地提高XML处理的效率和准确性。
标题中的“xsd验证xml”指的是使用XML Schema Definition (XSD) 对XML文档进行验证的过程。在XML中,XSD是一种规范,它定义了XML文档的结构和数据类型,确保XML文档的数据符合预设的规则,从而提高数据的准确性和...
附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查指定的XML文件是否满足XSD的约束。 这里的约束比标准的约束要弱一些,比如:这里的约束不限制元素出现的顺序,只关心有没有这个元素。 我...
为了确保XML文档遵循特定的格式和规则,通常会用到XSD(XML Schema Definition)来定义XML文档的结构。本文将详细介绍如何从现有的XML文档自动生成XSD模式文件,包括必要的工具和步骤。 #### 二、准备工作 1. **...
XML用于结构化数据的存储和传输,而XSD则为XML文档提供了语义验证的规则。本教程将详细介绍如何在Java环境中生成XML和XSD文件。 XML是一种标记语言,它允许我们在文档中定义元素、属性和结构。这些元素和属性描述了...
在IT行业中,XML(eXtensible Markup Language)是一种用于数据交换的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了...
XML Schema(XSD)文件是定义XML文档结构的规范,它提供了验证XML文档有效性的规则。本教程将详细介绍如何使用XSD文件生成C#实体类,以便于解析XML数据和生成XML文档。 首先,我们需要一个XSD文件,它定义了XML文档...
在描述中提到的博文链接,虽然没有提供具体内容,通常博主可能会详细介绍如何创建一个XSD文件,如何定义XML文档的结构,并展示如何使用这个XSD文件来校验XML文档。这可能包括使用编程语言(如Java、C#)中的库函数,...
为了确保XML文档遵循特定的结构和规则,我们可以使用XML Schema Definition (XSD) 文件来定义和验证XML文档的结构。本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的...
为了确保XML文档遵循一定的规则,我们使用XSD来创建一个模式,这个模式描述了XML文档应该如何构建,包括元素、属性、数据类型以及它们之间的关系。一旦有了XSD,我们就可以根据这个模式验证XML文档,确保其符合规范...
标题中的“纯Java(swing)写的xsd验证xml”是指使用Java编程语言,结合Swing图形用户界面库,开发的一个工具,用于验证XML文档是否符合指定的XSD(XML Schema Definition)规范。XML Schema是W3C推荐的一种XML文档...
6. **验证XML文档**:生成XSD文件后,可以将其与XML文档一起使用,通过XML解析器进行验证。如果XML文档符合XSD定义的规则,那么解析器会返回成功,否则会报告错误。 在实际应用中,XSD不仅可以帮助我们验证XML文档...
在C#编程中,验证XML文件的格式是否符合预定义的模式是非常重要的,这可以通过使用XSD(XML Schema Definition)文件来实现。XSD文件定义了一组规则,用于描述XML文档的结构和数据类型,从而确保XML数据的有效性和...