<?xml version="1.0" encoding="UTF-8"?>

<!-- 
Use this file as a guide to configure your own XML MICR Exception Tables. You can copy all
your existing Exception Table entries from the jpos entry in jpos.xml to the end of this
file (just make sure the name numeration is in sequence, and there are no repeated numbers).
You can create new entries using the XML format (follow examples). Rename this file to
ibmmicrexception.xml and put it in a folder pointed by the classpath to use it, or rename
it to any xml filename and point to it from the jpos entry using property
"com.ibm.jpos.sdi.config.MICR.exceptionTableFile", see example:

<prop name="com.ibm.jpos.sdi.config.MICR.exceptionTableFile"
      type="String"
      value="C:\POS\IBMJPOS\Config\micrExceptionFile.xml"/>

You can copy this example property and put it in your jpos entry, replacing the file-path
with that of your file.
  -->

<!-- Start of DOCTYPE definition (DO NOT EDIT THE DOCTYPE DEFINITION!!) -->
<!DOCTYPE MICRExceptionTable [
    <!ELEMENT MICRExceptionTable ((ExceptionEntry)*, (prop)*)>
    <!ATTLIST MICRExceptionTable
              FormatToUse (XML|Legacy) "XML">
    <!ELEMENT ExceptionEntry (OnUsFieldParsingRule,
                              AuxOnUsFieldParsingRule?)>
    <!ATTLIST ExceptionEntry
              TransitField CDATA #REQUIRED
              CheckType (Business|Personal) "Personal">
    <!ELEMENT OnUsFieldParsingRule ((SkipCharacterLength?,
                                     AccountNumberLength ,
                                     SkipCharacterLength?,
                                     SerialNumberLength?  )|
                                    (SkipCharacterLength?,
                                     SerialNumberLength? ,
                                     SkipCharacterLength?,
                                     AccountNumberLength  ))>
    <!ELEMENT AuxOnUsFieldParsingRule (SerialNumberLength)>
    <!ELEMENT SkipCharacterLength (#PCDATA)>
    <!ATTLIST SkipCharacterLength
              value CDATA #REQUIRED>
    <!ELEMENT AccountNumberLength (#PCDATA)>
    <!ATTLIST AccountNumberLength
              value CDATA #REQUIRED>
    <!ELEMENT SerialNumberLength (#PCDATA)>
    <!ATTLIST SerialNumberLength
              value CDATA #REQUIRED>
    <!ELEMENT prop (#PCDATA)>
    <!ATTLIST prop
              name CDATA #REQUIRED
              type (String) #IMPLIED
              value CDATA #REQUIRED>
]>
<!-- End of DOCTYPE definition (DO NOT EDIT THE DOCTYPE DEFINITION!!) -->

<MICRExceptionTable FormatToUse="Legacy">
    <ExceptionEntry TransitField="123456780" CheckType="Personal">
        <OnUsFieldParsingRule>
            <AccountNumberLength value="5" />
            <SkipCharacterLength value="2" />
            <SerialNumberLength value="3" />
        </OnUsFieldParsingRule>
    </ExceptionEntry>
    <ExceptionEntry TransitField="778899001" CheckType="Business">
        <OnUsFieldParsingRule>
            <SkipCharacterLength value="2"/>
            <SerialNumberLength value="5"/>
            <SkipCharacterLength value="1"/>
            <AccountNumberLength value="8"/>
        </OnUsFieldParsingRule>
    </ExceptionEntry>
    <ExceptionEntry TransitField="667788990" CheckType="Business">
        <OnUsFieldParsingRule>
            <SkipCharacterLength value="1"/>
            <AccountNumberLength value="7"/>
        </OnUsFieldParsingRule>
        <AuxOnUsFieldParsingRule>
            <SerialNumberLength value="5"/>
        </AuxOnUsFieldParsingRule>
    </ExceptionEntry>
    <prop name="com.ibm.jpos.sdi.config.MICR.exceptionTable1" type="String" value="B445566778D151R"/>
    <prop name="com.ibm.jpos.sdi.config.MICR.exceptionTable0" type="String" value="B334455667D150R"/>
</MICRExceptionTable>

