XMLXSROBJECTID スカラー関数

XMLXSROBJECTID 関数は、引数で指定された XML 文書の妥当性検査に使用された XML スキーマの XSR オブジェクト ID を戻します。 XSR オブジェクト ID は BIGINT 値として戻され、これを SYSCAT.XSROBJECTS の単一行のキーとして使用できます。

Read syntax diagramSkip visual syntax diagramXMLXSROBJECTID(xml-value-expression)

スキーマは SYSIBM です。

xml-value-式
結果が XML データ・タイプの値になる式を指定します。 結果の XML 値は、XML 文書または NULL 値の単一項目から成る XML シーケンスでなければなりません (SQLSTATE 42815)。 引数が NULL の場合、この関数は NULL を戻します。 xml-value-expression が妥当性検査済み XML 文書を指定していない場合、この関数は 0 を戻します。

  • XML スキーマは、それを使用して妥当性検査が行われた XML 値に影響を与えることなくドロップできるため、この関数によって戻された XSR オブジェクト ID に対応する XML スキーマは、もはや存在しない場合があります。 したがって、照会で XSR オブジェクト ID を使用してカタログ・ビューから XML スキーマの詳細情報をフェッチしようとした場合、空の結果セットが戻される場合があります。
  • アプリケーションは、XSR オブジェクト ID を使用して、XML スキーマに関する追加情報を取り出すことができます。 例えば、XSR オブジェクト ID を使用することによって、登録済み XML スキーマを構成する個々の XML スキーマ文書を SYSCAT.SYSXSROBJECTCOMPONENTS から戻したり、XML スキーマにおける XML スキーマ文書の階層を SYSCAT.XSROBJECTHIERARCHIES から戻したりできます。

  • 例 1: 表 MYTABLE に保管されている XML 文書 XMLDOC の XML スキーマ ID を取り出します。
       SELECT XMLXSROBJECTID(XMLDOC) FROM MYTABLE
  • 例 2: 表 MYTABLE 内の特定の ID (この場合は DOCKEY=1) を持つ XML 文書に関連付けられた XML スキーマ文書を、その XML スキーマを構成する XML スキーマ文書の階層を含めて取り出します。
       SELECT H.HTYPE, C.TARGETNAMESPACE, C.COMPONENT
       FROM SYSCAT.XSROBJECTCOMPONENTS C, SYSCAT.XSROBJECTHIERARCHIES H
       WHERE C.OBJECTID =
         (SELECT XMLXSROBJECTID(XMLDOC) FROM MYTABLE
          WHERE DOCKEY = 1)
       AND C.OBJECTID = H.OBJECTID