Bonjour à tous,
Je travaille actuellement sur un projet et j'ai besoin de parcourir un fichier XMI (exporté de ArgoUML).

Voici le début de mon fichier XMI:

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
<?xml version = '1.0' encoding = 'UTF-8' ?>
<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Sun Nov 18 17:50:27 GMT 2012'>
  <XMI.header>    <XMI.documentation>
      <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
      <XMI.exporterVersion>0.34(6) revised on $Date: 2010-01-11 22:20:14 +0100 (Mon, 11 Jan 2010) $ </XMI.exporterVersion>
    </XMI.documentation>
    <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
  <XMI.content>
    <UML:Model xmi.id = '127-0-1-1--249a68fe:13b14925ffa:-8000:0000000000000A5D'
      name = 'untitledModel' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
      isAbstract = 'false'>
      <UML:Namespace.ownedElement>
        <UML:Package xmi.id = '127-0-1-1--249a68fe:13b14925ffa:-8000:0000000000000A5E'
          name = 'Controllers' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
          isAbstract = 'false'/>
        <UML:Class xmi.id = '127-0-1-1--249a68fe:13b14925ffa:-8000:0000000000000A5F'
          name = 'FileController' visibility = 'public' isSpecification = 'false'
          isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
J'utilise Jdom pour accéder aux différents éléments. J'arrive à accéder à l'élément XMI.content mais pas aux éléments commençant par "UML:Xxxxx".

Voici ma classe:
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
package models;
 
import java.io.*;
import org.jdom2.*;
import org.jdom2.input.*;
import org.jdom2.filter.*;
import java.util.List;
import java.util.Iterator;
 
public class ImportXMI {
 
	static org.jdom2.Document document;
	static Element root;
 
	public ImportXMI(File xmiFile){
		SAXBuilder sxb = new SAXBuilder();
	      try
	      {
	         //On crée un nouveau document JDOM avec en argument le fichier XML
	         //Le parsing est terminé ;)
	         document = sxb.build(xmiFile);
	      }
	      catch(Exception e){System.out.println(e.getMessage());}
 
	      //On initialise un nouvel élément racine avec l'élément racine du document.
	      root = document.getRootElement();
 
	      //Méthode définie dans la partie 3.2. de cet article
	      afficheALL();
	}
 
	//Ajouter cette méthodes à la classe JDOM2
	static void afficheALL()
	{
		System.out.println("Affichage de la liste:");
	   Namespace ns = Namespace.getNamespace("UML", "org.omg.xmi.namespace.UML");
 
	   List<Element> xmiContent = root.getChildren("XMI.content");//Retourne l'élément XMI.content
	   List<Element> xmiClass = root.getChildren("UML:Class");//Retourne une liste vide...
	   List<Element> xmiClass2 = root.getChildren("UML:Class", ns);//Retourne une liste vide...
	   List<Element> xmiClass3 = root.getChildren("Class", ns);//Retourne une liste vide...
 
	   for(int i=0; i<xmiClass.size(); i++){
		   System.out.println(i + xmiContent.get(i).getName());
	   }
 
	}
 
}
Sur beaucoup de forums j'ai cru comprendre que ce serait un problème de namespace?
J'ai pourtant récupéré le namespace dans mon code mais cela n'a rien changé.

Merci d'avance