Hi I have a problem of xml with xsd validation and insert into the table...
I use this function to validate the XML with xsd, but it gives-31000 error related to xdb
and I also try to recover data from the xml file, but it is fetching nullability of him.
while I was trying to recover data after removing the tablenamespace, url and other additional field or can tell
from a simple xml file than it is to get him.
Please help me with this!
FUNCTION to CREATE or REPLACE ALI$ XML_VALID (P_xml IN xmltype
P_xsd IN xmltype)
RETURN NUMBER
is
l_status NUMBER;
l_xml xmltype.
l_xsd XMLTYPE.
l_v_schemaURL VARCHAR2 (256): = "NewBusinessApplication.xsd";
schema_doesnt_exist exception;
pragma exception_init (schema_doesnt_exist,-31000);
BEGIN
l_xsd: = p_xsd;
Start
DBMS_XMLSCHEMA.deleteSchema (l_v_schemaURL, dbms_xmlSchema.DELETE_CASCADE_FORCE);
exception
When schema_doesnt_exist then
null;
end;
DBMS_XMLSCHEMA. REGISTERSCHEMA)
schemaurl = > l_v_schemaURL
, schemadoc = > l_xsd
local = > TRUE
, genTypes = > FALSE
, genbean = > FALSE
, genTables = > FALSE
);
l_xml: = p_xml;
If l_xml.isSchemaValid () = 1 then
dbms_output.put_line ("' scheme is valid");
l_status: = 1;
RETURN l_status;
on the other
l_xml.schemaValidate ();
l_status: = 0;
RETURN l_status;
end if;
END;
-call to above function
DECLARE
l_xml xmltype: = xmltype (' <? xml version = "1.0" encoding = "UTF - 8"? >)
"" < NewBusinessApplication xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
"" xsi: schemaLocation = "http://www.example.org NewBusinessApplication.xsd.
xmlns ="http://www.example.org" > ".
< TransactionHeader >
< TR_REF_NO > 000009812681 < / TR_REF_NO >
< EFF_DT > 20140703094140.572 [-4:US / Eastern] < / EFF_DT >
< SRC_SYS_CD dmnSRC_SYSTEM = "TSS" > Support of TV system < / SRC_SYS_CD >
< / TransactionHeader >
< ApplicationRq >
< ApplInfo >
< APPLNO > A00018L < / APPLNO >
< MED_NONMED dmnMED_NONMED = "M" > medical < / MED_NONMED >
< APPL_DT > 20140714 < / APPL_DT >
< EFF_DT > 20140714 < / EFF_DT >
< APPL_RECV_DT > 20140714 < / APPL_RECV_DT >
< / ApplInfo >
< AgentInfo >
<! – repeat the nodes below for more than one agent - >
<>Agent
< AGT_CD > AGN0000001 < / AGT_CD >
James < FIRSTNAME > < / NAME >
< NAME > Whorphin < / LASTNAME >
BKK1010090009 < AGT-LICNO > < / AGT-LICNO >
the Warriors < TEAM > < / TEAM >
Suriya Thapa < TEAMLEADER > < / TEAMLEADER >
BKK909988999 < TEAMLEADER-LICNO > < / TEAMLEADER LICNO >
< / agent >
< / AgentInfo >
< InsuredInfo >
< dmnPERS_NAMEPREFIX PREFIX-TH = "XX" > Dr. < / PREFIX-TH >
XXXXXXX < FIRSTNAME-TH > < / FIRSTNAME-TH >
XXXXXX < MIDNAME-TH > < / MIDNAME-TH >
XXXXXX < LASTNAME-TH > < / LASTNAME-TH >
XXXXXX < FORMERNAME > < / FORMERNAME >
< PREFIX-dmnPERS_NAMEPREFIX-EN = "XX" > Dr. < / PREFIX-EN >
YYYYYY < FIRSTNAME-EN > < / FIRSTNAME-EN >
YYYYYY < MIDNAME-EN > < / MIDNAME-FR >
YYYYYY < LASTNAME-EN > < / LASTNAME-EN >
< BIRTH_DT > 19800101 < / BIRTH_DT >
< 33 YEARS > < / AGE >
< dmnPERNSEXCD = "XX" SEX > male < / TYPE >
< DmnPERC_MAR_STAT_CD MARITAL_STATUS = "XX" > single < / MARITAL_STATUS >
< dmnRACE = "XX" RACE > ZZZ < / RACE >
< dmnRELIGION RELIGION = "H" > HINDU < / RELIGION >
< dmnNATIONALITY NATIONALITY = an' TH' > THAI < / NATIONALITY >
< dmnIDTYPE ID-TYPE = "TI" > Thai National ID < / ID-TYPE >
> ID < AJMPK0001J < / ID >
< ID-XPIR_DT > 20200101 < / ID-XPIR_DT >
< dmnOCCUP_CD OCCUPATION = "XX" / >
< OCCUP_CLASS dmnOCCUP_CLASS_CD = 'XX' / >
< ANNUAL_INCOME > 100000 < / ANNUAL_INCOME >
< HEIGHT > 175 < / HEIGHT >
< WEIGHT > 80 < / WEIGHT >
< / InsuredInfo >
< ProposerInfo >
< dmnPERS_NAMEPREFIX PREFIX-TH = "XX" > Dr. < / PREFIX-TH >
XXXXXXX < FIRSTNAME-TH > < / FIRSTNAME-TH >
XXXXXX < MIDNAME-TH > < / MIDNAME-TH >
XXXXXX < LASTNAME-TH > < / LASTNAME-TH >
XXXXXX < FORMERNAME > < / FORMERNAME >
< PREFIX-dmnPERS_NAMEPREFIX-EN = "XX" > Dr. < / PREFIX-EN >
YYYYYY < FIRSTNAME-EN > < / FIRSTNAME-EN >
YYYYYY < MIDNAME-EN > < / MIDNAME-FR >
YYYYYY < LASTNAME-EN > < / LASTNAME-EN >
< BIRTH_DT > 19800101 < / BIRTH_DT >
< 33 YEARS > < / AGE >
< dmnPERNSEXCD = "XX" SEX > male < / TYPE >
< DmnPERC_MAR_STAT_CD MARITAL_STATUS = "XX" > single < / MARITAL_STATUS >
< dmnRACE = "XX" RACE > ZZZ < / RACE >
< dmnRELIGION RELIGION = "H" > HINDU < / RELIGION >
< dmnNATIONALITY NATIONALITY = an' TH' > THAI < / NATIONALITY >
< dmnIDTYPE ID_TYPE = "TI" > Thai National ID < / ID_TYPE >
AJMPK0001J < ID_NUMBER > < / ID_NUMBER >
< ID_XPIR_DT > 20200101 < / ID_XPIR_DT >
< dmnOCCUP_CD OCCUPATION = "XX" / >
< OCCUP_CLASS dmnOCCUP_CLASS_CD = 'XX' / >
< ANNUAL_INCOME > 100000 < / ANNUAL_INCOME >
< / ProposerInfo >
< ContactInfo >
< AddressInfo >
<! – repeat the nodes below for each address type - >
< address >
< dmnADDR_ADDRTYPE ADDRTYPE = "01" > home < / ADDRTYPE >
< PRIMARY_CONTACT > 0 < / PRIMARY_CONTACT >
< / address >
< address >
< dmnADDR_ADDRTYPE ADDRTYPE "02" = > Office < / ADDRTYPE >
< PRIMARY_CONTACT > 1 < / PRIMARY_CONTACT >
< / address >
< / AddressInfo >
< PhoneInfo >
<! – repeat the nodes below for each type of phone - >
< Phone >
< dmnADRP_PHONETYPE PHONETYPE "01" = > Mobile < / PHONETYPE >
< PHONENUM > 9887666789 < / PHONENUM >
< PRIMARY_CONTACT > 1 < / PRIMARY_CONTACT >
< / Phone >
< Phone >
< dmnADRP_PHONETYPE PHONETYPE "02" = > home < / PHONETYPE >
< PHONENUM > 9887666789 < / PHONENUM >
< PRIMARY_CONTACT > 0 < / PRIMARY_CONTACT >
< / Phone >
< / PhoneInfo >
< EmailInfo >
<! – repeat the nodes below for each type of email - >
< email >
< EMAILTYPE dmnADRO_EMAILTYPE = "01" > e-mail1 < / EMAILTYPE >
< EMAILDATA > [email protected] < / EMAILDATA >
< PRIMARY_CONTACT > 0 < / PRIMARY_CONTACT >
< / email >
< email >
< EMAILTYPE dmnADRO_EMAILTYPE "02" = > Email2 < / EMAILTYPE >
< EMAILDATA > [email protected] < / EMAILDATA >
< PRIMARY_CONTACT > 1 < / PRIMARY_CONTACT >
< / email >
< / EmailInfo >
< / ContactInfo >
< PolicyInfo >
STG102 < BASE-PLAN_CD > < / BASE-PLAN_CD >
< BASE-PLAN_NM > Smart term 10 gold < / BASE-PLAN_NM >
< MODEOFPAYMENT dmnZZFREQUENCY = "M" > monthly < / MODEOFPAYMENT >
< BASE - ITS > 100000.00 < / BASE - SA >
< BASE-PREMIUM > 12000.00 < / BASE-PREMIUM >
< BASE-MODALPREMIUM > 1000.00 < / BASE-MODALPREMIUM >
< AYFP > 13200.00 < / AYFP >
< RiderInfo >
< rider >
RIDER < CODE > ME < / RIDER-CODE >
Medical costs < RIDER-NAME > < / RIDER-NAME >
< RIDER - HIS 20000.00 > < / RIDER - SA >
< RIDER-PREMIUM > 600.00 < / RIDER-PREMIUM >
< RIDER-MODALPREMIUM > 50.00 < / RIDER-MODALPREMIUM >
< / rider >
< rider >
RIDER HAB < CODE > < / RIDER-CODE >
< NAME-RIDER > Admission hospitalization < / RIDER-NAME >
< RIDER - HIS 20000.00 > < / RIDER - SA >
< RIDER-PREMIUM > 600.00 < / RIDER-PREMIUM >
< RIDER-MODALPREMIUM > 50.00 < / RIDER-MODALPREMIUM >
< / rider >
< / RiderInfo >
< / PolicyInfo >
< PaymentInfo >
< borde >
< TMP_RECEIPT_NO > TEMP0001 < / TMP_RECEIPT_NO >
< TOTAL_PYMT_AMT > 13200.00 < / TOTAL_PYMT_AMT >
<! – repeat the nodes below for payment through several channels - >
< payment >
< dmnPAYRTYPE PAYER "01" = > secured < / PAYER >
credit card < dmnPaymentType PYMT TYPE = "01" > < / PYMT-TYPE >
< PYMT-AMT > 13200.00 < / PYMT-AMT >
< PYMT-Channel >
credit <>card
Visa < dmnCardType CARD-TYPE = "01" > < / CARD-TYPE >
< BADGE - N ° > 9890989098909877 < / CARD-NOT >
< HOLDERNAME-CARD > RICKY WHORPHIN < / CARD-HOLDERNAME >
< BANKNM-CARD > Standard Chartered Bank < / MAP-BANKNM >
< MAP SHOWED > 08/14 < / CARD-SHOW >
< MAP-AUTHCODE / >
< CARD-AUTHDATE / >
< / credit card >
< / PYMT-Channel >
< / payment >
< payment >
< dmnPAYRTYPE PAYER "01" = > secured < / PAYER >
< dmnPaymentType PYMT-TYPE = '02' > account < / PYMT-TYPE >
< PYMT-AMT > 13200.00 < / PYMT-AMT >
< PYMT-Channel >
< Bank >
< BANK CODE / >
< BANK BRANCH / >
< BANK-ACCNO / >
< BANK-ACCNAME / >
< / Bank >
< / PYMT-Channel >
< / payment >
< payment >
< dmnPAYRTYPE PAYER "01" = > secured < / PAYER >
< dmnPaymentType PYMT TYPE = "03" > check < / PYMT-TYPE >
< PYMT-AMT > 13200.00 < / PYMT-AMT >
< PYMT-Channel >
< check >
< CHQ - n / >
< CHQ-DATE / >
< CHQ-ISSUEBANK / >
< / cheque >
< / PYMT-Channel >
< / payment >
< / shell >
< RenewalPayment >
< dmnPAYRTYPE PAYER "01" = > secured < / PAYER >
< DDCHANNEL dmnPaymentType "01" = > SDC < / DDCHANNEL >
< DDCDetails >
Visa < dmnCardType CARD-TYPE = "01" > < / CARD-TYPE >
< BADGE - N ° > 9890989098909877 < / CARD-NOT >
< HOLDERNAME-CARD > RICKY WHORPHIN < / CARD-HOLDERNAME >
< BANKNM-CARD > Standard Chartered Bank < / MAP-BANKNM >
< MAP SHOWED > 08/14 < / CARD-SHOW >
< / DDCDetails >
< DDADetails >
< dmnBNK_TYP_CD BANK-ACCTYPE = "01" > save < / BANK-ACCTYPE >
< BANK-ACCNO / >
< BANK-ACCNAME / >
< BANK BRANCH / >
< / DDADetails >
< / RenewalPayment >
< / PaymentInfo >
< BeneficiaryInfo >
<!--repeat the nodes below for each beneficiary and the sum of the pct should be 100-->
< recipient >
Joint < dmnBENE_RELT_CD RELATIONSHIP = "01" > < / RELATIONSHIP >
XXXX < FIRSTNAME > < / NAME >
XXXXX < MIDNAME > < / MIDNAME >
XXXX < NAME > < / LASTNAME >
< PERCENT > 50 < / PERCENTAGE >
< BIRTH_DT > 19800101 < / BIRTH_DT >
< dmnPERNSEXCD SEX = "XX" > female < / TYPE >
< NATLIDNO > TH000001 < / NATLIDNO >
< / recipients >
< recipient >
< dmnBENE_RELT_CD RELATIONSHIP "02" = > child < / RELATIONSHIP >
XXXX < FIRSTNAME > < / NAME >
XXXXX < MIDNAME > < / MIDNAME >
XXXX < NAME > < / LASTNAME >
< PERCENT > 50 < / PERCENTAGE >
< BIRTH_DT > 19800101 < / BIRTH_DT >
< dmnPERNSEXCD = "XX" SEX > male < / TYPE >
< NATLIDNO > TH000002 < / NATLIDNO >
< / recipients >
< / BeneficiaryInfo >
< survey >
< HealthDeclaration >
< question >
Q001 < QUESTION_ID > < / QUESTION_ID >
< dmnZZYESNO_NUM RESPONSE = "N" > n < / ANSWER >
< / question >
< question >
Q002 < QUESTION_ID > < / QUESTION_ID >
< dmnZZYESNO_NUM RESPONSE = "N" > n < / ANSWER >
< / question >
< question >
Q003 < QUESTION_ID > < / QUESTION_ID >
< dmnZZYESNO_NUM RESPONSE = "N" > n < / ANSWER >
< / question >
< question >
Q004 < QUESTION_ID > < / QUESTION_ID >
< dmnZZYESNO_NUM RESPONSE = "N" > n < / ANSWER >
< / question >
< question >
Q005 < QUESTION_ID > < / QUESTION_ID >
< dmnZZYESNO_NUM RESPONSE = "N" > n < / ANSWER >
< / question >
< / HealthDeclaration >
< / questionnaire >
< / ApplicationRq >
< ApplicationRs >
<-reason for the rejection / >
< / ApplicationRs >
< / NewBusinessApplication >
');
l_xsd xmltype: = xmltype (' <? xml version = "1.0" encoding = "windows-1252"? >)
"< xsd: Schema container ="http://www.w3.org/2001/XMLSchema"xmlns ="http://www.example.org"
targetNamespace ="http://www.example.org" elementFormDefault = "qualified" > "
< xsd: element name = "NewBusinessApplication" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "TransactionHeader" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "TR_REF_NO" type = "xsd: Integer" / >
< xsd: element name = "EFF_DT" type = "xsd: String" / >
< xsd: element name = "SRC_SYS_CD" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnSRC_SYSTEM" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ApplicationRq" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "ApplInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "APPLNO" type = "xsd: String" / >
< xsd: element name = "MED_NONMED" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnMED_NONMED" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "APPL_DT" type = "xsd: Integer" / >
< xsd: element name = "EFF_DT" type = "xsd: Integer" / >
< xsd: element name = "APPL_RECV_DT" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "AgentInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "The Agent" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "AGT_CD" type = "xsd: String" / >
< xsd: element name = "FIRSTNAME" type = "xsd: String" / >
< xsd: element name = "NAME" type = "xsd: String" / >
< xsd: element name = "AGT-LICNO" type = "xsd: String" / >
< xsd: element name = "TEAM" type = "xsd: String" / >
< xsd: element name = "TEAMLEADER" type = "xsd: String" / >
< xsd: element name = "TEAMLEADER-LICNO" type = "xsd: String" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "InsuredInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = 'PREFIX-TH' >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERS_NAMEPREFIX" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NAME-TH" type = "xsd: String" / >
< xsd: element name = "MIDNAME-TH" type = "xsd: String" / >
< xsd: element name = "LASTNAME-TH" type = "xsd: String" / >
< xsd: element name = "FORMERNAME" type = "xsd: String" / >
< xsd: element name = "PREFIX-FR" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERS_NAMEPREFIX-EN" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NAME-IN" type = "xsd: String" / >
< xsd: element name = "MIDNAME-EN" type = "xsd: String" / >
< xsd: element name = "LASTNAME-IN" type = "xsd: String" / >
< xsd: element name = "BIRTH_DT" type = "xsd: Integer" / >
< xsd: element name = "ÂGE" type = "xsd: Integer" / >
< xsd: element name = "GENDER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERNSEXCD" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "MARITAL_STATUS" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERC_MAR_STAT_CD" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "RACE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnRACE" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "RELIGION" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnRELIGION" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NATIONALITY" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnNATIONALITY" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ID-TYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnIDTYPE" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ID" type = "xsd: String" / >
< xsd: element name = "ID-XPIR_DT" type = "xsd: Integer" / >
< xsd: element name = "OCCUPATION" >
< xsd: complexType >
< xsd: attribute name = "dmnOCCUP_CD" type = "xsd: String" / >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "OCCUP_CLASS" >
< xsd: complexType >
< xsd: attribute name = "dmnOCCUP_CLASS_CD" type = "xsd: String" / >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ANNUAL_INCOME" type = "xsd: Integer" / >
< xsd: element name = "HEIGHT" type = "xsd: Integer" / >
< xsd: element name = "WEIGHT" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ProposerInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = 'PREFIX-TH' >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERS_NAMEPREFIX" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NAME-TH" type = "xsd: String" / >
< xsd: element name = "MIDNAME-TH" type = "xsd: String" / >
< xsd: element name = "LASTNAME-TH" type = "xsd: String" / >
< xsd: element name = "FORMERNAME" type = "xsd: String" / >
< xsd: element name = "PREFIX-FR" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERS_NAMEPREFIX-EN" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NAME-IN" type = "xsd: String" / >
< xsd: element name = "MIDNAME-EN" type = "xsd: String" / >
< xsd: element name = "LASTNAME-IN" type = "xsd: String" / >
< xsd: element name = "BIRTH_DT" type = "xsd: Integer" / >
< xsd: element name = "ÂGE" type = "xsd: Integer" / >
< xsd: element name = "GENDER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERNSEXCD" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "MARITAL_STATUS" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERC_MAR_STAT_CD" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "RACE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnRACE" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "RELIGION" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnRELIGION" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NATIONALITY" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnNATIONALITY" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ID_TYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnIDTYPE" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ID_NUMBER" type = "xsd: String" / >
< xsd: element name = "ID_XPIR_DT" type = "xsd: Integer" / >
< xsd: element name = "OCCUPATION" >
< xsd: complexType >
< xsd: attribute name = "dmnOCCUP_CD" type = "xsd: String" / >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "OCCUP_CLASS" >
< xsd: complexType >
< xsd: attribute name = "dmnOCCUP_CLASS_CD" type = "xsd: String" / >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ANNUAL_INCOME" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ContactInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "AddressInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Address" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "ADDRTYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnADDR_ADDRTYPE" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PRIMARY_CONTACT" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PhoneInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Phone" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "PHONETYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnADRP_PHONETYPE" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PHONENUM" type = "xsd: Integer" / >
< xsd: element name = "PRIMARY_CONTACT" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "EmailInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Email" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "EMAILTYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnADRO_EMAILTYPE" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "EMAILDATA" type = "xsd: String" / >
< xsd: element name = "PRIMARY_CONTACT" type = "xsd: Integer" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PolicyInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "BASE-PLAN_CD" type = "xsd: String" / >
< xsd: element name = "BASE-PLAN_NM" type = "xsd: String" / >
< xsd: element name = "MODEOFPAYMENT" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnZZFREQUENCY" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "BASE - SA" type = "xsd: float" / >
< xsd: element name = "BASE-PREMIUM" type = "xsd: float" / >
< xsd: element name = "BASE-MODALPREMIUM" type = "xsd: float" / >
< xsd: element name = "AYFP" type = "xsd: float" / >
< xsd: element name = "RiderInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Rider" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "RIDER-CODE" type = "xsd: String" / >
< xsd: element name = "RIDER-NAME" type = "xsd: String" / >
< xsd: element name = "RIDER - SA" type = "xsd: float" / >
< xsd: element name = "RIDER-PREMIUM" type = "xsd: float" / >
< xsd: element name = "RIDER-MODALPREMIUM" type = "xsd: float" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PaymentInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Bordered" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "TMP_RECEIPT_NO" type = "xsd: String" / >
< xsd: element name = "TOTAL_PYMT_AMT" type = "xsd: float" / >
< xsd: element name = "Payment" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "PAYER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPAYRTYPE" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "TYPE PYMT" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPaymentType" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "PYMT-AMT" type = "xsd: float" / >
< xsd: element name = "PYMT-Channel" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "CreditCard" minOccurs = "0" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "CARD TYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnCardType" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "CARD-NO" type = "xsd: Integer" / >
< xsd: element name = "CARD-HOLDERNAME" type = "xsd: String" / >
< xsd: element name = "CARD-BANKNM" type = "xsd: String" / >
< xsd: element name = "CARD-DISPLAYED" type = "xsd: String" / >
< xsd: element name = "CARD-AUTHCODE" / >
< xsd: element name = "CARD-AUTHDATE" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "Bank" minOccurs = "0" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "BANK CODE" / >
< xsd: element name = "BANK-BRANCH" / >
< xsd: element name = "BANK-ACCNO" / >
< xsd: element name = "BANK-ACCNAME" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "Cheque" minOccurs = "0" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "CHQ - NO" / >
< xsd: element name = "CHQ-DATE" / >
< xsd: element name = "CHQ-ISSUEBANK" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "RenewalPayment" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "PAYER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPAYRTYPE" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "DDCHANNEL" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPaymentType" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "DDCDetails" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "CARD TYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnCardType" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "CARD-NO" type = "xsd: Integer" / >
< xsd: element name = "CARD-HOLDERNAME" type = "xsd: String" / >
< xsd: element name = "CARD-BANKNM" type = "xsd: String" / >
< xsd: element name = "CARD-DISPLAYED" type = "xsd: String" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "DDADetails" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "BANK-ACCTYPE" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnBNK_TYP_CD" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "BANK-ACCNO" / >
< xsd: element name = "BANK-ACCNAME" / >
< xsd: element name = "BANK-BRANCH" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "BeneficiaryInfo" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Recipient" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "RELATIONSHIP" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnBENE_RELT_CD" type = "xsd: Integer" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "FIRSTNAME" type = "xsd: String" / >
< xsd: element name = "MIDNAME" type = "xsd: String" / >
< xsd: element name = "NAME" type = "xsd: String" / >
< xsd: element name = "PERCENTAGE" type = "xsd: Integer" / >
< xsd: element name = "BIRTH_DT" type = "xsd: Integer" / >
< xsd: element name = "GENDER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnPERNSEXCD" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "NATLIDNO" type = "xsd: String" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "Questionnaire" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "HealthDeclaration" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Issue" maxOccurs = "unbounded" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "QUESTION_ID" type = "xsd: String" / >
< xsd: element name = "ANSWER" >
< xsd: complexType >
< xsd:simpleContent >
< xsd:extension base = "XSD: String" >
< xsd: attribute name = "dmnZZYESNO_NUM" type = "xsd: String" / >
< / xsd:extension >
< / xsd:simpleContent >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< xsd: element name = "ApplicationRs" >
< xsd: complexType >
< xsd: SEQUENCE >
< xsd: element name = "Reason for rejection" / >
< / xsd: SEQUENCE >
< / xsd: complexType >
< / xsd: element >
< / xsd: SEQUENCE >
< xsd: attribute name = "xsi" type = "xsd: String" / >
< xsd: attribute name = "schemaLocation" type = "xsd: String" / >
< / xsd: complexType >
< / xsd: element >
< / xsd: Schema >
');
BEGIN
dbms_output.put_line (Ali$ XML_VALID (l_xml, l_xsd));
END;
and please do not confused, you don't need to answer if I do not any sense.
BUT I STILL HAVE ONE LAST QUESTION
do you know how to use namespaces in the exctractvalue().
I'm not "troubled", just frustrated that you don't seem to understand what I've explained so far.
Why do you insist on the use of extractvalue? Don't use extractvalue, it is deprecated, use XMLTABLE instead.
If you feel compelled to use extractvalue of certain grounds, just the curiosity to seek it in the documentation, you can find the syntax to use the namespaces:
http://docs.Oracle.com/CD/E11882_01/server.112/e41084/functions061.htm#SQLRF06173
in your last code, you first insert the XML and extract data from it. I can do it too, but it's not my requirement. I'm supposed to read the first xml (if it is valid) as I do in my code using the table function and make the continuation of the procedure.
Look, I'll ask you one last time:
What problem are you having? What prevents you from first reading, certain values before inserting, as you need. Just use the same query XMLTABLE that I showed in my example, except you will not query the table, but directly from the XMLType variable:
PASSAGE v_xml
COLUMNS...