2013-12-20 49 views
0

我想通過hbm2java從休眠映射文件生成類,但出現以下錯誤:Hibernate映射中的SAXParseException

SAXParseException; lineNumber:11; columnNumber:15;元素類型「class」的內容必須匹配「(meta *,subselect?,cache?,synchronize *,comment?,tuplizer *,(id | composite-id),discriminator?,natural-id?,(version | timestamp ),(property | many-to-one | one-to-one | component | dynamic-component | properties | any | map | set | list | bag | idbag | array | primitive-array),((加入 ,子類*)|加入子類* |?工會子*),裝載機,SQL插入,SQL更新,SQL-刪除,過濾器*,獲取知名度的*,結果集*(查詢?|?SQL-查詢)*)」。

映射文件的內容是:

01 <?xml version="1.0"?> 
02 <!DOCTYPE hibernate-mapping PUBLIC 
03  "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
04   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
05 
06 <hibernate-mapping package="test"> 
07 
08  <class name="phone" table="phone"> 
09    <property name="studentid" column="student_id" type="integer"/> 
10    <property name="phone" column="number" type="string"/>   
11  </class> 
12 
13 </hibernate-mapping> 
  • 我錯過了什麼?
  • 如何解釋錯誤?什麼是:?*
  • 是否有任何免費的驗證器/編輯器可以幫助我填寫XML?

提前(不知日食在大綱視圖犯規說明了什麼?)

感謝。

+0

開始時還有一個Id,但也許然後我有另一個錯誤,我通過消除這個表單。所以,我可以發現,如果我專注於那些沒有*或?的部分。非常感謝。 – user2013619

回答

1

*意味着:0,前一類型的1個以上的元素,預計。

?表示預期爲0或1個前述類型的元素。

沒有什麼意思是預期的前一種類型。

因此,在任何property元素之前,您需要一個idcomposite-id元素((id|composite-id))。

1

你缺少id屬性是強制的(在兩個屬性元素的頂部):

<class name="phone" table="phone"> 
    <id column=...