浏览 2115 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-09
最后修改:2009-10-09
filter-def在dtd中出现顺序的问题,出现异常 13:36:37,748 ERROR XMLHelper:81 - Error parsing XML: XML InputStream(21) The content of element type "hibernate-mapping" must match "(meta*,typedef*,import*,(class|subclass|joined-subclass|union-subclass)*,resultset*,(query|sql-query)*,filter-def*,database-object*)" 修改方法: hibernate-mapping-3.0.dtd文件位于org/hibernate目录中,注意debug文件的时候记得从resources目录中copy过去,要不然会从publicid指向上进行网络效验,要不然就会出现 by: org.dom4j.DocumentException: hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net dom4j效验失败 这是原来的hibernate-mapping-3.0.dtd文件 <!ELEMENT hibernate-mapping ( meta*, typedef*, import*, (class|subclass|joined-subclass|union-subclass)*, resultset*, (query|sql-query)*, filter-def*, database-object* )> 修改后的文件为: <!ELEMENT hibernate-mapping ( meta*, typedef*, import*, filter-def*, (class|subclass|joined-subclass|union-subclass)*, resultset*, (query|sql-query)*, database-object* )> 原因: 解析class中的filter子元素时候需要从mapping对象中查找到预定义filter-def内容, private static void parseFilter(Element filterElement, Filterable filterable, Mappings model) { //...... if ( StringHelper.isEmpty(condition) ) { log.info(name); condition = model.getFilterDefinition(name).getDefaultFilterCondition(); } //...... hbm.xml解析试按照顺序来的,如果顺序 所以需要预先定义好filter-def后, class定义中才能使用filter, 可是在dtd中filter-def定义位于class后面,出现了问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |