Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Change Schema of XML

MarwimMar 5 2025 — edited Mar 5 2025

In another post I asked about transforming an XML and it worked, but I learned that my example was too simple, because the solution doesn't work with schema-based XML.

https://forums.oracle.com/ords/apexds/post/update-xmltype-in-pl-sql-3083

Therefore I want to formulate my question more openly:

I have a XML based on schema camt.054.001.02 and need to update it to camt.054.001.08 (schema for SEPA-format for bank statements)

My XML (this is part of a test file from a publicly available source):

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02 camt.054.001.02.xsd">
<BkToCstmrDbtCdtNtfctn>
   <GrpHdr>
     <MsgId>IP218669920000000235689225625210625</MsgId>
     <CreDtTm>2022-04-25T16:57:14.3+01:00</CreDtTm>
     <MsgRcpt>
       <Id>
         <OrgId>
           <Othr>
             <Id>21866992</Id>
           </Othr>
         </OrgId>
       </Id>
     </MsgRcpt>
   </GrpHdr>
   <Ntfctn>
     <Id>0000000235689+2022+04+25</Id>
     <NtfctnPgntn>
       <PgNb>1</PgNb>
       <LastPgInd>true</LastPgInd>
     </NtfctnPgntn>
     <CreDtTm>2022-04-25T16:57:14.3+01:00</CreDtTm>
     <FrToDt>
       <FrDtTm>2022-04-25T00:00:00.0+01:00</FrDtTm>
       <ToDtTm>2022-04-25T23:59:59.9+01:00</ToDtTm>
     </FrToDt>
     <Acct>
       <Id>
         <IBAN>DE37700500000000235689</IBAN>
       </Id>
       <Ccy>EUR</Ccy>
       <Svcr>
         <FinInstnId>
           <BIC>BYLADEMMXXX</BIC>
           <Othr>
             <Id>DE129273371</Id>
             <Issr>UmsStId</Issr>
           </Othr>
         </FinInstnId>
       </Svcr>
     </Acct>
     <Ntry>
       <Amt Ccy="EUR">11649.58</Amt>
       <CdtDbtInd>CRDT</CdtDbtInd>
       <Sts>BOOK</Sts>
       <BookgDt>
         <Dt>2022-04-25</Dt>
       </BookgDt>
       <ValDt>
         <Dt>2022-04-25</Dt>
       </ValDt>
       <AcctSvcrRef>1708</AcctSvcrRef>
       <BkTxCd>
         <Domn>
           <Cd>PMNT</Cd>
           <Fmly>
             <Cd>RRCT</Cd>
             <SubFmlyCd>ESCT</SubFmlyCd>
           </Fmly>
         </Domn>
         <Prtry>
           <Cd>NTRF+168+1708</Cd>
         </Prtry>
       </BkTxCd>
       <NtryDtls>
         <Btch>
           <NbOfTxs>1</NbOfTxs>
           <TtlAmt Ccy="EUR">100.00</TtlAmt>
           <CdtDbtInd>CRDT</CdtDbtInd>
         </Btch>
         <TxDtls>
           <Refs>
             <EndToEndId>NOTPROVIDED</EndToEndId>
             <TxId>ABCDEFG202204251251055800118000000</TxId>
           </Refs>
           <Amt Ccy="EUR">100.00</Amt>
           <CdtDbtInd>CRDT</CdtDbtInd>
           <BkTxCd>
             <Domn>
               <Cd>PMNT</Cd>
               <Fmly>
                 <Cd>RRCT</Cd>
                 <SubFmlyCd>ESCT</SubFmlyCd>
               </Fmly>
             </Domn>
             <Prtry>
               <Cd>NTRF+168+1708</Cd>
               <Issr>DK</Issr>
             </Prtry>
           </BkTxCd>
           <RltdPties>
             <Dbtr>
               <Nm>Test Debitor</Nm>
             </Dbtr>
             <DbtrAcct>
               <Id>
                 <IBAN>DE24700202700000987654</IBAN>
               </Id>
             </DbtrAcct>
           </RltdPties>
           <RltdAgts>
             <DbtrAgt>
               <FinInstnId>
                 <BIC>HYVEDEMMXXX</BIC>
               </FinInstnId>
             </DbtrAgt>
           </RltdAgts>
           <RmtInf>
             <Ustrd>Test camt.054 ISO-2019 Instant Payment</Ustrd>
           </RmtInf>
           <RltdDts>
             <AccptncDtTm>2022-04-25T10:00:38.0+01:00</AccptncDtTm>
           </RltdDts>
         </TxDtls>
       </NtryDtls>
     </Ntry>
   </Ntfctn>
 </BkToCstmrDbtCdtNtfctn>
</Document>

Some of the changes I need:

Change schema camt.054.001.02 → camt.054.001.08

Change node <BIC> → <BICFI>

Add node <Dbtr><Nm>Test Debitor</Nm></Dbtr> → <Dbtr><Pty><Nm>Test Debitor</Nm></Pty></Dbtr>

SQL*Plus: Release 19.0.0.0.0 - Production on Mo Mrz 3 10:54:19 2025
Version 19.3.0.0.0

Comments
Post Details
Added on Mar 5 2025
2 comments
89 views