1. XML概述
XML : 可拓展标记语言(Extensible Markup Language, XML)。 是一个非常有用的、用来描述结构化信息的技术。
1.1 XML文档头
XML 文档应当以一个文档头开始,严格来说,文档头是可选的,但是强烈建议使用文档头。文档类型定义的是确保文档正确的一个重要机制。
1 | <?xml version=1.0 encoding="UTF-8"?> |
1.2 XML元素
XML 文档的正文包含根元素,根元素包含其他元素。
1 | <?xml version=1.0 encoding="UTF-8"?> |
注意:
元素可以有子元素、文本或两者兼有。在设计XML文档时,对元素的设计的最好的方式是:要么全部使用元素,要么全部使用文本,这样做的目的是方便解析。
我们应该避免下面这种设计:
1 | <?xml version=1.0 encoding="UTF-8"?> |
1.3 XML属性
XML 元素可以包含属性,例如:
1 | <?xml version=1.0 encoding="UTF-8"?> |
问题:什么时候使用属性,什么时候使用元素?
1 | 文档一: |
从上面示例来看,文档一似乎比文档二要更简单一些。然而,属性的灵活性要比元素差很多,通常情况下属性只应该用来作为值的解释,而不是用来作为值。
结论:
优先使用元素,通常情况下属性只应该用来作为值的解释,而不是用来作为值。
注意:
在HTML中,所有的属性都不会展示在HTML中。
2. XML与属性文件(property file)的区别
属性文件包含了各种键值对,例如:
name=sungm
区别:
- 属性文件结构更加简洁,在要描述的信息更加复杂的场景下,属性文件不能更好的处理它,XML文件可以处理更加复杂的结构化信息。
- 属性文件采用的是单一的平面结构,XML文件采用的是层次结构,也可以说是树型结构,更加清晰。
- 属性文件中key是不能重复的,XML文件可以存在重复的元素。
结论:
在处理不复杂的结构化信息时优先考虑使用属性文件,在处理复杂的结构化信息时考虑使用XML文件
3. XML与HTML的区别
HTML : 超文本标记语言(Hyper Text Markup Language)
区别:
- HTML对大小写不敏感;XML对大小写敏感
- 在HTML中,如果从上下文中可以分清哪里是段落或者列表项的结尾,那么结束标签可以省略;XML不可省略结束标签
- 在XML中,只有单个标签而没有对应的结束标签的元素必须以 / 结尾。
- 在XML中,属性值必须用引号括起来;在HTML中,引号可有可无
- 在HTML中,属性可以没有值;在XML中,属性必须都有属性值
4. 良好的XML文档格式
- XML文档必须有根元素,且只能有1个根元素
- XML文档必须有关闭标签
- XML文档对大小写敏感
- XML对大小写敏感
- XML元素必须被正确的嵌套
- XML属性必须加引号