XSD是指XML结构定义 ( XML Schemas Definition )
XML Schema 是DTD的替代品。XML Schema语言也就是XSD。
XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XSD文件的后缀名为.xsd。
XML Schema的优点:
1) XML Schema基于XML,没有专门的语法
2) XML可以象其他XML文件一样解析和处理
3) XML Schema支持一系列的数据类型(int、float、Boolean、date等)
4) XML Schema提供可扩充的数据模型。
5) XML Schema支持综合命名空间
6) XML Schema支持属性组。
 
 
对xml文件的操作:http://www.cnblogs.com/jhtchina/archive/2007/06/05/691610.html
 
 <!-- booksSchema.xml  -->
<?xml   version='1.0'?>
<!--   This   file   represents   a   fragment   of   a   book   store   inventory   database   -->
<bookstore   xmlns   =   "schema.xsd">
<book   genre="autobiography"   publicationdate="1981"   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.99</price>
</book>
<book   genre="novel"   publicationdate="1967"   ISBN="0-201-63361-2">
<title>The   Confidence   Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book   genre="philosophy"   publicationdate="1991"   ISBN="1-861001-57-6">
<title>The   Gorgias</title>
<author>
<first-name>Sidas</first-name>
<last-name>Plato</last-name>
</author>
<price>9.99</price>
</book>
</bookstore>    
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <!-- schema.xsd -->   <xsd:schema   xmlns:xsd="http://www.w3.org/2001/XMLSchema"    xmlns="schema.xsd"    elementFormDefault="qualified"    targetNamespace="schema.xsd">    <xsd:element   name="bookstore"   type="bookstoreType"/>    <xsd:complexType   name="bookstoreType">    <xsd:sequence   maxOccurs="unbounded">    <xsd:element   name="book"     type="bookType"/>    </xsd:sequence>    </xsd:complexType>    <xsd:complexType   name="bookType">    <xsd:sequence>    <xsd:element   name="title"   type="xsd:string"/>    <xsd:element   name="author"   type="authorName"/>    <xsd:element   name="price"     type="xsd:decimal"/>    </xsd:sequence>    <xsd:attribute   name="genre"   type="xsd:string"/>    <xsd:attribute   name="publicationdate"   type="xsd:string"/>    <xsd:attribute   name="ISBN"   type="xsd:string"/>    </xsd:complexType>    <xsd:complexType   name="authorName">    <xsd:sequence>    <xsd:element   name="first-name"     type="xsd:string"/>    <xsd:element   name="last-name"   type="xsd:string"/>    </xsd:sequence>    </xsd:complexType>    </xsd:schema>

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><!-- bookSchemaFail.xml   --> <?xml   version='1.0'?>    <bookstore   xmlns="schema.xsd">    <book>    <author>    <first-name>Benjamin</first-name>    <last-name>Franklin</last-name>    </author>    </book>    <book   genre="novel">    <title>The   Confidence   Man</title>    <author>    <first-name>Herman</first-name>    <last-name>Melville</last-name>    </author>    <price>11.99</price>    </book>    <book   genre="philosophy">    <title>The   Gorgias</title>    <author>    <name>Plato</name>    </author>    <price>9.99</price>    </book>    </bookstore>

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->    using    System;       using    System.Xml;       using    System.Xml.Schema;       using    System.IO;            namespace    SchemaData      {       ///     <summary>        ///    Validator   的摘要说明。       ///     </summary>        public     class    Validator      {            private     const    String   document3    =     " booksSchema.xml " ;       private     const    String   document4    =     " booksSchemaFail.xml " ;       private     const    String   document5    =     " schema.xsd " ;            private    XmlValidatingReader   myXmlValidatingReader    =     null ;       private    XmlTextReader   myXmlTextReader    =     null ;       private    Boolean   Success    =     true ;       private    String[]   args    =    {document3,   document4,   document5};            public    Validator()      {       //        //    TODO:   在此处添加构造函数逻辑       //           }                public     void    Run()      {       try       {           XmlSchemaCollection   myXmlSchemaCollection    =     new    XmlSchemaCollection();      myXmlSchemaCollection.Add( " schema.xsd "    ,    new    XmlTextReader(args[ 2 ]));            //    用架构验证   XML   文件      Success    =     true ;      Console.WriteLine();      Console.WriteLine( " 正在用架构文件   schema.xsd   验证   XML   文件   booksSchema.xml   ... " );      myXmlTextReader    =     new    XmlTextReader   (args[ 0 ]);      myXmlValidatingReader    =     new    XmlValidatingReader(myXmlTextReader);      myXmlValidatingReader.Schemas.Add(myXmlSchemaCollection);      myXmlValidatingReader.ValidationType    =    ValidationType.Schema;      Validate();            //    架构验证失败      Success    =     true ;      Console.WriteLine();      Console.WriteLine( " 正在用架构文件   schema.xsd   验证   XML   文件   booksSchemaFail.xml   ... " );      myXmlTextReader    =     new    XmlTextReader   (args[ 1 ]);      myXmlValidatingReader    =     new    XmlValidatingReader(myXmlTextReader);      myXmlValidatingReader.Schemas.Add(myXmlSchemaCollection);      myXmlValidatingReader.ValidationType    =    ValidationType.Schema;      Validate();      }            catch    (Exception   e)      {      Console.WriteLine( " 异常: "     +    e.ToString());      }            finally       {       //    通过   XmlTextReader   完成       if    (myXmlValidatingReader    !=     null )      myXmlValidatingReader.Close();      }      }            private     void    Validate()      {       try       {       //    设置验证事件处理程序      myXmlValidatingReader.ValidationEventHandler    +=     new    ValidationEventHandler   ( this .ValidationEventHandle);            //    读取   XML   数据       while    (myXmlValidatingReader.Read()){}      Console.WriteLine   ( " 验证已完成。验证   {0} " ,   (Success == true     ?     " 成功 "    :    " 失败 " ));      }       catch    (XmlException   e)      {      Console.WriteLine   ( " Xml   异常: "     +    e.ToString());      }            catch    (Exception   e)      {      Console.WriteLine   ( " 异常: "     +    e.ToString());      }      }            public     void    ValidationEventHandle   ( object    sender,   ValidationEventArgs   args)      {      Success    =     false ;           Console.WriteLine( " \t验证错误: "     +    args.Message);            if    (args.Severity    ==    XmlSeverityType.Warning)      {      Console.WriteLine( " 未找到要强制验证的架构。 " );      }         else        if    (args.Severity    ==    XmlSeverityType.Error)      {      Console.WriteLine( " 验证实例文档时发生验证错误。 " );      }              if    (args.Exception    !=     null )    //    XSD   架构验证错误      {      Console.WriteLine(args.Exception.SourceUri    +     " , "     +      args.Exception.LinePosition    +     " , "     +      args.Exception.LineNumber);      }            // if   (myXmlValidatingReader.Reader.LineNumber   >   0)       // {       //          Console.WriteLine("Line:   "+   myXmlValidatingReader.Reader.LineNumber   +   "   Position:   "   +   myXmlValidatingReader.Reader.LinePosition);       // }      }           }      }

XSD文件与xml 文件相关推荐

  1. java文件和xml文件_用Java分割大型XML文件

    java文件和xml文件 上周,我被要求用Java编写一些东西,该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分. 文件的使用者将是一个中间件应用程序,该应用程序在XML的大尺寸方面 ...

  2. sumo路由文件(.rou.xml文件)的生成以及关于生成交通流的一些方法

    1. 首先准备好一个构建的路网(.net.xml)文件 这里我所利用的一个路网构造如下: 2. 路由文件(.rou.xml)文件 可以在netedit里边对路网个各个道路边缘id长度以及相关参数进行配 ...

  3. GDCM:将DICOM文件和XML文件相互转换的测试程序

    GDCM:将DICOM文件和XML文件相互转换 GDCM:将DICOM文件和XML文件相互转换 GDCM:将DICOM文件和XML文件相互转换 #include "gdcmFilename. ...

  4. 比赛中学习(2)-voc数据集制作中将.txt文件变为.xml文件

    描述 和voc数据集制作有一点不同的是,因为参加的比赛中坐标给了4个,也就是说目标的形状可能是是平行四边形.所以和voc数据集有点不同啊.放出一张.txt文件的形式 最后的结果大致是这样的(和上面的图 ...

  5. (C++)将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法

    将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法 思路:将数据库所有要导出的信息通过sql语句得到,存储到结构体中,然后将结构体的内容通过自定义的xml格式导出. 此方法使用的是T ...

  6. 安卓开发的java文件与xml文件

    安卓开发新建Activity时创建的java文件和xml文件 作用: Android布局以xml形式写在res/layout文件夹中,这样不光可以将将前台界面与业务逻辑区分开,让代码更加清晰,将这些控 ...

  7. 跨域策略文件crossdomain.xml文件

    使用crossdomain.xml让Flash可以跨域传输数据 一.crossdomain.xml文件的作用     跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器.跨域策略文 ...

  8. Java生成XML文件与XML文件的写入

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6651643.html  既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了. 与解析X ...

  9. 关于跨域策略文件crossdomain.xml文件

    2019独角兽企业重金招聘Python工程师标准>>> http://www.xiaonei.com/crossdomain.xml <!– http://www.xiaone ...

最新文章

  1. LeetCode简单题之将找到的值乘以2
  2. PCL:点云数据基于法线的边界提取(从最初的法线估计理论推导到最终的边界提取)
  3. R语言ggplot2可视化:使用ggrepel包在线图(line plot)的尾端那个数据点添加文本标签(text label)
  4. Linux中fdisk硬盘分区方法
  5. Linux环境下的Popush部署——张凯
  6. visualvm安装插件
  7. fixed 相对于父容器定位
  8. 评一本书:C#.net 手机动漫游戏设计教程 (一)
  9. 事务回滚什么意思 try_Spring事务管理(一)快速入门
  10. 【重磅】《演化学习:理论与算法进展》| 南大周志华、俞扬、钱超重要成果...
  11. C#在Word表格中插入图片调整大小Debug
  12. 办公室计算机网络使用情况,办公室中有多台电脑上网需求的解决方法
  13. _crol_和左移的区别
  14. 三国演义网页游戏私服架设教程
  15. js 5文钱可以买一只公鸡,3文钱可以买一只母鸡,一文钱可以买3只小鸡,现在100文买100只鸡,请问各多少只
  16. 封装一个简单实用的朋友圈
  17. java使用jbarcode生成条形码
  18. uniapp ios打包详细步骤
  19. 安卓大作业-字典App 可以查询汉字 可以玩成语接龙游戏
  20. JAVA技术交流(学习群):51194570;JAVA技术交流(应用群):51194804

热门文章

  1. 毕业论文word排版技巧
  2. 论文笔记|固定效应的解释和使用
  3. 通信协议基础以及常用的串口通信协议
  4. c语言中break语句的功能,C语言break语句
  5. FileReader读取文件
  6. vscode 下编译k210
  7. 云测试(cloud testing)之我见
  8. ER图和EER图的区别
  9. mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程
  10. 居民物业管理系统(数据结构单链表版)