XML介绍

1、什么是 XML文件?

  XML即可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。

  通俗的讲,XML文件一般用来保存有关系的数据。除此之外,在程序开发中,我们通常用来做各种框架的配置文件。

2、XML 文件由以下几个部分组成:

  ①、文档声明

  ②、元素

  ③、属性

  ④、注释

  ⑤、CDATA区、特殊字符

  ⑥、处理指令(processing intruction)

一、文档声明

  在编写 XML 文档时,需要首先使用文档声明,声明 XML 文档的类型。

  ①、最简单的语法:

    <?xml version="1.0" ?>

  ②、用 encoding 属性说明文档的字符编码:

    <?xml version="1.0" encoding="utf-8" ?>

    常见的字符编码:gbk,gb2312,utf-8,基本上我们使用utf-8,全世界通用,不会出现乱码的现象。

  ③、用 standalone 属性说明文档是否独立:

    <?xml version="1.0" encoding="utf-8" standalone="no" ?>

    standalone有两个属性,yes和no。如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。

二、元素

  ①、XML 元素指的是 XML 文件中出现的标签,一个标签分为开始标签和结束标签,分为两种写法:

    1、包含标签体:<user>Tom</user>

    2、不包含标签体:<user></user>,也可以简写为<user/>

  ②、一个标签中也可以嵌套其他的若干个子标签。但所有的标签必须合理的嵌套,绝不允许交叉嵌套:

    合理写法:<users>

            <name>Tom</name>

         </users>

    错误写法:<users><name>Tom</users></name>

  ③、格式良好的 XML 文档必须有且仅有一个根标签,其他的标签都是这个标签的子孙标签。

  ④、对于 XML 标签中出现的所有空格和换行,XML 解析都会当做标签内容进行处理。比如下面两个是不一样的

    1、<name>Tom</name>

    2、<name>

        Tom

      </name>

    注意:由于在 XML 中,空格和换行都会作为原始内容被处理,所以在编写 XML 文件的时候使用换行和缩进等方式来让原文件中的内容清晰可读的良好习惯可能要被迫改变。

       这和 HTML 标签的书写是有点区别的。

  ⑤、元素的命名规范:

    1、区分大小写,例如:<P>和<p>是不一样的

    2、不能以数字或下划线“-”开头

    3、不能以 xml(或XML,Xml)作为开头

    4、不能包含空格

    5、名称中间不能包含冒号“:”

三、属性

  ①、一个元素可以有多个属性,每个属性都有它自己的名称和取值,比如:

    <input name="tom" />

  ②、属性值一定要用双引号或单引号引起来

  ③、属性的命名规范和元素的命名规范一样

  ④、XML 文件中,元素属性所代表的信息,也可以改为用子元素来表示,比如:

    <input name="tom" />

    可以写为:

    <input>

      <name>tom</name>

    </input>

四、注释

  ①、XML 文件中注释采用:"<!-- 注释 -->" 这样的格式

  ②、XML 声明之前不能有注释

  ③、注释不能嵌套,比如下面不合规范:

    <!-- 全局注释   <!-- 局部注释 -->-->

五、CDATA区和特殊字符

①、在编写 XML 文档时,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,那么我们就可以把这些内容放到 CDATA区里面,对于 CDATA 区里面的内容,XML 解析程序不会处理,而是原封不动的输出。

    语法:<![CDATA[内容]]>        

    比如:<![CDATA[

          <input>

            <name>tom</name>

          </input>

       ]]>

    注意:CDATA和[内容]之间不能有空格

  ②、转义字符:对于一些单个字符,如果想显示其原始样式,可以使用转义的形式

六、处理指令processing instruction

  ①、用来解析引擎如何解析 XML 文档内容

    比如:在 XML 文档中可以使用 xml-stylesheet 指令,通知 XML 解析引擎,应用 CSS 文件显示 XML 文档内容

      <?xml-stylesheet type="text/css" href="a.css"?>

    处理指令必须以<? 开头,以 ?> 结尾

3、XML 约束

一、什么是 XML 约束?

在 XML 文档中,可以编写一个文档来约束它的书写规范,这称为 XML 约束

二、为什么需要 XML 约束?

因为往往我们写一个 xml 文档,里面的元素基本上是需要确定的,以便于我们方便的解析数据。如果没有约束,那编写 XML 文档的人员可以随便写,而且万一元素不小心写错了,这也会对我们后期解析造成困难。如果有 XML 约束以后,那 XML 文档的元素便是确定的,不会发生写错的情况(写错了文档会提示报错的)

三、常用的约束技术

  ①、XML DTD(Document Type Definition)

    1、引入 dtd 文件的两种方式:

      当引用文件在本地时:<!DOCTYPE 文档根节点 SYSTEM "dtd文件的URL">

        比如:<!DOCTYPE BookPlay SYSTEM "book.dtd">

      当引用文件是一个公共文件时:<!DOCTYPE 文档根节点 PUBLIC  SYSTEM "dtd名称""dtd文件的URL">

比如:<!DOCTYPE BookPlay PUBLIC SYSTEM

            "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN"

            "http://java.sun.com/dtd/-app_2_3.dtd">

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构说

缓存策略之LRU实现及分析

LRU定义 Cache的容量有限,因此当Cache的容量用完后,而又有新的内容需要添加进来时, 就需要挑选并舍弃原有的部分内容,从而腾出空间...

30410
来自专栏Coco的专栏

BAT及各大互联网公司2014前端笔试面试题--JavaScript篇

2455
来自专栏专注 Java 基础分享

Spring框架学习之高级依赖关系配置(二)

     紧接着上篇内容,本篇文章将主要介绍XML Schema的简化配置和使用SpEL表达式语言来优化我们的配置文件。 一、基于XML Schema的简化配置...

18410
来自专栏大内老A

ASP.NET MVC的Model元数据与Model模板:模板的获取与执行策略

当我们调用HtmlHelper或者HtmlHelper<TModel>的模板方法对整个Model或者Model的某个数据成员以某种模式(显示模式或者编辑模式)进...

1776
来自专栏鬼谷君

django rest framework mixins小结

由上图可以看出这个类的一个逻辑,其中,perform_create( )对serializer直接进行save保存,当在一些情境下,我们需要对perform...

583
来自专栏技术博客

Entity Framework 系统约定配置

Code First之所以能够让开发人员以一种更加高效、灵活的方式进行数据操作有一个重要的原因在于它的约定配置。现在软件开发越来越复杂,大家都试图将软件设计的越...

672
来自专栏java学习

面试题63(链表,哈希表)

关于链表,哈希表 1·以下关于链式存储结构的叙述中哪一个是正确的? A.链式存储结构不是顺序存取结构 B.逻辑上相邻的节点物理上必须邻接 C.可以通过计算直接确...

3026
来自专栏JetpropelledSnake

RESTful源码笔记之RESTful Framework的Mixins小结

本篇对drf中的mixins进行简要的分析总结。 Mixins在drf中主要配合viewset共同使用,实现http方法与mixins的相关类与方法进行关联。

541
来自专栏技术墨客

JVM与字节码——类的方法区模型 原

这是一段平凡得不能再平凡的Java代码,稍微有点编程语言入门知识的人都能理解它表达的意思:

532
来自专栏阿杜的世界

Java Web技术经验总结(十五)

742

扫码关注云+社区