如何选择向Oracle注册的XML架构?

aamkag61  于 2023-03-22  发布在  Oracle
关注(0)|答案(3)|浏览(135)

如何选择以前在Oracle中注册的XML架构?
例如,如果我注册了一个schema,如下所示:

DBMS_XMLSCHEMA.registerSchema(
    SCHEMAURL => 'http://test.com/my-schema.xsd',
    SCHEMADOC => '...the xsd...,
    ...
);

我希望能够恢复那个模式,理想情况下是这样的:

select s.schemadoc
from magic_schema_table s
where s.schemaurl = 'http://test.com/my-schema.xsd'

是否存在这样的机制?

jdgnovmf

jdgnovmf1#

您可以使用Datadictionary View ALL_XML_SCHEMAS。

SELECT SCHEMA
FROM   ALL_XML_SCHEMAS
WHERE  SCHEMA_URL = 'http://test.com/my-schema.xsd';
xmjla07d

xmjla07d2#

我在这里找到了一个解决方案:Remove all annotations added into schema by Oracle dbms_xmlschema.registerschema .

Select regexp_replace(s.schema.getClobVal()
                     ,'( oraxdb:.*?= *".*?"| 
                     xmlns:oraxdb="http://xmlns.oracle.com/xdb")','')
from user_xml_schemas s
where s.schema_url = 'my schema XDB URL';
g6ll5ycj

g6ll5ycj3#

你应该在这里找到答案:XML Schema存储和查询:基本

更新日期:

我能看到的唯一能帮助你的另一件事是为给定的对象类型生成一个模式。下面是方法:使用DBMS_XMLSCHEMA.GENERATESCHEMA生成XML模式

相关问题