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