XML:基础

一、语法

基本结构:

实例一:

XML 复制代码
<?xml version="1.0" encoding="ISO-8859-1"?>
<note data="2008/08/08">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

XML 文档编写前要使用文档申明,声明要给出具体编码,必须有根元素,其元素必须有闭标签,且对大小写敏感。XML元素的属性名也可以自定义,但属性值必须要用引号括起来。

要注意的是元数据(有关数据的描述)应当存储为属性,而数据本身应当存储为元素,尽量减少使用属性,因为属性不易拓展。

实体引用:

实例二:

XML 复制代码
<?xml version="1.0" encoding="ISO-8859-1"?>
<note data="2008/08/08">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<message>if salary &lt; 1000 then</message>
<body>Don't forget the meeting!</body>
</note>

在XML中如果把"<"符号放在元素中,会被解释器当成新的元素开始,为了避免这个错误,用实体引用来代替 "<" 字符,以下是5个预定义的实体引用。

|---------|--------|--------|
| 实体 | 符号 | 名称 |
| &lt; | < | 小于 |
| &gt; | > | 大于 |
| &amp; | & | 和号 |
| ' | ' | 单引号 |
| &quot; | " | 引号 |

二、命名规则

XML元素命名有以下规则:

  • 不能以数字或标点符号开头
  • 不能以字符xml开头
  • 不能包含空格
  • 使名称具有描述性,可以使用下划线的命名方式

三、 命名冲突

当两个不同文档使用相同的元素名称时,就会发送命名冲突。

例:

文档一:

XML 复制代码
<table>
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

文档二:

XML 复制代码
<table>
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

当两个xml文档被一起使用时候,table标签则会发生冲突。

1.前缀

通过添加前缀避免冲突

文档一:

XML 复制代码
<h:table>
   <h:tr>
   <h:td>Apples</h:td>
   <h:td>Bananas</h:td>
   </h:tr>
</h:table>

文档二:

XML 复制代码
<h:table>
   <h:tr>
   <h:td>Apples</h:td>
   <h:td>Bananas</h:td>
   </h:tr>
</h:table>

2.命名空间(xmlns属性)

语法:xmlns:namespace-prefix="namespaceURI",其中namespace-prefix是自定的,可以不写,不写代表默认命名空间,namespaceURI是一个可访问的url,具体内容为XML Schema定义,用来定义xml文档的结构,以此防止冲突。

文档一:

XML 复制代码
<table xmlns="http://www.w3.org/TR/html4/">
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

文档二:

XML 复制代码
<table xmlns="http://www.w3school.com.cn/furniture">
   <name>African Coffee Table</name>
   <width>80</width>
   <length>120</length>
</table>
相关推荐
用户594404103561 分钟前
【完整fx】Vue3 + TS + Leafletjs 打造企业级原神大地图
前端
深念Y4 分钟前
数据库层设计的取舍:ORM 便利性与手写 SQL 的安全性权衡
java·数据库·sql·golang·框架·语言·ome
小江的记录本6 分钟前
【ORM 框架】MyBatis-Plus 核心特性、条件构造器、分页插件、乐观锁插件(附《思维导图》、《问题排查与实践清单》和《面试高频考点汇总》)
java·windows·spring boot·python·spring·面试·mybatis
clorinda7 分钟前
SQL 快速入门:题目单知识点精炼总结
java·数据库·sql
AI人工智能+电脑小能手17 分钟前
大白话说Java设计模式-40-备忘录模式(业务实战篇)
java·设计模式·事务回滚·备忘录模式·状态保存·spring transactional·购物车快照
计算机魔术师17 分钟前
AI开源社区迎来最大并购案:Hugging Face以129亿美元估值入局英伟达
前端
SimonKing18 分钟前
白嫖国产多模态大模型:商汤 SenseNova 接入指南
java·后端·程序员
小江的记录本18 分钟前
【ORM框架】MyBatis核心原理、ORM思想、MyBatis vs JPA
java·数据库·后端·spring·spring cloud·oracle·mybatis
mayaairi21 分钟前
JS DOM与事件处理完全指南
服务器·前端·javascript
_明月29 分钟前
汇川技术股份有限公司面试--Java外包岗
java·面试·职场和发展