2011-12-20 33 views
5

Trong Hibernate 4 tôi đã tìm thấy (mới cho tôi) khả năng sử dụng lược đồ XSD thay vì DTD.Lược đồ XSD mới trong Hibernate 4

<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping"     
    xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping hibernate-mapping-4.0.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

Nhưng vị trí lược đồ không hợp lệ và trong quá trình khởi tạo, tôi gặp lỗi.

Có ai biết điều gì sai với XSD trong Hibernate 4 không?

+0

Nếu bạn muốn, dưới đây là vị trí của tệp Định nghĩa lược đồ XML cho các tệp cấu hình Hibernate: ** http: //hibernate.org/xsd/hibernate-configuration/hibernate-configuration-4.0 .xsd ** Bạn có thể sử dụng nó bên trong thuộc tính 'xsi: schemaLocation'. Trang sau có các liên kết đến các tệp XSD có sẵn cho Hibernate (hiện tại chỉ có _one_ XSD ở đó): http://hibernate.org/xsd/hibernate-configuration/. – informatik01

Trả lời

2

Vị trí lược đồ chỉ là số nhận dạng của địa điểm và địa điểm này có thể bị ràng buộc ở bất kỳ đâu: internet, ổ đĩa cục bộ. Đặc biệt lược đồ này (cùng với hibernate-configuration-4.0.xsd) được đặt bên trong jar lõi ngủ đông trong gói org.hibernate. Vì thường schemaLocation và vị trí thực tế giống nhau, IDE sẽ cố gắng lấy nó từ nơi nó trỏ, nhưng đây không phải là trường hợp của chúng ta. Bạn có thể định cấu hình IDE để tìm giản đồ này trong lọ này để bạn có thể sử dụng tính năng tự động hoàn tất. Nếu chúng ta đang nói về IntelliJ, sau đó đi đến các thiết lập và cấu hình các lược đồ và các DTD của bạn để bao gồm lược đồ yêu cầu.

+0

Cảm ơn, nhưng hiện tại có rất nhiều vấn đề kích hoạt việc sử dụng lược đồ xsd. Hibernate Dev Team sẽ sửa một phần trong số chúng với bản phát hành chính 5.0.0 tiếp theo, vì vậy hiện tại việc di chuyển sang xsd này không thể đạt được. – smg

6
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping" 
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping classpath://org/hibernate/hibernate-mapping-4.0.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" package="acme.foo.bar"/> 

Hãy thử điều này, nó sẽ hoạt động tốt hơn.

+0

Tính năng này có phù hợp với bất kỳ ai không? Tôi đã thử nó và nó không hoạt động ... –

+0

Đơn giản chỉ cần làm điều này làm việc trong IntelliJ: //org/hibernate/hibernate-mapping-4.0.xsd – zhy2002

Các vấn đề liên quan