Announcement

Collapse
No announcement yet.

Parsing XML ohne XSD

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parsing XML ohne XSD

    Hallo,

    ich hab grad etwas Schwierigkeiten mit dem Einlesen von XML Dateien via XMLTable, extract, extract value usw.. also den Oracle XML Functionen.
    Ich versuche eine Datei zu lesen, deren Schema Definition ich nicht habe, die aber im XML angegeben ist als Namespace. Konkret geht es um SEPA CAMT Dateien, ist aber vielleicht egal.

    Mittlerweile stellt sich das so da, dass die Dateien eingelesen werden können, wenn ich die Schema Definition entferne.
    Was mich zu der Frage bringt, ob der Oracle XML Parser versucht, diese Angaben beim Auslesen zu verwenden?

    Ohne Schemaangaben bekommt man das erwartete Ergebnis, sind Schema Angaben (die nicht aufgelöst werden können) enthalten, erhält man eine leere Menge, keine Fehler.

    Danke im Voraus und Gruß, Jo
    Zuletzt editiert von defo; 30.01.2014, 16:49.
    Gruß, defo

  • #2
    Ev. könnte das helfen
    https://community.oracle.com/thread/644396?tstart=0
    Christian

    Comment


    • #3
      Das sieht nach einer sehr gute Spur aus!
      Das werde ich mir mal ansehen.
      Gruß, defo

      Comment


      • #4
        Es ist tatsächlich so, dass man definierte Namespaces bei der Verwendung von XMLTable (extract & Co habe ich noch nicht untersucht) mit angeben kann, bzw. muss.
        Der Sinn erschließt sich mir nicht ganz, da es auch funktioniert, wenn im XML Document und in der Abfrage kein Namespace definiert ist.
        Intuitiv sehe ich die Schema bzw. Namespace Definition eher bei der Bereichs- bzw. Strukturprüfung, aber wahrscheinlich gibt es da Zusammenhänge, die mir nicht klar sind.

        Ich freu mich einfach (erstmal), danke Christian.

        Hier noch etwas funktionierender Code:
        [HIGHLIGHT=SQL]
        select *
        from testxml xm,
        XMLTable(XMLNAMESPACES( default 'urn:iso:std:iso:20022:tech:xsd:camt.053.001.02'),
        'for $i in /Document/BkToCstmrStmt/Stmt/Ntry return $i'
        passing xm.bxml
        columns .....
        [/HIGHLIGHT]

        Es fehlte die XMLNAMESPACES clause mit DEFAULT Angabe.
        Gruß, defo

        Comment

        Working...
        X