XML 约束
XML约束
一、约束
约束:规定 xml 文档的书写规则
要求:
1、能够在 xml 中引入约束文档
2、能够简单的读懂约束文档
分类:
1、DTD:一种简单的约束技术(后缀.dtd)
2、Schema:一种复杂的约束技术(后缀.xsd)
二、DTD 约束
1、引入 dtd 文档到 xml 文档中
- 内部 dtd:将约束规则定义在 xml 文档中
- 外部 dtd:将约束规则定义在外部的 dtd 文件中
- 外部本地文件:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
- 外部网络文件:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
2、案例
student.dtd 约束
<!-- 一个根元素,叫students,里面可以有0-n个student-->
<!ELEMENT students (student*) >
<!-- 一个student 里面有 name,age,sex,三个标签,且书写按照顺序-->
<!ELEMENT student (name,age,sex)>
<!-- name 里面存放数据-->
<!ELEMENT name (#PCDATA)>
<!-- age 里面存放数据-->
<!ELEMENT age (#PCDATA)>
<!-- sex 里面存放数据-->
<!ELEMENT sex (#PCDATA)>
<!-- student 标签有一个number属性,是作为id属性,而且是必须有的-->
<!ATTLIST student number ID #REQUIRED>
student.xml 文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE students SYSTEM "student.dtd"> <!--<!DOCTYPE students [ // 也可以这样引入约束 <!ELEMENT students (student+) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED> ]>-->
<students> <student number="s001">
<name>zhangsan</name>
<age>abc</age>
<sex>hehe</sex>
</student> <student number="s002">
<name>lisi</name>
<age>24</age>
<sex>female</sex>
</student> </students>
三、Schema
1、引入约束文件
(1)填写 xml 文档的根元素
(2)引入 xsi 前缀
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
(3)引入 xsd 文件命名空间
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
(4)为每一个xsd约束声明一个前缀,作为标识
xmlns="http://www.itcast.cn/xml"
2、案例
student.xsd 约束文件
<?xml version="1.0"?>
<xsd:schema xmlns="http://www.itcast.cn/xml"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.itcast.cn/xml" elementFormDefault="qualified">
<!-- 里面有一个根元素students,类型为自定义-->
<xsd:element name="students" type="studentsType"/>
<!-- 自定义的 students 类型复杂类型-->
<xsd:complexType name="studentsType">
<!-- 属性是有序的 -->
<xsd:sequence>
<!-- 子标签为 student,类型为自定义,最少一个,最多无限-->
<xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- 自定义student类型 复杂类型-->
<xsd:complexType name="studentType">
<!-- 各个属性都是有序的 -->
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="age" type="ageType" />
<xsd:element name="sex" type="sexType" />
</xsd:sequence>
<!-- student 标签有一个number属性,自定义类型,必须有 -->
<xsd:attribute name="number" type="numberType" use="required"/>
</xsd:complexType>
<!-- 自定义简单类型 -->
<xsd:simpleType name="sexType">
<!-- 里面的值为字符串,切取值有限制-->
<xsd:restriction base="xsd:string">
<xsd:enumeration value="male"/>
<xsd:enumeration value="female"/>
</xsd:restriction>
</xsd:simpleType>
<!-- 自定义简单类型-->
<xsd:simpleType name="ageType">
<!-- 里面的值为整形,取值范围 0-256 -->
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="256"/>
</xsd:restriction>
</xsd:simpleType>
<!-- 自定义简单类型-->
<xsd:simpleType name="numberType">
<!-- 里面的值为字符串,切以heima开头,后面跟4位数字-->
<xsd:restriction base="xsd:string">
<xsd:pattern value="heima_\d{4}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
student.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!--
1.填写xml文档的根元素
2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入xsd文件命名空间. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
4.为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itcast.cn/xml" -->
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd" >
<student number="heima_0001">
<name>tom</name>
<age>18</age>
<sex>male</sex>
</student> </students>
XML 约束的更多相关文章
- XML约束之DTD
XML文件的约束:什么叫约束呢?顾名思义,就是对xml文件的内容进行按照既定规则的限制.我们知道,因为xml文件的标签是可以自定义的,而往往我们用xml文件都是为了表达一定的数据集合(即小型的数据库) ...
- JAVA基础学习之XMLCDATA区、XML处理指令、XML约束概述、JavaBean、XML解析(8)
1.CDATA区在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理.遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直 ...
- XML约束——DTD约束
参考: 方立勋老师的讲课视频. 什么是XML约束 •在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 为什么需要XML约束 常用的约束技术 •XML DTD • ...
- 二、XML约束
XML约束有dtd约束和Schema约束两种 dtd约束:可以在xml内部写dtd约束也可以在xml中引用外部dtd文件 book.dtd<!ELEMENT 书架 (书+)> < ...
- javaweb学习总结八(xml约束DTD)
一:XML约束概念 xml约束:可以编写一个文档来约束xml文件的书写规范. xml语言格式比较严谨,不可能让程序员随意编写,所以必须要有约束. 二:常用的xml约束技术 1:DTD,document ...
- JavaBean 内省API BeanUtils工具 泛型 xml xml约束
1 什么是JavaBean?有何特征? 1)符合特定规则的类 2)JavaBean分二类: a)侠义的JavaBean .私有的字段(Field) .对私 ...
- XML约束
XML约束--能够看懂约束内容,根据约束内容写出符合规则的xml文件. DTD约束 1)导入dtd方式 内部导入 <!DOCTYPE note [ <!ELEMENT note (to,f ...
- XML约束(3)
本节要点: 了解XML的约束模式 了解DTD 了解Schema 1 了解XML的约束模式 计算机程序在处理XML文档之前,必须能够解析出XML文档的内容中各个元素的相关信息.将解析出来的信息再交给下游 ...
- xml约束的概念
1 xml 约束的概念 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML ...
- xml约束技术之dtd
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块.这篇文章作简单介绍下DTD的用法.想学习完整的请点击下面w3c的教程. 1.DTD官方教程 ##2.xml约束技术: DTD约束:语法相 ...
随机推荐
- 2019_软工实践_Beta(5/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 部署新服务器 展示GitHub当日代码/文档签入记录 接下来的计划 准备 ...
- Redis的常用JavaAPI(Jedis)实现
一. pom依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> & ...
- 如何获取select下拉框中option选中的文本值
$(select的id或者class).change(function(){ $(this).find("option:selected").text() }) 源文:https: ...
- (转)CentOS 7.6 上编译安装httpd 2.4.38
原文:https://www.s4lm0x.com/archives/40.html https://www.cnblogs.com/sunshine-H/p/8110608.html----超详细 ...
- logrotate 切割日志
在工作中需要切割日志我们项目中选择的系统自带的logrotate,如需要其他需求需要自己在百度一下或者参考: https://www.cnblogs.com/kevingrace/p/6307298. ...
- Qt编译理解(Qt 对 C++ 的扩展主要是3个方面)
沉沉的黑夜都是白天的前奏.--郭小川 舍弃IDE或qmake.cmake等工具的束缚,通过几个例子, 一步步从标准 C++ 的编译过渡到 Qt 的编译. Qt 对 C++ 的扩展主要是3个方面: 1) ...
- JVM的内存分配垃圾回收策略
之前看过<深入了解Java虚拟机>感觉容易忘,今天写一篇博客加深一下印象. JVM的内存分配和垃圾回收(GC)主要发生在Java堆中.而Java堆根据对象的存活时间可以分为新生代和老年代, ...
- 用海豚框架(DolphinPHP)实现单/多图片上传时,如何获得图片路径
用框架实现图片上传很简单,就不多说了,然后这个框架的实现机制是这样的,我们选择图片,点击上传,他会将图片保存在uploads下,以当天时间和随机字母作为图片名,然后在返回个数字,这个数字是这个图片的i ...
- 39 多线程(十一)——ThreadLocal
目前阶段,我只能知其然,不能做到知其所以然,这里引用一篇其所以然的文章,为以后理解ThreadLocal做准备: https://www.cnblogs.com/ldq2016/p/9041856.h ...
- hashlib 加密 与进度条
# 加密 ''' md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?') #字节才可以 print md5.hexdig ...