`

xsd验证xml - 含源码

    博客分类:
  • java
阅读更多

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 - 含

    标题中的“xsd验证xml”指的是使用XML Schema Definition (XSD) 对XML文档进行验证的过程。在XML中,XSD是一种规范,它定义了XML文档的结构和数据类型,确保XML文档的数据符合预设的规则,从而提高数据的准确性和...

    纯Java(swing)写的xsd验证xml - 含

    标题中的“纯Java(swing)写的xsd验证xml”是指使用Java编程语言,结合Swing图形用户界面库,开发的一个工具,用于验证XML文档是否符合指定的XSD(XML Schema Definition)规范。XML Schema是W3C推荐的一种XML文档...

    XML验证器(XSD验证XML)

    XML验证器(XSD验证XML)是指一种工具或程序,它能够检查XML文档是否符合预先定义的XSD模式。这个附带Delphi7源码的XML验证器,是为了解决在Delphi开发环境中对XML数据进行验证的需求。Delphi是一种流行的面向对象的...

    emf-xsd-Update-2.7.2

    XSD在EMF中扮演着重要的角色,因为它允许EMF解析和验证XML数据,确保符合预定义的模式。 【压缩包子文件的文件名称列表】: 1. content.jar - 这通常包含的是插件或应用的主要内容,可能包括EMF和XSD处理的类和其他...

    MA-XML-12-SPANISH-源码.rar

    1. **XML基础**:了解XML的基本语法,如元素、属性、文本内容、命名空间和DTD(Document Type Definition)或XSD(XML Schema Definition)验证。 2. **解析XML**:学习DOM、SAX和StAX等解析器的工作原理,它们分别...

    emf-xsd-SDK-2.7.1

    在Java开发中,XSD常用于验证XML输入数据的格式和完整性,或生成Java对象模型(JAXB)来直接与XML数据交互。 **VE (Visual Editor)** 是Eclipse中的一个插件,它基于EMF构建,提供了一个图形化界面,让用户能够直观...

    利用xsd校验xml

    在标题“利用xsd校验xml”中,我们讨论的核心是通过XML Schema(XSD)来验证XML文档是否符合预定义的模式。这个过程是确保XML数据有效性和正确性的重要步骤,特别是当XML被用作数据交换或者在复杂的系统间通信时。 ...

    xsd2cc-master_xsd2cc_XML文件解析小程序_problemf6v_

    【xsd2cc-master_xsd2cc_XML文件解析小程序_problemf6v_】是一个关于XML文件解析的小程序项目,主要用于从XML文件中提取数据并按照预设的模板进行处理。XML(eXtensible Markup Language)是一种标记语言,常用于...

    PyPI 官网下载 | xml-cleaner-1.0.1.tar.gz

    2. 验证XML文档:通过检查XML文档是否符合特定的XML Schema(XSD),确保数据的结构正确。 3. 修复损坏的XML:对于因网络传输或存储问题导致损坏的XML文件,`xml-cleaner`可以尝试恢复其可读性。 使用`xml-cleaner`...

    在XSD指导下创建XML,不是生成示例xml

    这些资源可能包括示例XSD文件、编辑器的源码片段或已生成的XML样本,帮助开发者理解和实现根据XSD创建XML的功能。 总的来说,XSD为XML文档提供了一套严谨的定义,使得在IETM系统和其他应用中创建和处理XML数据时能...

    XML编辑源码实例(源码)

    3. **验证机制**:XML文档需要遵循一定的结构规则,编辑器应提供验证功能,确保编辑的XML符合预定义的DTD(Document Type Definition)或XSD(XML Schema Definition)。源码中可能包含对XML文档的验证逻辑。 4. **...

    使用SAXParser(SAXParserFactory.newInstance())验证XML文件格式---XSD

    为了确保XML文档遵循特定的结构和规则,我们可以使用XML Schema Definition (XSD) 文件来定义和验证XML文档的结构。本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的...

    6、xsd验证xml文件的java代码

    NULL 博文链接:https://nickfover.iteye.com/blog/2155663

    计算机软件-编程源码-XML开发文档.zip

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它设计的目标是传输和存储数据,而不是显示数据。XML的设计者们希望它能够...同时,了解如何有效地处理和验证XML数据对于构建健壮的软件系统至关重要。

    winform 验证XML格式源码

    本文将详细讲解如何在WinForm应用中验证XML格式,并提供相关的源码解析。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和存储结构化数据。为了确保XML文件的有效性和...

    c# XML 验证器 Schema验证XML

    标题"XML 验证器 - C#中的Schema验证XML"着重强调了使用C#来验证XML文档是否符合预定义的XML Schema。XML Schema是W3C标准,用于定义XML文档的结构和数据类型,确保数据的一致性和准确性。 描述中提到的"博文链接:...

    计算机软件-编程源码-XML学习指南中文版.zip

    4. **XSD(XML Schema Definition)**:作为DTD的替代,XSD提供了更强大的数据类型和复杂结构定义,可以进行更严格的文档验证。 5. **命名空间(Namespaces)**:在XML中,命名空间可以避免元素名称冲突,通过使用...

    xml的一些源码

    XML(eXtensible Markup Language)是一...通过分析XML源码,我们可以了解数据结构,进而实现数据的提取、转换、验证和存储。同时,XML源码的编写和阅读能力对于任何涉及数据交换的IT专业人员来说都是至关重要的技能。

    xml操作,内含源码

    - DTD是XML的早期验证方式,而XSD提供了更强大的数据类型和约束定义。 5. **解析XML**: - DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一棵树形结构,便于遍历和修改。 - SAX(Simple ...

Global site tag (gtag.js) - Google Analytics