Bonsoir à tous
j'essaye d'afficher les element de mon fichier xml dans une page html en les mettant dans un tableau.
voici mon fichier xsd
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
53
54
55
56
57
58
59
60
61
62
63
 
 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">
		<html xmlns="http://www.w3.org/1999/xhtml">
			<head>
				<title>Base de Donnees</title>
			</head>
			<body>
				<xsl:apply-templates/>
			</body>
		</html>
	</xsl:template>
 
	<xsl:template match="Table">
		<Table style="border-collapse: collapse; border: 1pt solid white" cellspacing="1" bgcolor="000000">
			<th bgcolor="green" colspan="4" width="500">
			<xsl:value-of select="@NomTable"/>
			</th>
			<td bgcolor="green" width="250">
			<xsl:apply-templates select="Colonne"/>
			</td>
		</Table>		
	</xsl:template>
 
	<xsl:template match="Colonne">		
		<tr>
			<td bgcolor="cyan" width="200">
				<xsl:value-of select="@nom"/>
			</td>	
 
			<td bgcolor="blue" width="250">				
				<xsl:apply-templates select="DataType"/>				
			</td>
		</tr>					
	</xsl:template>
 
	<xsl:template match="DataType">		
 
				<xsl:value-of select="@type"/>
				<xsl:value-of select="@taille"/>
				<xsl:apply-templates select="Contrainte"/>				
 
	</xsl:template>
 
 
	<xsl:template match="Concactrainte">			
 
            <td bgcolor="cyan" width="200">
		<xsl:value-of select="@type"/>
                </td>
                <td bgcolor="cyan" width="200">
                <xsl:value-of select="@nom"/>
                </td>
 
		<xsl:apply-templates />	
	</xsl:template>
 
 
 
</xsl:stylesheet>
le resultat aprés execution de la transformation avec la methode suivante:
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
      public static void XSLT(String file) throws IOException, TransformerException
    {
        File stylesheet = new File("....BD.xslt");
        File srcFile = new File(file);
        File destFile = new File("...output.html");
        //java.io.Writer destFile = new OutputStreamWriter(System.out, "ISO-8859-1");
 
        TransformerFactory factory = TransformerFactory.newInstance();
        Source xslt = new StreamSource(stylesheet);
        Transformer transformer = factory.newTransformer(xslt);
 
        Source request = new StreamSource(srcFile);
        Result response = new StreamResult(destFile);
        transformer.transform(request, response);
}
le resultat out.html ne contient que mes element (table,colonne et datatype)mais pas (contrainte) et je ne comprend pas pk.
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
 
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Base de Donnees</title>
</head>
<body>
 
<Table style="border-collapse: collapse; border: 1pt solid white" cellspacing="1" bgcolor="000000">
<th bgcolor="green" colspan="4" width="500">Table1</th>
<td bgcolor="green" width="250">
<tr>
<td bgcolor="cyan" width="200">Colonne11</td>
<td bgcolor="blue" width="250">chaineFixe20</td>
</tr>
<tr>
<td bgcolor="cyan" width="200">Colonne12</td>
<td bgcolor="blue" width="250">chaineVariable30</td>
</tr>
</td>
</Table>
<Table style="border-collapse: collapse; border: 1pt solid white" cellspacing="1" bgcolor="000000">
<th bgcolor="green" colspan="4" width="500">Table2</th>
<td bgcolor="green" width="250">
<tr>
<td bgcolor="cyan" width="200">Colonne21</td>
<td bgcolor="blue" width="250">chaineFixe20</td>
</tr>
<tr>
<td bgcolor="cyan" width="200">Colonne22</td>
<td bgcolor="blue" width="250">chaineVariable30</td>
</tr>
</td>
</Table>
<Table style="border-collapse: collapse; border: 1pt solid white" cellspacing="1" bgcolor="000000">
<th bgcolor="green" colspan="4" width="500">Table3</th>
<td bgcolor="green" width="250">
<tr>
<td bgcolor="cyan" width="200">Colonne31</td>
<td bgcolor="blue" width="250">chaineFixe20</td>
</tr>
<tr>
<td bgcolor="cyan" width="200">Colonne32</td>
<td bgcolor="blue" width="250">chaineVariable30</td>
</tr>
</td>
</Table>
</body>
</html>
et voici le dtd si ça peut aider qlqn
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
 
 
<!ELEMENT DataType (#PCDATA)>
<!ELEMENT Contrainte (#PCDATA)>
<!ELEMENT Colonne (DataType,Contrainte*)>
<!ELEMENT Table (Colonne*)>
<!ATTLIST Table NomTable CDATA #REQUIRED >
<!ELEMENT BaseDonnee (Table+)>
<!ATTLIST Contrainte type (non_nul|unique|auto_increment) #REQUIRED >
<!ATTLIST Contrainte nom  CDATA #REQUIRED >
<!ATTLIST Colonne nom  CDATA #REQUIRED >
<!ATTLIST DataType type  CDATA #REQUIRED taille CDATA #IMPLIED>
et la structure de mon fichier xml ressemble a ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Table NomTable = "Table1">  
  <Colonne nom = "Colonne11">
        <DataType type = "chaineFixe" taille= "20"/>
             <Contrainte type="non_nul" nom="contrainte_non_nul"/>
  </Colonne>
  <Colonne nom = "Colonne12">
        <DataType type = "chaineVariable" taille= "30"/>
             <Contrainte type="non_nul" nom="contrainte_non_nul"/>
  </Colonne>
</Table>
pourriez vous m'aider svp??