book.xsd

<?xml version="1.0" encoding="UTF-8"?>

<!-- xmlns:默认命名空间

xmlns:xs:当前的文档的标记来自http://www.w3.org/2001/XMLSchema命名空间 前缀:xs
     elementFormDefault:当前文档使用的标记必须是使用http://www.w3.org/2001/XMLSchema命名空间的
     targetNamespace:目标文档使用的命名空间
     根节点: xs:schema   也必须这样,否则就不是XML SChema模式
      -->
<xs:schema xmlns="http://www.w3school.com.cn" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
   targetNamespace="http://www.w3school.com.cn">

<!--创建根节点  bookinfo -->
  <xs:element name="bookinfo">

<xs:complexType>
      <!--复合类型  minOccurs:最小出现次数  maxOccurs:最大出现次数
      unbounded :无穷大 -->
      <xs:sequence>

<xs:element ref="book" minOccurs="1" maxOccurs="unbounded" />

</xs:sequence>

</xs:complexType>
  </xs:element>

<!--复合元素:有属性也 有子标签 -->
  <xs:element name="book" >

<xs:complexType>
      <!--xs:all 标记出现的顺序 任意出现   xs:sequence:按前后出现顺序 -->

<!--调用元素组 -->
      <xs:group  ref="elementinfo" />

<!--定义属性   fixed:指定值   default:     use="required":必须出现-->
      <xs:attribute name="id" use="required"  type="xs:string"/>

<!-- 调用属性组-->
      <xs:attributeGroup ref="attr" />

</xs:complexType>

</xs:element>

<!-- 属性组   :管理一组属性-->
  <xs:attributeGroup name="attr">
    <xs:attribute name="tilte"   type="xs:string"/>
    <xs:attribute name="description"  type="xs:string"/>

</xs:attributeGroup>

<!--元素组  管理一组元素element -->
  <xs:group name="elementinfo">

<xs:all>

<xs:element ref="bookname" />
      <xs:element ref="author" />
      <xs:element ref="price" />
      <xs:element ref="age" />
      <xs:element ref="type" />

</xs:all>
  </xs:group>

<!-- 简单元素:只有标签内容,没有属性也没有子标签   simpleType
element:标签   name:名字  type:数据类型 ref:引用定义好的标记
-->
  <!-- bookname-->
  <xs:element name="bookname" type="xs:string"></xs:element>

<!--author -->
  <xs:element name="author" type="xs:string"></xs:element>

<!-- price-->
  <xs:element name="price" >
    <xs:simpleType >
      <!-- 简单元素-->
      <xs:restriction base="xs:decimal">
        <xs:fractionDigits value="2" />
        <!-- 小数点位数 -->

</xs:restriction>
    </xs:simpleType>

</xs:element>

<!-- age-->
  <xs:element name="age" >
    <xs:simpleType >
      <!-- 简单元素-->
      <xs:restriction base="xs:int">
        <xs:minInclusive value="18" />
        <xs:maxInclusive value="30" />
      </xs:restriction>
    </xs:simpleType>

</xs:element>

<!-- type      元素中如果加约束,通过ximpleType,然后数据类型通过  restriction 中的base指定-->
  <xs:element name="type">
    <xs:simpleType >
      <!-- 简单元素-->
      <xs:restriction base="xs:string">
        <xs:enumeration value="喜剧" />
        <xs:enumeration value="悲剧" />

</xs:restriction>
    </xs:simpleType>
  </xs:element>

</xs:schema>

book.xml

<?xml version="1.0" encoding="gb2312"?>
 
 <!--
  xmlns:默认命名空间     xmlns:xsi:
   xsi:schemaLocation:导入xsd文档
 
 -->
<bookinfo xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.w3school.com.cn book.xsd">
    
  <book id="101">
    
   <bookname>java编程思想</bookname> 
   <author>张三</author>
    <price>89.5</price>
    <age>18</age>
    <type>喜剧</type> 
  </book> 
 
   <book id="102">
    
   <bookname>7天精通炒股</bookname> 
   <author>周星星</author>
    <price>189.5</price>
    <age>18</age>
    <type>悲剧</type> 
  </book> 
 
</bookinfo>

转载于:https://blog.51cto.com/baiyan425/612439

Schema约束模式实例相关推荐

  1. 第1天 XML和DTD、schema约束

    1.xml * 扩展名:*.xml * 作用:存储.配置 一个XML文件分为如下几部分内容:文档声明.元素.属性.注释  CDATA区.特殊字符.处理指令(processing instruction ...

  2. 关于Spring配置文件xml文档的schema约束

    最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  3. XML约束——Schema约束

    XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...

  4. JAVAWEB第六天schema约束

    一.schema简介 1.schema符合xml的语法,它是一个xml文件 2.一个xml中只能有一个dtd文件,但是可以有多个schema,通过名称空间来区分(类似于JAVA中的包) 3.dtd中有 ...

  5. 数据库中Schema(模式)概念相关

    数据库中Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表.视图 ...

  6. python类是实例的工厂_Python设计模式之工厂方法模式实例详解

    本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...

  7. schema约束文档与xml文件详解

    schema约束文档与xml文件详解 1.前言 2.schema约束文档(.xsd文件) 2.1 targetNameSpace 2.2官方文档与自定义文档的关系 2.3 声明名称空间 2.4 sch ...

  8. 设计模式 命令模式 实例_根据您的命令-命令设计模式

    设计模式 命令模式 实例 命令设计模式是一种广为人知的设计模式,属于行为设计模式("四人帮"的一部分). 顾名思义,它与应用程序中的动作和事件有关. 问题陈述: 假设有一个网页将在 ...

  9. JavaScript设计模式-10.工厂模式实例xhr

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 < ...

最新文章

  1. waf可以查看post请求吗_WAFNinja:一款绕过WAF的渗透工具
  2. python 减少可调用对象的参数个数
  3. 日志库EasyLogging++学习系列(5)—— 辅助配置功能
  4. 转贴 周鸿祎充其量算作一个低级商人
  5. 牛客OI周赛15-普及组
  6. NoSQL 数据库不应该放弃 Consistency
  7. 提高篇 第五部分 动态规划 第2章 树型动态规划
  8. 【Elasticsearch】Elasticsearch:Searchable snapshot - 可搜索的快照
  9. 产品销售的过程中,价值是不断被定义和挖掘的
  10. Winform使用BackgroundWorker组件进行异步编程
  11. 事务机制主要是利用undo、redo日志?
  12. 【云原生 | Docker篇】 Docker容器配置阿里云镜像加速器
  13. mysql数据库保存文件_MySQL数据库文件介绍及存放位置
  14. 清华学姐教你如何用python处理excel数据
  15. WPS Excel表格条件格式在哪如何使用以大于500的数字飘红加粗为例
  16. anaconda安装支持mpi并行化的h5py
  17. Noisy Channel Language Model Prompting for Few-Shot Text Classification
  18. fitbit aria体脂秤二次开发遇到的问题
  19. 在线生成.SVG文件
  20. Programmer-如何从菜鸟变成老鸟?

热门文章

  1. node.js学习5--------------------- 返回html内容给浏览器
  2. [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
  3. 如何在阿里云上安全的存放您的配置 - 续
  4. 获取保存在沙盒中plist文件的用户的字典信息
  5. jQuery序列化表单
  6. 几种开源工作流引擎的简单比较(转)
  7. 使用模块化编译缩小 apk 体积
  8. Mysql备份与还原及优化方法
  9. 在iOS上使用ffmpeg播放视频
  10. Linux14-进程的优先级nice