博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML学习笔记(二)
阅读量:6856 次
发布时间:2019-06-26

本文共 3253 字,大约阅读时间需要 10 分钟。

1、DTD

1.1、什么dtd

dtd(Document Type Definition):文档定义类型,描述xml文档的结构,它描述以下几个方面:

1.元素的定义规则以及元素与元素之间的关系

2.属性的规则

3.实体的规则

dtd与xml文档的关系:

类与对象

数据库中的表结构与数据库中的记录

1.2、为什么要使用dtd

有了dtd,对于每个xml文档而言就有了一个自身的描述文件

有了dtd,对不不同的组织的人可以通过dtd来进行交换数据

有了dtd,对于程序段而言,我们可以通过dtd来验证一个外部的xml文档是否有效

1.3、编写dtd的方式

内部dtd、外部dtd、内外部结合的dtd

1.3.1、内部dtd

]>
s01
关羽
南京

1.3.2、外部dtd

先编写一个demo04.dtd文件

然后编写一个xml文件与上面的dtd进行关联

s02
曹操

1.3.3、内外部结合的dtd

改写上面的代码

以上dtd并没有定义age元素,我们将age元素的定义放在了内部中进行描述

]>
s02
曹操
曹营
12

1.4、元素的定义

元素定义的语法:

content有以下几种类型:

EMPTY:不能包含任何子元素和文本,但是它可以有属性(空元素)

ANY:可以包含任何dtd中定义的元素

#PCDATA:只能包含字符数据,不能包含任何子元素

纯元素类型:只能包含子元素,不能包含文本内容

混合类型:可以包含子元素和文本数据

1.4.1、EMPTY

]>
s01
关羽
南京

1.4.2、ANY

]>
s01
关羽
南京

对于ANY而言,在开发中很少使用。

1.4.3、纯元素类型

]>
s01
s02
南京

1.4.4、混合类型

混合类型中可以放字符数据也可以放元素

]>
s01
s02
南京
关羽是输出
关羽牛逼

1.5、属性

语法:

类型:CDATA、ID、IDREF|IDREFS、枚举类型

属性的特点:#REQUIRED、#IMPLIED、#FIXED value、default value

]>

1.6、实体

1.6.1、普通实体

实体的定义

运用时:采用&实体名;

普通实体是定义在xml文件中,应用也在xml文件中

1.6.2、参数实体

参数实体它是定义在dtd文件中,应用在dtd文件中

xml文件

张三
15
<省份>
江苏
<城市>
南京
<区>
秦淮区

1.7、读取mybatis框架的dtd文件

2、命名空间

需求:

xml01文档

编号 姓名

xml02文档

mytable
100
90

现在这2个xml文件在不同的文件中肯定是没有问题的,但是如果将2个xml中内容放在一起就会造成命名的冲突

编号 姓名
mytable
100
90

那么如何解决->写上前缀

编号
姓名
mytable
100
90

接下来为前缀加上命名空间约束

编号
姓名
mytable
100
90

对于命名空间而言,不仅可以运用在元素上,它也可以运用在属性上面

命名空间就是为了解决命名冲突的问题

转载于:https://blog.51cto.com/11230344/2298266

你可能感兴趣的文章
【Win7下Android native code的编译和调试】
查看>>
【iOS-cocos2d-X 游戏开发之十】自定义各类模版&触屏事件讲解!
查看>>
域环境下如何保护重要资料文件的安全(二)---IRM&RMS(下)
查看>>
服务器升迁架构.png
查看>>
不能联系xx域的域控制器
查看>>
生产网络做portfast等配置对网络的影响
查看>>
Connection is read-only. Queries leading to data modification are not allowed
查看>>
LeetCode - 43. Multiply Strings
查看>>
sublime text3侧边栏主题不生效问题解决
查看>>
Hyper-V Server Replica
查看>>
如何用手机维护Mysql数据库
查看>>
REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框&&获取组件实例常用的两种方式...
查看>>
基于CentOS 5.3平台下搭建PXE部署ESX&ESXi 4.x模板分发服务器 v1.0
查看>>
使用tornado模板引擎配合yaml构建nginx配置接口 [扩展saltstack]
查看>>
网络作者的心声-1、感谢读者,我不会太监
查看>>
WCF分布式开发常见错误解决(1):添加服务引用出错
查看>>
Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛
查看>>
如何根据指定软件版本制作属于自己的puppet yum源
查看>>
Linux下架设rsync服务器
查看>>
windows 屏幕坐标 窗口坐标 客户区坐标 逻辑坐标 设备坐标之间的关系及转换
查看>>