Bing

Please be aware that DFDL is not designed to be a full blown data validator or rules engine. Rather, it is a data parser that can perform *some* validation, including XSDL validation (using XSDL facets) and some simple cross-field checking (using dfdl:assert). Note that the dfdl:assert mechanism is primarily intended to help the parser make the correct decisions, and not for validating.  That's partly why the DFDL expression language only uses a subset of XPath 2.0. If you need to perform complex cross-field validation (like checking that a 'total' field in a trailer record is the sum of the 'amount' fields in all the data records) then you are recommended to do that post-parse on the DFDL infoset that the parser creates, using a technology of your choice.

Regards
 
Steve Hanson
Architect,
IBM DFDL
Co-Chair,
OGF DFDL Working Group
IBM SWG, Hursley, UK

smh@uk.ibm.com
tel:+44-1962-815848




From:        Tim Kimber/UK/IBM@IBMGB
To:        "mfcplus@yahoo.com" <mfcplus@yahoo.com>,
Cc:        dfdl-wg@ogf.org
Date:        28/03/2014 13:46
Subject:        Re: [DFDL-WG] newbie question
Sent by:        dfdl-wg-bounces@ogf.org




I didn't see the requirement for a pattern facet in your problem description. Feel free to use a pattern facet if you require one.

If you want to perform cross-field validation then you should probably use DFDL asserts ( not discriminators ) for that. The best place to put the asserts is on the parent element, addressing ./A and ./C.


You could use the exceptionType attribute on the assert (if the DFDL processor supports it) to make it throw a recoverable error instead of a processing error. That would enable invalid data to be parsed, and you would still be notified of any ( and all ) violations of the validation rules.


regards,

Tim Kimber,
IBM Integration Bus Development (Industry Packs)
Hursley, UK
Internet:  kimbert@uk.ibm.com
Tel. 01962-816742  
Internal tel. 37246742





From:        
"mfcplus@yahoo.com" <mfcplus@yahoo.com>
To:        
Tim Kimber/UK/IBM@IBMGB,
Date:        
28/03/2014 13:21
Subject:        
Re: [DFDL-WG] newbie question



so if i am not to use a pattern, how do i validate against the alphanumeric part? also i have a conditional in the message type, should i use discriminator with xpath rxpression for that?

elemA /elemB/elemC CRLF elemC/elemD/elemE CRLF elemF/elemG/elemH CRLF

for the above strcuture, i have a requirement that elemC must not exist if elemA is not there, and must exist if elemA is there. sequenceC must not exist if sequenceA is not there, sequenceC must exist if sequenceA is there. just wondering how do i do that with dfdl discriminator. mant thanks again
Sent from Yahoo Mail on Android.



From: Tim Kimber <KIMBERT@uk.ibm.com>;
To:
mfcplus@yahoo.com <mfcplus@yahoo.com>;
Cc:
<dfdl-wg@ogf.org>;
Subject:
Re: [DFDL-WG] newbie question
Sent:
Fri, Mar 28, 2014 11:34:12 AM
The key point here is that the data format is delimited, and there is a requirement to validate the parsed info set against some rules ( length constraints, in this case).

I would

- set terminator="/"

- set lengthKind='delimited'
- use xs:minLength and xs:maxLength facets to check the length ( or use a pattern facet if you must, but min/maxLength facets will use less CPU )

- switch on validation in the DFDL parser so that the length of the delimited value gets checked against the facets in the schema.


Other possibilities exist ( e.g. DFDL assert to check the length ) but this is the most efficient.


regards,

Tim Kimber,
IBM Integration Bus Development (Industry Packs)
Hursley, UK
Internet:  kimbert@uk.ibm.com
Tel. 01962-816742  
Internal tel. 37246742





From:        
"mfcplus@yahoo.com" <mfcplus@yahoo.com>
To:        
Tim Kimber/UK/IBM@IBMGB,
Date:        
28/03/2014 11:25
Subject:        
Re: [DFDL-WG] newbie question




a field that is 3-5 chars long alphanumeric, basically a \w{3,5}, it should give out parsing error if it doesnt fit by the pattern, no initiator terminator is /

Sent from Yahoo Mail on Android



From: Tim Kimber <KIMBERT@uk.ibm.com>;
To:
<dfdl-wg@ogf.org>;
Subject:
Re: [DFDL-WG] newbie question
Sent:
Fri, Mar 28, 2014 10:19:47 AM

It depends on the data format. Normally a variable length field is terminated by a delimiter, so a data pattern/regex is not required.
Can you describe the format in a little more detail?


regards,

Tim Kimber,
IBM Integration Bus Development (Industry Packs)
Hursley, UK
Internet:  kimbert@uk.ibm.com
Tel. 01962-816742  
Internal tel. 37246742





From:        
Bing Lu <mfcplus@yahoo.com>
To:        
"dfdl-wg@ogf.org" <dfdl-wg@ogf.org>,
Date:        
28/03/2014 03:35
Subject:        
[DFDL-WG] newbie question
Sent by:        
dfdl-wg-bounces@ogf.org




what's the best dfdl approache to describe  a variable length alpha numeric field? should i use simpletype restriction pattern, or use dfdl:assert testPattern? thanks in advance
--
dfdl-wg mailing list
dfdl-wg@ogf.org

https://www.ogf.org/mailman/listinfo/dfdl-wg

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU




Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU




Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
--
 dfdl-wg mailing list
 dfdl-wg@ogf.org
 
https://www.ogf.org/mailman/listinfo/dfdl-wg

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU