Schema约束模式实例
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天 XML和DTD、schema约束
1.xml * 扩展名:*.xml * 作用:存储.配置 一个XML文件分为如下几部分内容:文档声明.元素.属性.注释 CDATA区.特殊字符.处理指令(processing instruction ...
- 关于Spring配置文件xml文档的schema约束
最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...
- XML约束——Schema约束
XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...
- JAVAWEB第六天schema约束
一.schema简介 1.schema符合xml的语法,它是一个xml文件 2.一个xml中只能有一个dtd文件,但是可以有多个schema,通过名称空间来区分(类似于JAVA中的包) 3.dtd中有 ...
- 数据库中Schema(模式)概念相关
数据库中Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完整地描述了数据库的结构.还有一种是物理上的 Schema,指的是数据库中的一个名字空间,它包含一组表.视图 ...
- python类是实例的工厂_Python设计模式之工厂方法模式实例详解
本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...
- schema约束文档与xml文件详解
schema约束文档与xml文件详解 1.前言 2.schema约束文档(.xsd文件) 2.1 targetNameSpace 2.2官方文档与自定义文档的关系 2.3 声明名称空间 2.4 sch ...
- 设计模式 命令模式 实例_根据您的命令-命令设计模式
设计模式 命令模式 实例 命令设计模式是一种广为人知的设计模式,属于行为设计模式("四人帮"的一部分). 顾名思义,它与应用程序中的动作和事件有关. 问题陈述: 假设有一个网页将在 ...
- JavaScript设计模式-10.工厂模式实例xhr
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 < ...
最新文章
- waf可以查看post请求吗_WAFNinja:一款绕过WAF的渗透工具
- python 减少可调用对象的参数个数
- 日志库EasyLogging++学习系列(5)—— 辅助配置功能
- 转贴 周鸿祎充其量算作一个低级商人
- 牛客OI周赛15-普及组
- NoSQL 数据库不应该放弃 Consistency
- 提高篇 第五部分 动态规划 第2章 树型动态规划
- 【Elasticsearch】Elasticsearch:Searchable snapshot - 可搜索的快照
- 产品销售的过程中,价值是不断被定义和挖掘的
- Winform使用BackgroundWorker组件进行异步编程
- 事务机制主要是利用undo、redo日志?
- 【云原生 | Docker篇】 Docker容器配置阿里云镜像加速器
- mysql数据库保存文件_MySQL数据库文件介绍及存放位置
- 清华学姐教你如何用python处理excel数据
- WPS Excel表格条件格式在哪如何使用以大于500的数字飘红加粗为例
- anaconda安装支持mpi并行化的h5py
- Noisy Channel Language Model Prompting for Few-Shot Text Classification
- fitbit aria体脂秤二次开发遇到的问题
- 在线生成.SVG文件
- Programmer-如何从菜鸟变成老鸟?