首页 > 其他 > 详细

XML简介及其约束

时间:2019-09-29 17:24:23      阅读:154      评论:0      收藏:0      [点我收藏+]

XML指可扩展标记语言,是一种标记语言,很类似HTML。XML的设计宗旨是传输数据,而非显示数据。XML标签没有被预定义,需要自行定义标签。XML被设计为具有自我描述性,是 W3C 的推荐标准。

 

其用处:数据存储、配置文件、数据传输

 

文档声明

必须写在文档的第一行,写法:<?xml version="1.0">

属性:

version版本号,固定1.0

encoding指定文档的码表 默认iso-8859-1

standalone指定文档是否独立yes或no(是否可以引用其它文件)

 

规则

所有 XML 元素都须有关闭标签,对大小写敏感,文档必须有根元素,XML 的属性值须加引号。

实体引用

在 XML 中,一些字符拥有特殊的意义。

如果把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

这样会产生 XML 错误:为了避免这个错误,请用实体引用来代替 "<" 字符:

5 个预定义的实体引用

< < 小于

> > 大于

&amp; & 和号

&apos; ‘ 单引号

&quot; " 引号

 

CDATA里面的数据会原样显示:

<![CDATA[数据内容]]>

 

属性值必须引用引起,单双都行。

技术分享图片

 

 

什么是约束

规定文档当中只能写哪些标签,并且会给一些提示。

 

DTD约束

内部dtd,即在xml当中定义xml,不常用。

外部dtd,即在外部文件当中单独定义的dtd

本地:<!DOCTYPE 名称 SYSTEM "xxxxx.dtd"

技术分享图片

 

 

规则解释:

根标签web-app中可以有三个子标签,并且按顺序出现

*代表可以出现任意次

?表示可以出现,但是最多只能出现一次

 

servlet当中又可以出现三个子标签,并且按顺序出现

必须要有一个servlet-name,且只能出现一次

(servlet-class | jsp-file) 两者中必须出现一个

 

servlet-name当中的内容要求是文本内容

welcome-file-list当中至少有一个子标签welcome-file

技术分享图片

 

 

这种约束存在的问题:

在标签当中存放的内容不知道是什么类型,写的都是汉字,这种约束不严谨。

 

schema约束

复杂标签(complexType):标签当中还有子标签

简单标签(simpleType):标签当中没有子标签

 

使用过程:

编写根标签

引用约束地址 xsi:schemaLocation="默认空间 约束地址.xsd"

引用实例名称空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema"

默认名称空间 xmlns="http://liuchengyin.cn/xml"

 技术分享图片

 

 

规则解释:

name = "students" 根标签

type = "studentsType" 相当于别名

complexType里的name="studentsType" 表示对标签students做约束

xsd:element name = "student" 表示students里的子标签 type同理,minOccurs和maxOccurs限制了子标签出现的最少和最多次数。

xsd:retriction base = "xsd:string" 表示内容类型为string类型

xsd:enumeration value = "male" xsd:enumeration value = "female" 表示是枚举类型,值只能是male或者female

xsd:retriction base = "xsd:integer" 表示内容类型为integer类型

xsd:minInclusive value = "0" xsd:maxInclusive value = "256" 表示最短和最长的长度

xsd:pattern value = "lk_\d{4}" 表示正则表达式,这里意思是以lk开头后面跟4位数字 

老九学堂会员社群出品

XML简介及其约束

原文:https://www.cnblogs.com/ljxt/p/11608909.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!