我正在編寫一個PL/SQL過程,它將根據模式驗證XML類型文件。 XML文檔存儲在Oracle數據庫中的一個XMLType表XML_TABLE
中,其中有一列SYS_NC_ROWINFO$
。我希望使用的模式也包含在相同的Oracle數據庫中,如XML模式(CLOB),其URL爲StructuredProductsXMLSchema0v0.1.49.xsd
。使用Oracle PL/SQL中的XML Schema驗證XML文檔?
目前,我只是試圖使用最簡單的方法驗證XML文檔中的一個(因此在下面的代碼中爲rownum = 1
)。下面是我創建的過程:
create or replace procedure XML_FILE_VALIDATOR is
XDATA XMLType;
begin
select SYS_NC_ROWINFO$ into XDATA
from XML_TABLE
where rownum = 1;
XDATA.isSchemaValid('StructuredProductsXMLSchema0v0.1.49.xsd');
if XDATA.isSchemaValid = 1 then
dbms_output.put_line ('XML document is VALID');
else
dbms_output.put_line ('XML document is INVALID => '||sqlerrm);
end if;
end;
不幸的是,我收到一條錯誤消息:
PLS-00221: 'ISSCHEMAVALID' 不是一個過程或未定義
任何幫助解決這個問題將不勝感激。
'XDATA.isSchemaValid('<*.xsd>')'是一個函數,而不是一個過程,您將需要將其值保存在一個變量 –
感謝您的回覆@SudiptaMondal - 我如何實現這個到我的代碼? –