2011-12-20 15 views
5

In Hibernate 4 ho trovato (nuovo per me) la possibilità di utilizzare lo schema XSD anziché DTD.Nuovo schema XSD in 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"> 

Ma la posizione dello schema non è valida e durante l'inizializzazione ho avuto un errore.

Qualcuno sa cosa c'è di sbagliato in XSD in Hibernate 4?

+0

Se lo si desidera, qui è una posizione funzionante (come ora) del file XML Schema Definition per i file di configurazione di Hibernate: ** http: //hibernate.org/xsd/hibernate-configuration/hibernate-configuration-4.0 .xsd ** Puoi usarlo all'interno dell'attributo 'xsi: schemaLocation'. La pagina seguente ha collegamenti ai file XSD disponibili per Hibernate (attualmente c'è solo _one_ XSD lì): http://hibernate.org/xsd/hibernate-configuration/. – informatik01

risposta

2

La posizione dello schema è solo un identificatore del luogo e questo luogo può essere associato a qualsiasi luogo: Internet, unità locale. In particolare questo schema (insieme a hibernate-configuration-4.0.xsd) viene inserito all'interno del jar hibernate-core nel pacchetto org.hibernate. Poiché solitamente la posizione dello schema e la posizione effettiva sono le stesse, IDE proverà a recuperarlo da dove punta, ma non è questo il nostro caso. È possibile configurare l'IDE per trovare questo schema in questo contenitore in modo da poter utilizzare il completamento automatico. Se stiamo parlando di IntelliJ, allora vai alle impostazioni e configura i tuoi schemi e DTD per includere lo schema richiesto.

+0

Grazie, ma attualmente ci sono molti problemi che fanno scattare l'uso dello schema xsd. Hibernate Dev Team risolverà parte di essi con la prossima versione principale 5.0.0, quindi per ora la migrazione a questo xsd non è possibile. – 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"/> 

Prova questo, dovrebbe funzionare meglio.

+0

Funziona per chiunque? L'ho provato e non funziona ... –

+0

Semplicemente funziona in IntelliJ: //org/hibernate/hibernate-mapping-4.0.xsd – zhy2002

Problemi correlati