2011-12-20 15 views
5

W Hibernate 4 Znalazłem (nowe dla mnie) możliwość użycia schematu XSD zamiast DTD.Nowy schemat XSD w 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"> 

Lokalizacja schematu jest nieprawidłowa i podczas inicjalizacji wystąpił błąd.

Czy ktoś wie, co jest nie tak z XSD w Hibernate 4?

+0

Jeśli chcesz, oto działająca (obecnie) lokalizacja pliku definicji schematu XML dla plików konfiguracyjnych hibernacji: ** http: //hibernate.org/xsd/hibernate-configuration/hibernate-configuration-4.0 .xsd ** Możesz użyć go wewnątrz atrybutu 'xsi: schemaLocation'. Następująca strona zawiera łącza do dostępnych plików XSD dla Hibernate (obecnie jest tam tylko _on_ XSD): http://hibernate.org/xsd/hibernate-configuration/. – informatik01

Odpowiedz

2

Lokalizacja schematu to tylko identyfikator miejsca, a to miejsce może być powiązane z dowolnym miejscem: internetem, lokalnym napędem. W szczególności ten schemat (wraz z hibernate-configuration-4.0.xsd) jest umieszczany wewnątrz słoika hibernacji-rdzenia w pakiecie org.hibernate. Ponieważ zwykle położenie schemaLocation i rzeczywista lokalizacja są takie same, IDE spróbuje pobrać je z miejsca, w którym wskazuje, ale nie jest to nasz przypadek. Możesz skonfigurować IDE, aby znaleźć ten schemat w tym słoju, aby można było korzystać z funkcji autouzupełniania. Jeśli mówimy o IntelliJ, przejdź do ustawień i skonfiguruj schematy i DTD tak, aby zawierały wymagany schemat.

+0

Dzięki, ale obecnie istnieje wiele problemów, które powodują korzystanie ze schematu XSD. Zespół Hibernate Dev naprawi część z nich w następnej wersji 5.0.0, więc na razie migracja do tego XSD nie jest możliwa. – 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"/> 

Spróbuj tego, powinno działać lepiej.

+0

Czy to działa u każdego? Próbowałem go i to nie działa ... –

+0

Po prostu to działało w IntelliJ: //org/hibernate/hibernate-mapping-4.0.xsd – zhy2002

Powiązane problemy