je suis entrain de parser ce fichier XML avec JDOM:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
<?xml version="1.0" encoding="ASCII"?>
<orm:entity-mappings xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" version="2.0">
  <orm:access>FIELD</orm:access>
  <orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Book" name="Book">
    <orm:attributes>
      <orm:basic name="title" optional="true"/>
      <orm:basic name="pages" optional="true"/>
      <orm:basic name="category" optional="true"/>
      <orm:many-to-one name="author" optional="false" target-entity="org.eclipse.emf.texo.test.model.samples.library.Writer">
        <orm:cascade>
          <orm:cascade-persist/>
          <orm:cascade-merge/>
          <orm:cascade-refresh/>
        </orm:cascade>
      </orm:many-to-one>
    </orm:attributes>
  </orm:entity>
  <orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Writer" name="Writer">
    <orm:attributes>
      <orm:basic name="name" optional="true"/>
      <orm:one-to-many name="books" target-entity="org.eclipse.emf.texo.test.model.samples.library.Book">
        <orm:order-column/>
        <orm:join-table name="Writer_books"/>
        <orm:cascade>
          <orm:cascade-persist/>
          <orm:cascade-merge/>
          <orm:cascade-refresh/>
        </orm:cascade>
      </orm:one-to-many>
    </orm:attributes>
  </orm:entity>
  <orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Library" name="Library">
    <orm:attributes>
      <orm:basic name="name" optional="true"/>
      <orm:one-to-many name="writers" target-entity="org.eclipse.emf.texo.test.model.samples.library.Writer">
        <orm:order-column/>
        <orm:join-column/>
        <orm:cascade>
          <orm:cascade-all/>
        </orm:cascade>
      </orm:one-to-many>
      <orm:one-to-many name="books" target-entity="org.eclipse.emf.texo.test.model.samples.library.Book">
        <orm:order-column/>
        <orm:join-column/>
        <orm:cascade>
          <orm:cascade-all/>
        </orm:cascade>
      </orm:one-to-many>
    </orm:attributes>
  </orm:entity>
</orm:entity-mappings>
le fichier Java de Parse est:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
import java.io.File;
import java.io.IOException;
import java.util.List;
 
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
 
public class Parseur {
 
	public static void main(String[] args) throws Exception {
		SAXBuilder sxb=new SAXBuilder();
 
 
		Document document=sxb.build(new File("orm.xml"));
		Element entity=document.getRootElement();//entity xml
 
		List<Element>classes=entity.getChildren();
 
		for(Element classe:classes){
 
			String nom_classe=classe.getAttributeValue("name");
 
			System.out.println(nom_classe);
			List<Element> attributs=classe.getChildren();
			for (Element attribut:attributs)
			{
 
				List<Element> sousattribs=attribut.getChildren();
				for (Element sousattrib:sousattribs)
				{
				String nom=attribut.getAttributeValue("basic name");
                           // J'ai essayé aussi avec "name" au lieu de "basic name"
					System.out.println(nom);
				}
 
 
			}
 
 
		}
	}
}
sauf que j'ai rencontré 2 problèmes:
1/ J'arrive à voir les noms des classes qui sont ("Book, Writer,Library") mais avec en plus une valeur "null" que j'ai pas pu l'enlever.
2/ Pour les noms des attributs de classe, ils prennent tous la valeurs "null".

je suis vraiment bloqué dans cette étape.