XML Import validation to not return on the first error

Hi,

I have an XML file with many repeating elements to validate.

The structure of the file looks like this:

<cm_file>
  <header>
    <sequence_no>919230983</sequence_no>
    <file_date>165362597</file_date>
  </header>
  <payment>
    <client>871619361</client>
    <client_reference>F8718</client_reference>
    <collection_ref>A3302</collection_ref>
    <account_no>N4764</account_no>
  </payment>
  <disbursement>
    <client>83957000</client>
    <client_reference>H36</client_reference>
    <payment_ref>B6426</payment_ref>
    <account_no>M9347</account_no>
  </disbursement>
  <disbursement>
    <client>424960097</client>
    <client_reference>P917</client_reference>
    <payment_ref>L5985</payment_ref>
    <account_no>Z9922</account_no>
  </disbursement>
  <payment>
    <client>333218062</client>
    <client_reference>Z5705</client_reference>
    <collection_ref>O8663</collection_ref>
    <account_no>G8808</account_no>
  </payment>
  <disbursement>
    <client>256341043</client>
    <client_reference>C8259</client_reference>
    <payment_ref>L3084</payment_ref>
    <account_no>Z1235</account_no>
  </disbursement>
  <disbursement>
    <client>defg</client>
    <client_reference>G1475</client_reference>
    <payment_ref>L6061</payment_ref>
    <account_no>Z4998</account_no>
  </disbursement>
  <payment>
    <client>341711590</client>
    <client_reference>F7989</client_reference>
    <collection_ref>H4485</collection_ref>
    <account_no>H6838</account_no>
  </payment>
  <disbursement>
    <client>322528289</client>
    <client_reference>Q4493</client_reference>
    <payment_ref>C833</payment_ref>
    <account_no>M9159</account_no>
  </disbursement>
  <payment>
    <client>abcd</client>
    <client_reference>H2100</client_reference>
    <collection_ref>I3646</collection_ref>
    <account_no>W6040</account_no>
  </payment>
  <disbursement>
    <client>781304097</client>
    <client_reference>O9923</client_reference>
    <payment_ref>C6443</payment_ref>
    <account_no>B9348</account_no>
  </disbursement>
  <payment>
    <client>106031757</client>
    <client_reference>Z9925</client_reference>
    <collection_ref>V4706</collection_ref>
    <account_no>T2154</account_no>
  </payment>
  <disbursement>
    <client>abcd</client>
    <client_reference>Y5439</client_reference>
    <payment_ref>V5209</payment_ref>
    <account_no>I1289</account_no>
  </disbursement>
  <trailer>
    <no_of_records>998924189</no_of_records>
    <file_total>2370.55</file_total>
  </trailer>
</cm_file>

The classes are structured to handle this and if the file is correct, everything is parsed and saved correctly.

What I need is the XML Reader to not abort the parsing and return on the first field validation failure. I need it to parse the file completely, load the entries which were successful, and provide me with a list of errors. Is there a standard way of doing this using %XML.Reader and the SAX parser?

 

Thanks.

Vote up!
Vote down!

Rating: 0

2 answers

Answer

In your %XML.Reader set IgnoreSAXWarnings to 1.

In your XML enabled classes set params:

Parameter XMLIGNOREINVALIDTAG As BOOLEAN = 1;
Parameter XMLIGNOREINVALIDATTRIBUTE As BOOLEAN = 1;

This would allow for errors to be skipped, but they wouldn't be reported either.

I'm not sure if the behavior you want is possible without some modifications.

Vote up!
Vote down!

Rating: 1

Answer

Thank you.

I think this will help. It will still fail when I do a ValidateObject on the created objects, right? So then I can get the errors that way.

Vote up!
Vote down!

Rating: 0

It would depends on the nature of an error.

Vote up!
Vote down!

Rating: 0

Log in to answer