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 个预定义的实体引用
< < 小于
> > 大于
& & 和号
' ‘ 单引号
" " 引号
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位数字
老九学堂会员社群出品
原文:https://www.cnblogs.com/ljxt/p/11608909.html