Bonjour, bonsoir,

je suis actuellement confronté à un problème que je me permet de qualifier de "relou". J'ai concrètement une notion de taxon à faire persister. Ce taxon peut être une Famille un genre ou une espèce. Chacun étant reliés entre eux de manière hiérarchique. Taxon>(Famille>Genre>Espece).

Voici mon XML permettant de mapper l'engin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<class name="Modèle.Taxonomie.Taxon" table="TAXON">
        <id name="idTaxon" column="ID_TAXON">
            <generator class="increment"/>
        </id>
        <property name="description" type="string" column="DESCRIPTION"/>
        <property name="nom" type="string" column="NOM"/>
        <property name="nom_latin" type="string" column="NOM_LATIN"/>
        <discriminator column="TYPE" type="string"/>
        <subclass name="Modèle.Taxonomie.Famille" discriminator-value="FAM">
            <property name="estAnimal" column="EST_ANIMAL" type="boolean"/>
            <set name="desGenres" table="EST_COMPOSEE_DE" cascade="all">
                <key column="ID_TAXON"/>
                <many-to-many column="ID_GENRE" class="Modèle.Taxonomie.Genre"/>
            </set>
        </subclass>
        <subclass name="Modèle.Taxonomie.Genre" discriminator-value="GEN">
            <set name="desEspeces" table="SE_COMPOSE_DE" cascade="all">
                <key column="ID_TAXON"/>
                <many-to-many column="ID_ESPECE" class="Modèle.Taxonomie.Espece"/>
            </set>
        </subclass>
        <subclass name="Modèle.Taxonomie.Espece" discriminator-value="ESP">
                <key column="ID_TAXON"/>
                <many-to-one name="unGenre" column="ID_GENRE" class="Modèle.Taxonomie.Genre"/>
        </subclass>
    </class>
J'obtient cette erreur, qui n'est pas très explicite pour moi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Grave: Error parsing XML: XML InputStream(28) Le contenu du type d'élément "subclass" doit correspondre à "(meta*,tuplizer*,synchronize*,(property|many-to-one|one-to-one|component|dynamic-component|any|map|set|list|bag|idbag|array|primitive-array)*,join*,subclass*,loader?,sql-insert?,sql-update?,sql-delete?,resultset*,(query|sql-query)*)".
mai 13, 2012 11:23:44 PM org.hibernate.util.XMLHelper$ErrorLogger error
Grave: Error parsing XML: XML InputStream(29) Le contenu du type d'élément "class" doit correspondre à "(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)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)".
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Could not parse mapping document from resource hibernate.hbm.xml
Exception in thread "main" java.lang.ExceptionInInitializerError
	at NewHibernateUtil.<clinit>(NewHibernateUtil.java:28)
	at TestMAPPING.main(TestMAPPING.java:23)

J'ai bien compris qu'il y avait une erreur dans l'XML mais ou?

Merci d'avance pour votre aide.