Hi,

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.

In  http://ibatis.apache.org/dtd/sql-map-2.dtd , there is:
<!ELEMENT sqlMap (typeAlias* | cacheModel* | resultMap* | parameterMap* | sql* 
| statement* | insert* | update* | delete* | select* | procedure*)+>

I think it causes my xml parser cant parse my sqlMaps returning this error:
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'calendarDAOTarget' defined in class path resource 
[isifconfig/sigc/calendar/calendar-dao.xml]: Cannot resolve reference to bean 
'calendarSqlMapConfig' while setting bean property 'sqlMapClient'; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'calendarSqlMapConfig' defined in class path resource 
[isifconfig/sigc/calendar/calendar-dao.xml]: Invocation of init method failed; 
nested exception is java.lang.RuntimeException: Error occurred.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
com.sap.engine.lib.xml.parser.NestedSAXParserException: 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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)(:main:, row=9, col=113) -> 
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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'calendarSqlMapConfig' defined in class path resource 
[isifconfig/sigc/calendar/calendar-dao.xml]: Invocation of init method failed; 
nested exception is java.lang.RuntimeException: Error occurred.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
com.sap.engine.lib.xml.parser.NestedSAXParserException: 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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)(:main:, row=9, col=113) -> 
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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)
Caused by: java.lang.RuntimeException: Error occurred.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
com.sap.engine.lib.xml.parser.NestedSAXParserException: 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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)(:main:, row=9, col=113) -> 
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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)
        at 
com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:89)
        at 
com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
        at 
org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(SqlMapClientFactoryBean.java:255)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1024)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:248)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:128)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:950)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:740)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:417)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:273)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:68)
        at 
com.repsolypf.isif.config.SpringContext.getApplicationContext(SpringContext.java:121)
        at 
com.repsolypf.isif.config.SpringContext.getBean(SpringContext.java:68)
        at 
com.repsolypf.isif.client.ClientFachadaNegocio.invoke(ClientFachadaNegocio.java:80)
        at 
com.repsolypf.sigefi.local.test.SigefiTestCase.testEco(SigefiTestCase.java:362)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at junit.textui.TestRunner.doRun(TestRunner.java:116)
        at junit.textui.TestRunner.doRun(TestRunner.java:109)
        at junit.textui.TestRunner.run(TestRunner.java:72)
        at 
com.repsolypf.sigefi.local.test.SigefiTestCase.main(SigefiTestCase.java:386)
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: 
com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: 
com.sap.engine.lib.xml.parser.NestedSAXParserException: 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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)(:main:, row=9, col=113) -> 
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)* (Unknown Source, row:0, col:-1) -> 
com.sap.engine.lib.xml.parser.ParserException: You are probably using a 
nondeterministic model like (a*|b*)*, try to replace it with an equivalent 
deterministic one, e.g. (a|b)*(Unknown Source)
        at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
        at 
com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:86)
        ... 43 more



¿Is there another dtd I can use? I'm using ibatis 2.0b4

Un saludo
 
Angel Guillén

Ext: 87545

Reply via email to