XML语法小结

XML语法小总结

1.XML文档必须包含根元素。

上一篇的例子中

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

note是根元素,除声明外,最外层的开启标签标识的元素是根元素。

2.所有XML元素必须有一个关闭标签

每一个元素都必须有一个对应的关闭标签

    <note>This is a note.//1
    <content>balabalabala</content>//2
    //3

上述的例子是错误的,需要在第三行加上note的关闭标签

3.XML标签对大小写敏感
<test>this is a test</test>
<Test>this is a test</Test>

上述两个元素虽然字面意思都是test,但XML认为是两个元素。一对开启标签和关闭标签的元素名字需要相同才是时合法的语法。

4.XML需要正确嵌套

因为XML是以树结构来组织元素的,所以嵌套的顺序必须符合一开一闭不能嵌套其他的元素的开或闭。

如下面的例子
是不允许出现的

<out>
<in>
this is a test
</out>
</in>

必须符合下面的格式

<out>
<in>
this is a test
</in>
</out>


引用网上的原话:正确嵌套的意思是在内打开,必须要在内关闭。

5.XML的属性值必须加引号(单引号或双引号都可)

下面的例子是错误的

<learn_note date=12/5/2017>
<target>
learn xml
</target>
</learn_note>

下面的例子是正确的

<learn_note date="12/5/2017">
<target>
learn xml
</target>
</learn_note>

所有元素实例的属性都需要是字符串类型,比如在本文出现的标红字体,使用了如下的标签,属性颜色用字符串类型的RGB值来设定。

<font color="#ff00">在里面的文字将会被渲染成红色</font>

效果如下:
在里面的文字将会被渲染成红色

6.XML中的特殊转义字符

在XML中有一些字符有特殊的含义,其含义会和默认的一些语法起冲突,比如:< 解析器会认为这是一个新元素的开始。为了解决这个为,维护XML的人设计了 实体引用来代替这些字符。
XML中的实体引用有5个。其中”<” 号和”&”号是必须使用实体引用外,其他三个符号不是必须的,但最好使用实体引用来代替,特别是”>”.

实体引用标识被替换符号语义
&lt ;<小于号
&gt ;>大于号
&amp ;&逻辑与
&apos ;单引号
&quot ;双引号
7.XML中的注释

语法

<!--这里填注释内容-->
8.XML命名规则

XML的元素命名规则
* 名称可以包含字母,数字,字符
* 名称不能以数字或者标点符号开始
* 名称不能以xml字样开始,无论大小写,只要是xml这三个字母,都不可以。
* 名称不能包含空格

8.1命名习惯
两个以上单词组成的名称应以下划线在分割单词,以提高阅读性
如:`bookname ----> <book_name>`

如果是”-“,”.”,”:”这三种字符的话,可能会在某些软件中出现误识别,执行别的语义操作。

9.XML的属性和元素的区别和使用建议

引用上面的例子

<learn_note date="12/5/2017">
<target>
learn xml
</target>
</learn_note>

<learn_note >
<date>
12/5/2017
</date>
<target>
learn xml
</target>
</learn_note>

例子①中的属性date和②中的元素date都表达了相同的信息,其实这两者在数据存储上没什么区别。
但是呢,如果date的数据是在使用者角度来看应该是一个数据文档中的数据,而不是一个对该数据文档中的某个数据标签的一个描述,建议扩展date,使之成为一个元素,这样子在数据的表达上更符合规范,且方便处理。
引用网上的理念:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值