body, table{font-family: 微软雅黑; font-size: 10pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

XML Schema:
█ XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性
█ XML Schema VS DTD:
      ☞XML Schema符合XML语法结构。
      ☞DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
      ☞XML Schema对名称空间支持得非常好。
      ☞XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
      ☞XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
      ☞XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。 

Schema约束快速入门:

XML Schema 文件自身就是一个XML文件,但它的扩展名通常为 .xsd 。
一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。
和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为schema。
编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。
<schema> 元素是每一个 XML Schema 的根元素;
xmlns:xs=“http://www.w3.org/2001/XMLSchema” //标准的名称空间, 表示schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
targetNamespace=“http://www.cskaoyan.com”显示被此 schema 定义的元素 (name, author, price ) 来自命名空间: "http://www.cskaoyan.com"。//这个可以随便改
elementFormDefault="qualified" 指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。
MySchema.xsd NewFile.xml
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"    //这里都是这个
targetNamespace="http://www.example.org/MySchema"  //定义自己的命名空间,“随便写”
elementFormDefault="qualified">  //声明实例要被命名空间限定
   <xs:element name='书架'>
                <xs:complexType>
                        <xs:sequence maxOccurs='unbounded' >
                                <xs:element name='书' >
                                        <xs:complexType>  // 元素定义复杂类型。复杂类型的元素是包含其他元素和/或属性的 XML 元素
                                                <xs:sequence>
                                                        <xs:element name='书名' type='xs:string' />
                                                        <xs:element name='作者' type='xs:string' />
                                                        <xs:element name='售价' type='xs:string' />                                       
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<书架  xmlns="http://www.example.org/MySchema"  //根据上面的xsd文档,写出这个
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  //一般都是这个
                    xsi:schemaLocation="http://www.example.org/MySchema  MySchema.xsd"> //前面也要加上xsd定义的目标命名空间
<书>
                <书名>java面试版本</书名>
                <作者>XXX</作者>
                <售价>30</售价>
</书>
</书架>

<?xml version="1.0" encoding="UTF-8"?>
<meihao:书架  xmlns:meihao="http://www.example.org/MySchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://www.example.org/MySchema  MySchema.xsd">
<meihao:书>
                <meihao:书名>java面试版本</meihao:书名>
                <meihao:作者>XXX</meihao:作者>
                <meihao:售价>30</meihao:售价>
</meihao:书>
</meihao:书架>

XML——Schema的更多相关文章

  1. XML Schema and XMLspy notes

    Introduction An xml documents consists of elements, attributes and text. There are two structures in ...

  2. XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,但更加强大. 作用有: ①定义 ...

  3. XML Schema命名空间解析

    URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...

  4. 【转】XSD (xml Schema Definition)

    来自:http://www.cnblogs.com/newsouls/archive/2011/10/28/2227765.html Xml Schema的用途 1.  定义一个Xml文档中都有什么元 ...

  5. C#与XML Schema的问题

    http://bbs.csdn.net/topics/50493564 weileily: 用XmlSchema.Read方法读取了一个xsd文件,请问如何遍历检索器中的ComplexType与Sim ...

  6. XML Schema的基本语法(转)

    XML Schema的基本语法(转) XSDL(XML Schema定义语言)由元素.属性.命名空间和XML文档种的其他节点构成的. 一.XSD中的元素 XSD文档至少要包含:schema根元素和XM ...

  7. Xml Schema:C#访问在complextype中插入新元素

    最近用c#写Xml Schema代码,找了很久也找不到如何在已有的complextype中插入新的element,最后我充分发挥自己的聪明才智,哈哈,终于从...中找到了灵感. XmlSchemaSe ...

  8. [BTS] System.Xml.Schema.XmlSchemaException: The complexType has already been declared when generate IDoc schema.

    I use wcf-sap adapter for generate the schema of IDoc that named "YHREMPMASTER". but throw ...

  9. onfiguration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]

    org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Una ...

  10. dubbo源码之一——xml schema扩展

    dubbo源码版本:2.5.4 dubbo-parent |----dubbo-config |----dubbo-config-api |----com.alibaba.dubbo.config.* ...

随机推荐

  1. 【自动化】基于Spark streaming的SQL服务实时自动化运维

    设计背景 spark thriftserver目前线上有10个实例,以往通过监控端口存活的方式很不准确,当出故障时进程不退出情况很多,而手动去查看日志再重启处理服务这个过程很低效,故设计利用Spark ...

  2. 网络压缩论文集(network compression)

    Convolutional Neural Networks ImageNet Models Architecture Design Activation Functions Visualization ...

  3. [Pytorch]Pytorch中图像的基本操作(TenCrop)

    转自:https://www.jianshu.com/p/73686691cf13 下面是几种常写的方式 第一种方式 normalize = transforms.Normalize([0.485, ...

  4. Elasticsearch 原理

    Elasticsearch简介 Elasticsearch是一个基于Apache lucene的实时分布式搜索.具有以下优点: 1.实时处理大规模数据.2.全文检索,能够做到结构化检索和聚合分析.3. ...

  5. Spring boot 遇到了连接mysql的错误

    问题1: Establishing SSL connection without server's identity verification is not recommended. Accordin ...

  6. Flex布局兼容知识点总结

    转载,原文http://www.cnblogs.com/tugenhua0707/p/5180841.html,部分截取 假设父容器class为 box,子项目为item.旧版语法如下:一:定义容器的 ...

  7. Python将某文件夹及其子文件夹下某种格式的文件移动到另一个指定的文件下

    主要是理解好上面的1~3点的内容,理解三个返回值所代表的意思.如果不清楚的话,可以在代码的for循环的第一句注释输出看看各个代表的是什么 再者就是对 shutil.copy(file_path,new ...

  8. [转]mysql-mmm集群(多实例)

    一.需求说明 最近一直在学习mysql-mmm,想以后这个架构也能用在我们公司的业务上,我们公司的业务是单机多实例部署,所以也想把mysql-mmm部署成这样,功夫不负有心人,我成功了,和大家分享一下 ...

  9. Rspec: everyday-rspec实操。5:controller test(了解基础)

    第 5 章 控制器测试 5.1基础 rails generate rspec:controller home RSpec.describe HomeController, type: :control ...

  10. Confluence 6 安装 Active Directory 证书服务器

    如果证书服务器已经安装了的话,跳过这一步骤,直接进入下一步.下面步骤中的屏幕截图是从 Windows 2008 服务器版上安装的截图,针对 2000 和 2003 安装过程是一样的. 作为系统管理员登 ...