xml..

概述

可扩展标记语言(Extensible Markup Language)

XML 的设计宗旨是传输,存储数据,而非显示数据

XML 标签没有被预定义。您需要自行定义标签

作用

  1. 两个程序间进行数据通信(跨语言传输数据)
  2. 给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端口号
XML常见应用
  • XML的出现解决了程序间数据传输的问题:
    比如QQ之间的数据传送,用XML格式来传送数据,具有良好的可读性,可维护性

  • XML可以做配置文件
    XML文件做配置文件可以说非常普遍,比如我们的Tomcat服务器的server.xml,web.xml。再比如我们的structs中的structs-config.xml文件,和hibernate的hibernate.cfg.xml等等。

  • XML可以充当小型的数据库
    XML文件可以做小型数据库,也是不错的选择,我们程序中可能用到一些经常要人工配置的数据,如果放在数据库中读取不合适(因为这会增加维护数据库的工作),则可以考虑直接用XML来做小型数据库。这种方式直接读取文件显然要比读数据库快。比如msn中保存用户聊天记录就是用XML文件。

XML 与 HTML的主要差异
  • XML 和 HTML 为不同的目的而设计
  • XML 被设计为存储数据,其焦点是数据的内容
  • HTML 被设计用来显示数据,其焦点是数据的外观

特点

  • 能对各种编程语言编写的数据进行管理,使得在任何平台下都能通过解析器来读取XML数据
  • 跨语言数据传递

案例

用xml记录信息

<?xml version="1.0" encoding="gb2312"?>
 
<class>
    <stu id="001">
        <name>杨过</name> 
        <sex></sex>
        <age>20</age>
    </stu>  
    <stu id="002">
        <name>小龙女</name>    
        <sex></sex>
        <age>21</age>
    </stu>
</class>

DTD约束xml

​ 由于xml的标签由用户自己定义,因此在开发的时候,每个人都可以根据自己的需求来定义xml标签,这样导致项目中的xml难以维护,因此需要使用一定的规范机制来约束xml文件中的标签书写。

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT users (user+) >
<!ELEMENT user (name,age,addr) >
<!ELEMENT name (#PCDATA) >
<!ELEMENT age (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
引入

外部DTD的引入方式外部DTD主要指的一个独立的DTD文件。
首先要书写DTD文件,然后在要被约束的xml文件中引入。

<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">
  • 文档根结点 指的是当前xml中的根标签。
  • SYSTEM 引入的系统中存在文件
  • “DTD文件的URL” DTD存放的位置

引入公共的DTD

<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
  • 文档根结点 指的是当前xml中的根标签
  • PUBLIC 表示当前引入的DTD是公共的DTD

在xml中直接书写DTD

<!DOCTYPE  根标签名 [
具体的标签的约束
]>

示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE users[
    <!ELEMENT users (user+) >    
    <!ELEMENT user (name,age,addr) >    
    <!ELEMENT name (#PCDATA) >    
    <!ELEMENT age (#PCDATA) >    
    <!ELEMENT addr (#PCDATA) >    
]>
<users>
    <user>
        <name>zhangsan</name>
        <age>23</age>
        <addr>shanghai</addr>
    </user>
    <user>
        <name>lisi</name>
        <age>24</age>
        <addr>beijing</addr>
    </user>
</users>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EnndmeRedis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值