Hibernate mapping-resource必须跟随属性规范,“>”或“/>”。'

时间:2011-08-19 17:00:08

标签: xml hibernate

我的hibernate.cfg.xml中的mapping-resource有问题 - 我得

Element type "mapping-resource" must be followed by either attribute specifications, ">" or "/>".'

我的hibernate.cfg.xml看起来像

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration>

   <session-factory>
      <property name="datasourceName">java:jboss/datasources/MySqlDS</property>
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <mapping-resource="com/mycompany/myapp/common/businessobjects/User.hbm.xml"/>
        <mapping-resource="com/mycompany/myapp/common/businessobjects/Company.hbm.xml"/>
        <mapping-    resource="com/mycompany/myapp/common/businessobjects/ServerSettings.hbm.xml"/>
        <mapping-resource="com/mycompany/myapp/common/businessobjects/Station.hbm.xml"/>
   </session-factory>
</hibernate-configuration>

不确定是什么问题?语法似乎没错?我的地图资源是基于这里的信息

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html

2 个答案:

答案 0 :(得分:2)

您误读了规范(参见第3.7章)。它需要看起来像

<mapping resource="com/mycompany/myapp/common/businessobjects/User.hbm.xml"/>

你有一个 - (减号),它应该是一个空格。 xml标签是“映射”属性是“资源”

答案 1 :(得分:1)

这是糟糕的XML语法。你不能写<name="something"/>;它必须是<name attrname="something"/>。 XML解析器抱怨,因为它在="之前找不到属性名称。

您链接到的文档根本没有提到mapping-resource,因此很难说正确使用的语法是什么。但是,您可以尝试

<mapping-resource>com/mycompany/myapp/common/businessobjects/User.hbm.xml</mapping-resource>

有一定的工作机会。 (至少它是格式良好的XML,但它是否是您的工具所期望的特定结构我不能说)。