[XSLT] non prise en compte de donnée
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:
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:
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:
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:
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:
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??