Properties,xml,yml对比

1. Properties

该文件以后缀.properties结尾,这种文件允许使用key=value的格式存储内容,多用于来做配置文件,Java中用Properties类来读取该配置文件,其他语言也有相应的类去读取properties文件,由于难以表达层次, 复杂的配置文件可以用xml或者yml做配置.用#做注释

2.XML

eXtendsible markup language 可扩展的标记语言,后缀为 .xml
标记语言:文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起以展示文档的结构等

简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析
	

	encoding : 解析xml中的文字的时候,使用什么编码来翻译
	
	

注意:此处指的是解码的,而编码的字符集是xml文件另存为时或者软件工程的IDE设置出来的,如果二者不相符合就会出现乱码

CDATA区:xml的文档结构中已经使用了许多字符。例如<等,如果要在元素或者属性之中使用,就要使用转义字符,但是当大量转义字符出现在一起的时候会降低文档的可读性,因此可以使用CDATA区

<des>baidu]]>des>

xml解析(获取xml元素中的字符数据或者元素属性)
有很多种,但是常用的有两种。

  • DOM 具体解析方案 jaxp sun公司。 比较繁琐
  • SAX 具体解析方案 jdom dom4j 使用比较广泛
    注:dom4j里面支持Xpath的写法。 xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。

xml约束
那么怎么规定素只能出现一次,不能出现多次? 甚至是规定里面只能出现具体的元素名字。
在书写spring的配置文件时候,常常可以自己选择元素,与其中的字符数据和元素属性,这就是通过约束做到的

  1. DTD




  1. Schema
    其实就是一个xml , 使用xml的语法规则, xml解析器解析起来比较方便 , 是为了替代DTD 。
    但是Schema 约束文本内容比DTD的内容还要多。 所以目前也没有真正意义上的替代DTD
约束文档:
	
	<schema xmlns="http://www.w3.org/2001/XMLSchema" 
		targetNamespace="http://www.itheima.com/teacher" 
		elementFormDefault="qualified">
实例文档:
	
	

名称空间的作用

一个xml如果想指定它的约束规则, 假设使用的是DTD ,那么这个xml只能指定一个DTD , 不能指定多个DTD 。 但是如果一个xml的约束是定义在schema里面,并且是多个schema,那么是可以的。简单的说: 一个xml 可以引用多个schema约束。 但是只能引用一个DTD约束。

名称空间的作用就是在 写元素的时候,如果有两个schema都指定了某个元素的约束,可以指定该元素使用的是哪一套约束规则。 默认情况下 ,如果只有一套规则,那么都可以这么写

3.yaml

后缀为.yml或者.yaml都行,注释为#
Properties,xml,yml对比_第1张图片
与xml对比,简洁(xml配置中有大量的资源被浪费在开闭资源上)
Properties,xml,yml对比_第2张图片
Properties,xml,yml对比_第3张图片
Properties,xml,yml对比_第4张图片

你可能感兴趣的:(功能模块)