xsd验证xml - 含源码
关键代码:
class XmlSchemaSetExample
{
private string logpath;
public void handle(String names, String xml, String xsd, String lpath)
{
this.logpath = lpath;
XmlReaderSettings booksSettings = new XmlReaderSettings();
booksSettings.Schemas.Add(names, xsd);
booksSettings.ValidationType = ValidationType.Schema;
booksSettings.ValidationEventHandler += new ValidationEventHandler(booksSettingsValidationEventHandler);
XmlReader books = XmlReader.Create(xml, booksSettings);
while (books.Read()) { }
}
private void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e)
{
LogManager.LogFielPrefix = "EADI ";
LogManager.LogPath = @logpath;
if (e.Severity == XmlSeverityType.Warning)
{
LogManager.WriteLog(LogFile.Warning, "WARNING: " + e.Message);
// MessageBox.Show("WARNING: " + e.Message);
// Console.Write("WARNING: ");
//Console.WriteLine(e.Message);
}
else if (e.Severity == XmlSeverityType.Error)
{
LogManager.WriteLog(LogFile.Error, "ERROR: " + e.Message);
// MessageBox.Show("ERROR: " + e.Message);
//Console.Write("ERROR: ");
//Console.WriteLine(e.Message);
}
}
}
调用方法:
XmlSchemaSetExample xmlSchemaSetExample = new XmlSchemaSetExample();
xmlSchemaSetExample.handle(textNameSpace.Text, path.ToString() + ".xml", path.ToString() + ".xsd", textlog.Text);
测试的XML和XSD(文件名字一定要相同)
contosoBooks.xml
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99d</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99d</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
contosoBooks.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:date" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
详情请看附件...
分享到:
相关推荐
标题中的“xsd验证xml”指的是使用XML Schema Definition (XSD) 对XML文档进行验证的过程。在XML中,XSD是一种规范,它定义了XML文档的结构和数据类型,确保XML文档的数据符合预设的规则,从而提高数据的准确性和...
标题中的“纯Java(swing)写的xsd验证xml”是指使用Java编程语言,结合Swing图形用户界面库,开发的一个工具,用于验证XML文档是否符合指定的XSD(XML Schema Definition)规范。XML Schema是W3C推荐的一种XML文档...
XML验证器(XSD验证XML)是指一种工具或程序,它能够检查XML文档是否符合预先定义的XSD模式。这个附带Delphi7源码的XML验证器,是为了解决在Delphi开发环境中对XML数据进行验证的需求。Delphi是一种流行的面向对象的...
XSD在EMF中扮演着重要的角色,因为它允许EMF解析和验证XML数据,确保符合预定义的模式。 【压缩包子文件的文件名称列表】: 1. content.jar - 这通常包含的是插件或应用的主要内容,可能包括EMF和XSD处理的类和其他...
1. **XML基础**:了解XML的基本语法,如元素、属性、文本内容、命名空间和DTD(Document Type Definition)或XSD(XML Schema Definition)验证。 2. **解析XML**:学习DOM、SAX和StAX等解析器的工作原理,它们分别...
在Java开发中,XSD常用于验证XML输入数据的格式和完整性,或生成Java对象模型(JAXB)来直接与XML数据交互。 **VE (Visual Editor)** 是Eclipse中的一个插件,它基于EMF构建,提供了一个图形化界面,让用户能够直观...
在标题“利用xsd校验xml”中,我们讨论的核心是通过XML Schema(XSD)来验证XML文档是否符合预定义的模式。这个过程是确保XML数据有效性和正确性的重要步骤,特别是当XML被用作数据交换或者在复杂的系统间通信时。 ...
【xsd2cc-master_xsd2cc_XML文件解析小程序_problemf6v_】是一个关于XML文件解析的小程序项目,主要用于从XML文件中提取数据并按照预设的模板进行处理。XML(eXtensible Markup Language)是一种标记语言,常用于...
2. 验证XML文档:通过检查XML文档是否符合特定的XML Schema(XSD),确保数据的结构正确。 3. 修复损坏的XML:对于因网络传输或存储问题导致损坏的XML文件,`xml-cleaner`可以尝试恢复其可读性。 使用`xml-cleaner`...
这些资源可能包括示例XSD文件、编辑器的源码片段或已生成的XML样本,帮助开发者理解和实现根据XSD创建XML的功能。 总的来说,XSD为XML文档提供了一套严谨的定义,使得在IETM系统和其他应用中创建和处理XML数据时能...
3. **验证机制**:XML文档需要遵循一定的结构规则,编辑器应提供验证功能,确保编辑的XML符合预定义的DTD(Document Type Definition)或XSD(XML Schema Definition)。源码中可能包含对XML文档的验证逻辑。 4. **...
为了确保XML文档遵循特定的结构和规则,我们可以使用XML Schema Definition (XSD) 文件来定义和验证XML文档的结构。本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的...
NULL 博文链接:https://nickfover.iteye.com/blog/2155663
XML(eXtensible Markup Language)是一种用于标记数据的语言,它设计的目标是传输和存储数据,而不是显示数据。XML的设计者们希望它能够...同时,了解如何有效地处理和验证XML数据对于构建健壮的软件系统至关重要。
本文将详细讲解如何在WinForm应用中验证XML格式,并提供相关的源码解析。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和存储结构化数据。为了确保XML文件的有效性和...
标题"XML 验证器 - C#中的Schema验证XML"着重强调了使用C#来验证XML文档是否符合预定义的XML Schema。XML Schema是W3C标准,用于定义XML文档的结构和数据类型,确保数据的一致性和准确性。 描述中提到的"博文链接:...
4. **XSD(XML Schema Definition)**:作为DTD的替代,XSD提供了更强大的数据类型和复杂结构定义,可以进行更严格的文档验证。 5. **命名空间(Namespaces)**:在XML中,命名空间可以避免元素名称冲突,通过使用...
XML(eXtensible Markup Language)是一...通过分析XML源码,我们可以了解数据结构,进而实现数据的提取、转换、验证和存储。同时,XML源码的编写和阅读能力对于任何涉及数据交换的IT专业人员来说都是至关重要的技能。
- DTD是XML的早期验证方式,而XSD提供了更强大的数据类型和约束定义。 5. **解析XML**: - DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一棵树形结构,便于遍历和修改。 - SAX(Simple ...