스키마를 기반으로 XML을 생성 할 수는 없습니다. 아마도 xml을 xmltype 변수에 생성 한 다음이 스키마에 대해 유효성을 검사하는 것이 가장 좋습니다.
다음 plsql 블록 (스크립트로 실행)을 시작점으로 사용할 수 있습니다. XML 함수 (XMLFOREST, XMLELEMENT, XMLATTRIBUTES)를 사용하여 xmltype 변수를 생성하도록 쿼리를 변경하십시오.
일단이 l_xml 안에 있으면 스키마에 대해 유효성을 검사 할 수 있어야합니다. (그렇다면 필요하면 xml을 필요로하거나 계속 처리하고 오류를보고합니다.)
내 샘플은 xml을 출력하고 dbms 출력에 넣습니다.
set serveroutput on;
declare
l_error varchar2(4094);
--
l_xml xmltype;
l_tmp varchar2(4096);
begin
dbms_output.put_line('Start');
--generate variable from query
select xmlelement("this:root"
,xmlattributes(
'http://www.w3.org/2001/XMLSchema-instance' as "xmlns:xsi",
'http://ic.ac.uk.relationshipvisualiser.app.data.InputData' as "xmlns:this"
)
,xmlelement("this:subelement"
,'subelementValue'
)
,xmlelement("this:subelement2"
,'subelementValue2'
)
)
into l_xml
from dual;
--todo Write code to validate l_xml against xsd schema
--now output xml
select XMLSERIALIZE(Document l_xml as CLOB INDENT SIZE = 2)
into l_tmp
from dual;
dbms_output.put_line(l_tmp);
dbms_output.put_line('End');
EXCEPTION WHEN OTHERS THEN
l_error := NVL(SUBSTR(SQLERRM,0,990),'NULL');
dbms_output.put_line(l_error || ':-' || NVL(SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,0,3000),'NULL'));
end;
Oracle의 XML 및 XML 스키마는 중요한 주제입니다. [Oracle XML DB Dev Guide] (http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb05sto.htm)를 살펴보십시오. – tbone