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
Le fichier XMl chargé est de ce type :
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
La requête fonctionne mais c'est un fichier avec lequel j'ai fais des tests et il ne correspond pas au XSD.
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>
En effet, le site XML Schema Validator me dit :
Et quand je prends un XML que le site valide, seule la partie Document change :Cannot find the declaration of element 'Document'.
Dans ce cas, la requête ne me retourne plus rien.
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>
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
Partager