数据库23 XML

                                                                                                                                                                                                                                  从 # XML

使用<a> </a> 表示一个节点

里面是节点的内容

允许节点有属性,属性只能出现一次,属性的顺序无关,属性必须是键值对,写在前一个<>之间

允许节点有子节点,子节点可以重复出现

<element> <\element> 不包含子节点,即内部不能出现<>

DTD

是一个xml文档的类型定义。主要有三种结构。

DOCTYPE是最外层的包裹:

<!DOCTYPE 根的名称[ … ]>

ELEMENT可以对表有哪些属性进行限定,也可以规定属性的类型

<!ELEMENT 节点名称(子节点1, 子节点2, 子节点 3,…)>

<!ELEMENT 属性名称(数据类型)>

ELEMENT中允许的数据类型为:

PCDATA: 字符数据

ENPTY: 无数据

ANY: 任意数据

ATTLIST是对元素的属性类型和默认声明。

<!ATTLIST 表名称

属性1 类型声明 默认声明

属性2 类型声明 默认声明 … … …>

其中属性的类型有:

CDATA 表示字符数据

ID 该属性值在整个element中是唯一,和主键差不多

IDREF 该属性出现在其他元素的ID位置,和外键差不多

IDREFS 允许一个引用列表,相当于这个外键是多个元素的ID

默认声明为:

#REQUIRED 表示有默认值

#IMPLIED 表示无默认值

XPath

‘/’ 表示所有孩子

’//‘ 表示任意后代

‘.’ 表示同辈

‘…’ 表示父辈

‘@a’ 表示a是一个属性, 而不是一个节点,返回的时候加,在括号里作为查询调节的时候不需要加。

‘a[b > 2]’ 表示a元素中b属性大于2的节点

‘a[count(.//) > 2]’ count表示计算节点个数,这个式子表示a节点的所有后代个数大于2的的a节点。

括号里面的路径必须加上./表示继承括号外面的路径。

‘count(a)’ a如果是一个@b,那么返回该元素属性b所引用的元素

‘id(a)’ 如果a是一个@b,那么返回该元素在b属性引用的元素

如果是一个字符串,返回

‘doc(a)’ 表示a文件的根, a应该是一个文件名

XQuery

表示$a遍历了路径为b的所有节点,对a进行测试,符合where的节点

return 表示返回了什么,如果是计算的值,必须括号{ }括起来,如果是固定的字符则不用。

return可以加上多个括号进行嵌套查询

for $a in n 

where 。。。

return 。。。

多个for表示join

for $i in a,
	for $j in b,

将c这个式子结果赋值给$n

好像自己设定的变量都需要加$

let $n = :c

表示$d所有的孩子

$d\*

XQury 函数

declare loacal: fun_name(b as string) as string*{
	for .. in ...
	where ...
	return ...
}

local: 命名空间

as 后面表示类型

类型后面*表示可以返回多个该类型的值

调用的时候:

return local: fun_name(…)

或者

let $a = local:fun_name(b)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值