XSR_REGISTER プロシージャー

XSR_REGISTER プロシージャーは、XML スキーマ登録プロセスの一部として呼び出される最初のプロシージャーです。このプロシージャーは XML スキーマ・リポジトリー (XSR) で XML スキーマを登録します。

構文図を読む構文図をスキップするXSR_REGISTER(rschema,name,schemalocation,content,docproperty)

スキーマは SYSPROC です。

許可

このプロシージャーの呼び出し元の許可 ID には、少なくとも次のいずれかの権限が必要です。
  • DBADM 権限。
  • IMPLICIT_SCHEMA データベース権限 (SQL スキーマが存在しない場合)。
  • CREATEIN 特権 (SQL スキーマが存在する場合)。
rschema
XML スキーマのための SQL スキーマを指定するタイプ VARCHAR (128) の入出力引数。 SQL スキーマは XSR 内でこの XML スキーマの識別に使用される SQL ID の一部です。 (SQL ID のもう 1 つの部分は name 引数によって与えられます。) この引数には、NULL 値を入れることができます。 このことは、CURRENT SCHEMA 特殊レジスターで定義されるように、デフォルトの SQL スキーマが使用されていることを示しています。すべての SQL ID に適用される有効な文字と区切り文字の規則は、この引数にも適用されます。 ストリング SYS で始まるリレーショナル・スキーマをこの値に使用しないでください。 XSR オブジェクトは、XSR の外に存在するデータベース・オブジェクトとの間で名前の衝突を起こすことはありません。XSR オブジェクトは、XML スキーマ・リポジトリー の外にあるオブジェクトとは違う名前空間で発生するからです。
name
XML スキーマの名前を指定する、タイプ VARCHAR (128) の入力および出力引数。 XML スキーマの完全 SQL ID は、 rschema.name で、XSR にあるすべてのオブジェクト間で固有でなければなりません。 この引数は NULL 値を受け入れます。 この引数に NULL 値が提供される場合、固有な値が生成され、XSR 内に保存されます。 すべての SQL ID に適用される有効な文字と区切り文字の規則は、この引数にも適用されます。
schemalocation
タイプ VARCHAR (1000) の入力引数 (NULL 値を入れることができる)。1 次 XML スキーマ文書のスキーマ位置を示します。 この引数は XML スキーマの外部名です。この 1 次文書は XML インスタンス文書内で xsi:schemaLocation 属性を指定して識別することができます。
content
1 次 XML スキーマ文書の内容を含むタイプ BLOB (30M) の入力パラメーター。 この引数に NULL 値を入れることはできません。XML スキーマ文書を提供する必要があります。
docproperty
1 次 XML スキーマ文書のプロパティーを示すタイプ BLOB (5M) の入力パラメーター。 このパラメーターには NULL 値を入れることができます。そうでない場合、この値は XML 文書です。

  • 例 1: 次の例は、コマンド行から XSR_REGISTER プロシージャーを呼び出す方法を示しています。
       CALL SYSPROC.XSR_REGISTER(
         'user1',
         'POschema',
         'http://myPOschema/PO.xsd',
         :content_host_var,
         :docproperty_host_var)
  • 例 2: 次の例は、Java™ アプリケーション・プログラムから XSR_REGISTER プロシージャーを呼び出す方法を示しています。
    
       stmt = con.prepareCall("CALL SYSPROC.XSR_REGISTER (?, ?, ?, ?, ?)");
       String xsrObjectName = "myschema1";
       String xmlSchemaLocation = "po.xsd";
       stmt.setNull(1, java.sql.Types.VARCHAR);
       stmt.setString(2, xsrObjectName);
       stmt.setString(3, xmlSchemaLocation);
       stmt.setBinaryStream(4, buffer, (int)length);
       stmt.setNull(5, java.sql.Types.BLOB);
       stmt.registerOutParameter(1, java.sql.Types.VARCHAR);
       stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
       stmt.execute();