XML类型
XML数据类型可以被用来存储XML(eXtensible Markup Language)数据。XML数据也可以存储为text类型,但是XML数据类型的优势在于会检查每个存储的值是不是结构良好的XML值。XML可以存储由XML标准定义的格式良好的文档,以及由XML标准中定义的“内容”片段,内容片段中可以有多个顶级元素或字符节点。
XML类型相关的支持函数请参见XML函数。
设置XML参数
语法格式如下:
1 2 |
SET XML OPTION { DOCUMENT | CONTENT }; SET xmloption TO { DOCUMENT | CONTENT }; |
当一个字符串值在没有通过XMLPARSE或XMLSERIALIZE函数与XML类型进行转换时,由XML OPTION会话配置参数来决定选择DOCUMENT还是CONTENT。
默认为CONTENT,表示所有形式的xml数据都被允许。
示例:
1 2 3 4 |
SET XML OPTION DOCUMENT; SET SET xmloption TO DOCUMENT; SET |
设置二进制数据的编码格式
语法格式:
1
|
SET xmlbinary TO { base64 | hex}; |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SET xmlbinary TO base64; SET SELECT xmlelement(name foo, bytea 'bar'); xmlelement ----------------- <foo>YmFy</foo> (1 row) SET xmlbinary TO hex; SET SELECT xmlelement(name foo, bytea 'bar'); xmlelement ------------------- <foo>626172</foo> (1 row) |
访问XML值
XML数据类型比较特殊,它不提供任何比较操作符,这是因为对于XML数据没有通用的比较算法,所以无法通过比较一个XML值和一个搜索值来检索数据行。XML数据通常应该伴随一个ID值用于检索数据。另一种比较XML值的方案是将XML值转换成字符串,但字符串的比较并不能解决常见的XML值比较场景。