iBatis DTD's use nondeterministic model 
----------------------------------------

                 Key: IBATIS-392
                 URL: https://issues.apache.org/jira/browse/IBATIS-392
             Project: iBatis for Java
          Issue Type: Bug
          Components: SQL Maps
    Affects Versions: 2.3.0
         Environment: SAP Netweaver
            Reporter: Hans Jörg Hessmann


iBATIS causes on SAP Netweaver the error:

Fatal Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: You
are probably using a nondeterministic model like (a*|b*)*,
try to replace it with an equivalent deterministic one, e.g. (a|b)*

The iBATIS DTD's contain:

<!ELEMENT sqlMapConfig (properties?, settings?, resultObjectFactory?, 
typeAlias*, typeHandler*, transactionManager?, sqlMap+)+>

and 

<!ELEMENT sqlMap (typeAlias* | cacheModel* | resultMap* | parameterMap* | sql* 
| statement* | insert* | update* | delete* | select* | procedure*)+>

On the SAP forum I found this remark:

"As noted in 3.2.1 Element Content and Appendix E of the XML Specification, it 
is required that content models in element type declarations be deterministic."

So I fixed the DTD to:

<!ELEMENT sqlMapConfig (properties?, settings?, resultObjectFactory?, 
typeAlias*, typeHandler*, transactionManager?, sqlMap+)>

and

<!ELEMENT sqlMap (typeAlias | cacheModel | resultMap | parameterMap | sql | 
statement | insert | update | delete | select | procedure)+>

After this patch everything works.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to