PLSQL 内の XML ドキュメントに対して XSD 検証を実行しようとしていますが、動作に問題があります。
XMLTYPE
オブジェクトを作成しましたが、それisSchemaBased()
に対して呼び出すと 0 (false) が返されます。検証するためには明らかにXMLTYPE
スキーマ ベースである必要がありcreateSchemaBasedXML
ますXMLTYPE
。私が抱えている問題は、スキーマが 2 つの部分に分かれていることです (スキーマ ファイルを結合することは残念ながらオプションではありません)。つまりcreateSchemaBasedXML
、メイン スキーマを指定しようとすると、インポートされた参照を解決できないために失敗します。 2 番目の XSD ドキュメントから。
-- lxml is the XMLTYPE which has been populated with the XML before this point
dbms_xmlschema.registerSchema(
schemaURL => mainSchemaURL,
schemaDoc => mainSchemaDoc,
local => true,
genTypes => true,
genTables => false,
force => true,
enableHierarchy => dbms_xmlschema.ENABLE_HIERARCHY_NONE);
dbms_xmlschema.registerSchema(
schemaURL => importedSchemaURL,
schemaDoc => importedSchemaDoc,
local => true,
genTypes => true,
genTables => false,
force => true,
enableHierarchy => dbms_xmlschema.ENABLE_HIERARCHY_NONE);
if lxml.isSchemaBased() = 1 then
dbms_output.put_line('Schema based');
else
dbms_output.put_line('Non-schema based');
end if;
dbms_ouput.put_line('About to apply schema');
lxml := lxml.createSchemaBasedXML(mainSchemaURL);
dbms_ouput.put_line('We don't get this far');
lxml := lxml.createSchemaBasedXML(importedSchemaURL);
メインスキーマ内のインポートされたスキーマ参照が失敗を引き起こさないように、mainSchemaURL
と の両方を同時にインポートできる方法はありますか?importedSchemaURL
ORA-31079: unable to result reference to type [type containing imported type]
どんな助けや指針も大歓迎です。
更新: Oracle バージョン 11g を使用しています