XMLATTRIBUTES スカラー関数

XMLATTRIBUTES 関数は、引数から XML 属性を構成します。

Read syntax diagramSkip visual syntax diagramXMLATTRIBUTES( ,attribute-value-expressionASattribute-name )

スキーマは SYSIBM です。 関数名を修飾名で指定することはできません。

この関数は、XMLELEMENT 関数の引数としてのみ使用できます。 結果は、それぞれの非 NULL 入力値の XQuery 属性ノードを含む XML シーケンスになります。

属性値式 (attribute-value-expression)
結果が属性値になる式。 attribute-value-expression のデータ・タイプを XML タイプ、BINARY タイプ、VARBINARY タイプ、または構造化タイプにすることはできません (SQLSTATE 42884)。 式には任意の SQL 式を指定できます。 式が単純な列参照でない場合、属性名を指定する必要があります。
attribute-name
属性名を指定します。 この名前は SQL ID であり、XML 修飾名の形式かまたは QName でなければなりません (SQLSTATE 42634)。 有効な名前の詳細については、 W3C XML namespace specifications を参照してください。 属性名は、xmlns にしたり、名前の前に xmlns: を付けたりすることはできません。 名前空間は、関数 XMLNAMESPACES を使って宣言します。 重複した属性名を (暗黙的、明示的にかかわらず) 使用することはできません (SQLSTATE 42713)。

attribute-name が指定されない場合、attribute-value-expression は列名でなければなりません (SQLSTATE 42703)。 属性名は、列名から XML 属性名への完全にエスケープしたマッピングを使用する列名から作成されます。

結果のデータ・タイプは XML です。 attribute-value-expression の結果が NULL になる可能性がある場合は、結果も NULL になる可能性があります。attribute-value-expression の結果がすべて NULL であれば、結果も NULL 値になります。

注: XMLATTRIBUTES は、出力にブランク・スペースや改行文字を挿入しません。 例の出力はすべて、読みやすくするために書式を整えています。
  • 例 1: エレメント、およびその属性を生成します。
       SELECT E.EMPNO, XMLELEMENT(
         NAME "Emp",
         XMLATTRIBUTES(
           E.EMPNO, E.FIRSTNME ||' '|| E.LASTNAME AS "name"
         )
       )
       AS "Result"
       FROM EMPLOYEE E WHERE E.EDLEVEL = 12
    この照会は、次のような結果を生成します。
    EMPNO  Result
    000290 <Emp EMPNO="000290" name="JOHN PARKER"></Emp>
    000310 <Emp EMPNO="000310" name="MAUDE SETRIGHT"></Emp>
    200310 <Emp EMPNO="200310" name="MICHELLE SPRINGER"></Emp>
  • 例 2: エレメント、および QName で使用されない名前空間宣言を生成します。 属性値には接頭部が使用されます。
       VALUES XMLELEMENT(
         NAME "size",
         XMLNAMESPACES(
           'http://www.w3.org/2001/XMLSchema-instance' AS "xsi",
           'http://www.w3.org/2001/XMLSchema' AS "xsd"
         ),
         XMLATTRIBUTES(
           'xsd:string' AS "xsi:type"
         ), '1'
       )
    この照会は、次のような結果を生成します。
    <size xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xsi:type="xsd:string">1</size>