XML基础知识——结构

一、xml文件里面几个概念

1. 结点
2. 标签
3. 数据
4. 注释

1、首先xml文件是由一个标记结点和一个根结点组成的,标记结点就是<?xml version="1.0" encoding="UTF-8"?>,可能里面会有些许差别,比如多个属性少个属性什么的,但总会是以<?xml开始,以?>结尾,并且会且只会出现在xml文件开始的地方
2、其次,根结点就是除了标记结点外的另一个结点,所有的数据都会以某种形式存储到根节点的子节点中
3、一个结点必定是有始有终的,这一点很重要,截图中的根节点名称是:ilog.rules.studio.model.brl:ActionRule,这个结点的起点就是第2行开头处,终点在第24行结尾处


二、标签

标签简单来说就是一个个结点中单个的元素,这么说有点复杂:
这是一个标签:<ilog.rules.studio.model.brl:ActionRule xmi:version="2.0" xmlns:xmi="
http://www.omg.org/XMI" xmlns:ilog.rules.studio.model.brl="
http://ilog.rules.studio/model/brl.ecore">
这也是一个标签:<eAnnotations source="ilog.rules.custom_properties">
这些都是标签:<details key="group" value="rtsAdministrator"/>、</eAnnotations>、<name>、</name>


三、数据标签

图中从<![CDATA[开始,到]]>结束,是一种XML规范里面定义的数据标签,位于<![CDATA[和]]>之间的就是数据
另外一种数据:

就是位于一对标签<name>和</name>之间的“1301河北车贷投保多年”,这种数据我们可以看成一种特殊的标签,这个标签没有开始符<和终止符>,简单称为文本标签。


问:你这里所谓的终止符是什么?
答:<name>是一个标签,</name>也是一个标签,和结点的概念是不一样的,结点是由一组对称的标签构成的集合,标签的话就是里面一个个元素,没有所谓的开始和终止的分别,就以name这个结点来说,<name>1301河北车贷投保多年</name>,这是一个完整的结点,这个结点由3个标签组成:
1. <name>
2. 1301河北车贷投保多年
3. </name>
总结:节点由标签组成 ,标签没有终止,它只是属于节点的一种元素

四、标签的类型

1. 起始标签,通常就是一个结点的第一个标签,如<name>
2. 终止标签,通常就是一个结点的最后一个标签,如</name>
3. 文本标签,注意,文本标签只能位于一对起始标签和终止标签内,且这对标签内不能有其他标签存在
4. 自反标签,就是一个标签没有与之相对应的标签,他自己就代表了开始和结束:<templateInfo/>
5. 数据标签,就是以<![CDATA开始,以]]>结束的标签


五、注释

xml里面的注释是以<!--开始,以-->结束的,例如下面截图中绿色的字体部分:

习惯上我们将注释放在需要注明的结点之前,注释在结构上存放的位置要求相对比较低,随意性比较大,不过不算是重点,我们可以忽略


六、结点

一个xml文件是由最基本的两个结点构成的,一个标记结点,一个根结点


根结点

根结点和普通的结点,比如上面说道的name结点:<name>1301河北车贷投保多年</name>,起始没有什么本质的区别,都是由一组对称的标签组成
有几个特殊的结点需要先说下,这些结点特殊就特殊在结点本质上就是标签,一共有三种:
1. 文本标签
2. 数据标签
3. 自反标签
这三种标签也可以看作是结点,而且是不可再分的结点,也就是不存在子结点的结点

常规的结点

常规的结点一定是由一个开始标签如<name>,和一个终止标签如</name>构成的这对标签内存在0个或多个子结点

七、属性

属性可以属于标签,也可以属于结点
因为属性是对一个标签的补充说明,而且只可能是开始标签或自反标签两种类型的标签
图上有两个结点,两个标签都具有属性
父节点eAnnotations具有属性“source”,其属性值为“ilog.rules.custom_properties”
子节点details有两个属性key和value,属性值分别为“group”和“rtsAdministrator”
这里我们说的是结点的属性,但我们也可以认为是开始标签eAnnotations和自反标签details具有的属性,是等价的

现在已经把一个xml文件完全拆解为:结点、标签和属性三个概念

(补充:标签和结点都有名称,开始标签、终止标签、自反标签的名称很好理解,就是标签里的第一个单词。 文本标签和数据标签的名称,我们认为是里面所有的文本数据,这个比较特殊<有这个概念就好 > 至于结点的名称,也比较简单,一般的结点的名称就是开始标签的名称,三种特殊的结点的名称是各自标签的名称)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值