XML类型函数

    • xmlparse ( { DOCUMENT | CONTENT } value)

      描述:使用函数xmlparse, 来从字符数据产生xml类型的值。

      参数:数据类型为text

      返回值类型:xml

      示例:

    • xmlserialize( { DOCUMENT | CONTENT } value AS type )

      描述:使用函数xmlserialize, 来从xml产生一个字符串。

      参数:类型可以是character,character varying或text或其中某个的变种。

      返回值类型:xml

      示例:

      1. xmlserialize
      2. --------------
      3. good
      4. (1 row)
      5. openGauss=# SELECT xmlserialize(DOCUMENT '<head>bad</head>' as text);
      6. xmlserialize
      7. ------------------
      8. <head>bad</head>
      9. (1 row)
    • xmlcomment(text)

      描述:创建一个XML值,并且它包含一个用指定文本作为内容的XML注释。该文本不包含“–”字符且不存在是“-”字符的结尾、符合XML注释的格式要求。且当参数为空时、结果也为空。

      参数:数据类型为text。

      返回值类型:xml

      示例:

      1. openGauss=# SELECT xmlcomment('hello');
      2. xmlcomment
      3. --------------
      4. <!--hello-->
    • xmlconcat(xml[, …])

      描述:将由单个XML值组成的列表串接成一个单独的值,该值包含一个XML的内容片断。其中空值会被忽略,并且只有当所有参数都为空时结果才为空。

      参数:数据类型为xml。

      返回值类型:xml

      示例:

    • xmlelement(name name [, xmlattributes(value [AS attname] [, … ])] [, content, …])

      描述:使用给定名称、属性和内容产生一个XML元素。

      返回值类型:xml

      示例:

      1. openGauss=# SELECT xmlelement(name foo);
      2. xmlelement
      3. ------------
    • xmlforest(content [AS name] [, …])

      描述:使用给定名称和内容产生一个元素的XML序列。

      返回值类型:xml

      示例:

      1. openGauss=# SELECT xmlforest('abc' AS foo, 123 AS bar);
      2. xmlforest
      3. <foo>abc</foo><bar>123</bar>
    • xmlpi(name target [, content])

      描述:创建一个XML处理指令。若内容不为空、则内容不能包含字符序列。

      返回值类型:xml

      示例:

      1. openGauss=# SELECT xmlpi(name php, 'echo "hello world";');
      2. xmlpi
      3. -----------------------------
      4. <?php echo "hello world";?>
    • xmlroot(xml, version text | no value [, standalone yes|no|no value])

      描述:修改一个XML值的根结点的属性。如果指定了一个版本,它会替换根节点的版本声明中的值、如果指定了一个独立设置、它会替换根节点的独立声明中的值。

      1. openGauss=# SELECT xmlroot('<?xml version="1.1"?><content>abc</content>',version '1.0', standalone yes);
      2. xmlroot
      3. ----------------------------------------
      4. <?xml version="1.0" standalone="yes"?>
      5. <content>abc</content>
    • xmlagg(xml)

      描述:该函数是一个聚集函数、它将聚集函数调用的输入值串接起来,且支持跨行串接。

      参数:xml

      返回值类型:xml

      示例:

    • xmlexists(text passing [BY REF] xml [BY REF])

      描述:评价一个XPath 1.0表达式(第一个参数),以传递的XML值作为其上下文项。 如果评价的结果产生一个空节点集,该函数返回false,如果产生任何其他值,则返回true。 如果任何参数为空,则函数返回null。 作为上下文项传递的非空值必须是一个XML文档,而不是内容片段或任何非XML值。

      参数:xml

      返回值类型:bool

      示例:

      1. openGauss=# SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF '<towns><town>Toronto</town><town>Ottawa</town></towns>');
      2. xmlexists
      3. ------------
      4. t
      5. (1 row)
    • xml_is_well_formed(text)

      描述:检查text是不是正确的XML类型格式、返回值为布尔类型。

      参数:text

      返回值类型:bool

      示例:

      1. xml_is_well_formed
      2. --------------------
      3. f
      4. (1 row)
    • xml_is_well_formed_document(text)

      描述:检查text是不是正确的XML类型格式、返回值为布尔类型。

      参数:text

      返回值类型:bool

      示例:

      1. openGauss=# SELECT xml_is_well_formed_document('<pg:foo xmlns:pg="http://postgresql.org/stuff">bar</pg:foo>');
      2. xml_is_well_formed_document
      3. -----------------------------
      4. (1 row)
    • xml_is_well_formed_content(text)

      描述:检查text是不是正确的XML类型格式、返回值为布尔类型。

      参数:text

      返回值类型:bool

      示例:

      1. openGauss=# select xml_is_well_formed_content('k');
      2. xml_is_well_formed_content
      3. ----------------------------
      4. t
      5. (1 row)
    • xpath(xpath, xml [, nsarray])

      描述:在XML值xml上计算XPath 1.0表达式xpath (a text value)。它返回一个XML值的数组,该数组对应于该XPath表达式产生的结点集合。如果该XPath表达式返回一个标量值而不是一个结点集合,将会返回一个单一元素的数组。

      第二个参数必须是一个良构的XML文档。特殊地,它必须有一个单一根结点元素。

      该函数可选的第三个参数是一个名字空间映射的数组。这个数组应该是一个二维text数组,其第二轴长度等于2(即它应该是一个数组的数组,其中每一个都由刚好 2 个元素组成)。每个数组项的第一个元素是名字空间的名称(别名),第二个元素是名字空间的URI。并不要求在这个数组中提供的别名和在XML文档本身中使用的那些名字空间相同(换句话说,在XML文档中和在xpath函数环境中,别名都是本地的)。

      返回值类型:xml

      示例:

    • xpath_exists(xpath, xml [, nsarray])

      描述:该函数是xpath函数的一种特殊形式。这个函数不是返回满足XPath 1.0表达式的单一XML值,它返回一个布尔值表示查询是否被满足(具体来说,它是否产生了空节点集以外的任何值)。这个函数等价于标准的XMLEXISTS谓词,不过它还提供了对一个名字空间映射参数的支持。

      返回值类型:bool

      示例:

      1. openGauss=# SELECT xpath_exists('/my:a/text()', '<my:a xmlns:my="http://example.com">test</my:a>',ARRAY[ARRAY['my', 'http://example.com']]);
      2. xpath_exists
      3. --------------
      4. t
    • query_to_xml(query text, nulls boolean, tableforest boolean, targetns text)

      返回值类型:xml

    • query_to_xmlschema(query text, nulls boolean, tableforest boolean, targetns text)

      描述:返回 XML 模式文档,这些文档描述上述对应函数所执行的映射。

    • query_to_xml_and_xmlschema(query text, nulls boolean, tableforest boolean, targetns text)

      描述:产生XML数据映射和对应的XML模式,并把产生的结果链接在一起放在一个文档中。

    • cursor_to_xml(cursor refcursor, count int, nulls boolean,tableforest boolean, targetns text)

      描述:该函数将关系表的内容映射成 XML 值,可理解为XML的导出功能。

      返回值类型:xml

    • cursor_to_xmlschema(cursor refcursor, nulls boolean, tableforest boolean, targetns text)

      描述:返回 XML 模式文档,这些文档描述上述对应函数所执行的映射。

      返回值类型:xml

    • schema_to_xml(schema name, nulls boolean, tableforest boolean, targetns text)

      描述:把模式中的表映射成XML值。

      返回值类型:xml

    • schema_to_xmlschema(schema name, nulls boolean, tableforest boolean, targetns text)

      描述:把模式中的表映射成XML模式文档。

      返回值类型:xml

    • schema_to_xml_and_xmlschema(schema name, nulls boolean, tableforest boolean, targetns text)

      描述:把模式中的表映射成XML值和模式文档。

      返回值类型:xml

    • database_to_xml(nulls boolean, tableforest boolean, targetns text)

      描述:把数据库的表映射成XML值。

      返回值类型:xml

    • database_to_xmlschema(nulls boolean, tableforest boolean, targetns text)

      描述:把数据库的表映射成XML模式文档。

      返回值类型:xml

    • database_to_xml_and_xmlschema(nulls boolean, tableforest boolean, targetns text)

      描述:把数据库的表映射成XML值和模式文档。

      返回值类型:xml

    • table_to_xml(tbl regclass, nulls boolean, tableforest boolean, targetns text)

      描述:该函数将关系表的内容映射成 XML 值,可理解为XML的导出功能。

      返回值类型:xml

    • table_to_xmlschema(tbl regclass, nulls boolean, tableforest boolean, targetns text)

      描述:返回 XML 模式文档,这些文档描述上述对应函数所执行的映射。

      返回值类型:xml

    • table_to_xml_and_xmlschema(tbl regclass, nulls boolean, tableforest boolean, targetns text)

      说明:

      • xpath相关函数仅支持 xpath() 和 xpath_exists()、由于其使用xpath语言查询XML文档,而这些函数都依赖于libxml2 库,且这个库仅在Xpath1.0提供、所以对XPath的限制为1.0。