Sunday, December 4, 2011

nxsd:validation, nxsd:fieldValidation,

the question is risen here
https://forums.oracle.com/forums/thread.jspa?threadID=1054790

here the official doc

http://docs.oracle.com/cd/E15586_01/integration.1111/e10231/nfb.htm


Top-Level Validation -> nxsd:validation="true"

information about the line and column in the native stream where the error was encountered is not provided by top-level validation.


Field-Level Validation -> nxsd:fieldValidation="true"

only on inbound payloads

information about the exact line and character where the error was encountered is displayed.


So, what is the difference between

a) NOT using any validation at JCA level
b) using nxsd:validation="true" in the nXSD file
c) using nxsd:fieldValidation="true" in the nXSD file
d) using both nxsd:validation="true" and nxsd:fieldValidation="true" in the nXSD file

and submitting a file which has a correct structure but a validation error in a field.


In case a), the file passes the JCA adapter and is handed over to the Proxy Service

In case b), the file is rejected in the JCA adapter, with this message:



Error while translating inbound file : spaceattheend.dat
ORABPEL-11157

Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd

at oracle.tip.pc.services.translation.framework.XlatorHelper.validateDOMNode(XlatorHelper.java:701)
at oracle.tip.pc.services.translation.framework.XlatorHelper.validate(XlatorHelper.java:667)
at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.translateFromNative(NXSDTranslatorImpl.java:612)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.xlate(InboundTranslatorDelegate.java:314)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.doXlate(InboundTranslatorDelegate.java:121)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.doXlate(ProcessorDelegate.java:388)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.process(ProcessorDelegate.java:174)
at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:349)
at weblogic.work.ContextWrap.run(ContextWrap.java:41)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)



and


Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11157

Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd

}






in case c)

you get a similar message, but it shows also the line and column number




Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11156

Error: native data read does not conform to xsd type.
actual-value PAL is not valid for data type . Please check before Line=2, Col=1 in the native stream.
Please ensure that native data conforms to xsd type. To turnoff field validation, unset flag nxsd:fieldValidation in nxsd




in case d)

it's same as c)

No comments: