En-tête de XML qui pose problème
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:
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:
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 :
Citation:
Cannot find the declaration of element 'Document'.
Et quand je prends un XML que le site valide, seule la partie Document change :
Code:
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