Bonjour,

Un fichier XML est chargé dans une colonne XMLTYPE d'une table.
On accède aux données à l'aide de cette requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT EXTRACTVALUE(VALUE(t0), '/GrpHdr/MsgId')  AS IdentificationMessage
FROM   W_SDD_XML_LOAD s,
      TABLE( XMLSEQUENCE( EXTRACT( s.XML_DOCUMENT, '/Document/BkToCstmrDbtCdtNtfctn/GrpHdr'))) t0
Le fichier XMl chargé est de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:ns1="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">
    <BkToCstmrDbtCdtNtfctn>
        <GrpHdr>
            <MsgId>Id_Msg</MsgId>
            <CreDtTm>2013-07-10T15:58:24</CreDtTm>
        </GrpHdr>
    <BkToCstmrDbtCdtNtfctn>
</Document>
La requête fonctionne mais c'est un fichier avec lequel j'ai fais des tests et il ne correspond pas au XSD.
En effet, le site XML Schema Validator me dit :
Cannot find the declaration of element 'Document'.
Et quand je prends un XML que le site valide, seule la partie Document change :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <BkToCstmrDbtCdtNtfctn>
        <GrpHdr>
            <MsgId>Id_Msg</MsgId>
            <CreDtTm>2013-07-10T15:58:24</CreDtTm>
        </GrpHdr>
    <BkToCstmrDbtCdtNtfctn>
</Document>
Dans ce cas, la requête ne me retourne plus rien.
Je ne comprends pas. Seule la balise Document change et ca perturbe la requête.
Comment faire pour que le requête retourne quelque chose avec la nouvelle version ?
Y a-t-il une option à inclure ? Faut-il modifier la requête ?

Pouvez-vous m'aider ?
Merci