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约束:语法相 ...
随机推荐
- Deep Reinforcement Learning with Iterative Shift for Visual Tracking
Deep Reinforcement Learning with Iterative Shift for Visual Tracking 2019-07-30 14:55:31 Paper: http ...
- TTA 方法
可将准确率提高若干个百分点,它就是测试时增强(test time augmentation, TTA). 这里会为原始图像造出多个不同版本,包括不同区域裁剪和更改缩放程度等,并将它们输入到模型中: 然 ...
- Qt源码学习之路(2) QCoreApplication(1)
QCoreApplication最重要的函数便是exec(),我们便从这个函数开始分析QCoreApplication都干了什么. 先列出exec()函数的源码 static int exec();/ ...
- Python分词工具——jieba
jieba简介 python在数据挖掘领域的使用越来越广泛.想要使用python做文本分析,分词是必不可少的一个环节在python的第三方包里,jieba应该算得上是分词领域的佼佼者. GitHub地 ...
- matlab学习笔记11_2高维数组操作 squeeze,ind2sub, sub2ind
一起来学matlab-matlab学习笔记11 11_2 高维数组处理和运算 squeeze, ind2sub, sub2ind 觉得有用的话,欢迎一起讨论相互学习~Follow Me squeeze ...
- matlab学习笔记10_7数值计算类型和常用计算公式
一起来学matlab-matlab学习笔记11 数值数据类型以及特殊函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...
- **80. Remove Duplicates from Sorted Array II 删除排序数组中的重复项 II
1. 原始题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件 ...
- NI MAX中缺少串口(转)
Software Measurement & Automation Explorer (MAX) Driver NI-VISA 问题详述 在NI MAX中,设备和接口中的串口不可用或缺 ...
- H2数据库介绍
H2数据库是一个开源的关系型数据库. H2是一个采用java语言编写的嵌入式数据库引擎,只是一个类库(即只有一个 jar 文件),可以直接嵌入到应用项目中,不受平台的限制 应用场景: 可以同应用程序打 ...
- 在MAX10上使用DDR3 IP的一个关于DQS/DQSn pin的错误解决办法
MAX10 是Intel FPGA的CPLD中的一个特殊的芯片,因为它内部有CPLD的Flash结构,也有FPGA的Ram结构.具体的可以参考MAX10 Handbook文档. Max10 在外部存储 ...