2011-12-20 12 views
5

En Hibernate 4 He encontrado (nuevo para mí) la posibilidad de utilizar el esquema XSD en lugar de DTD.Nuevo esquema XSD en 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"> 

Pero la ubicación del esquema no es válida y durante la inicialización recibí un error.

¿Alguien sabe qué hay de malo con XSD en Hibernate 4?

+0

Si lo desea, aquí está una ubicación en funcionamiento (a partir de ahora) del archivo de definición de esquema XML para los archivos de configuración de Hibernate: ** http: //hibernate.org/xsd/hibernate-configuration/hibernate-configuration-4.0 .xsd ** Puedes usarlo dentro del atributo 'xsi: schemaLocation'. La siguiente página tiene enlaces a archivos XSD disponibles para Hibernate (actualmente solo hay una XSD allí): http://hibernate.org/xsd/hibernate-configuration/. – informatik01

Respuesta

2

La ubicación del esquema es solo un identificador del lugar, y este lugar se puede enlazar a cualquier lugar: internet, unidad local. Particularmente, este esquema (junto con hibernate-configuration-4.0.xsd) se coloca dentro del contenedor hibernate-core en el paquete org.hibernate. Dado que normalmente el esquema de ubicación y la ubicación real son los mismos, IDE intentará buscarlo desde donde señala, pero este no es nuestro caso. Puede configurar su IDE para encontrar este esquema en este jar para que pueda usar la función de autocompletar. Si estamos hablando de IntelliJ, vaya a la configuración y configure sus esquemas y DTD para incluir el esquema requerido.

+0

Gracias, pero actualmente hay muchos problemas que desencadenan el uso del esquema xsd. Hibernate Dev Team arreglará parte de ellos con la próxima versión principal 5.0.0, por lo que por ahora la migración a este xsd no se puede lograr. – 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"/> 

Pruebe esto, debería funcionar mejor.

+0

¿Funciona esto para cualquier persona? Lo probé y no funciona ... –

+0

Simplemente, esto funcionó en IntelliJ: //org/hibernate/hibernate-mapping-4.0.xsd – zhy2002

Cuestiones relacionadas