IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

[XSLT][javascript]Fichier XSLT et rendu sur divers navigateurs


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Par défaut [XSLT][javascript]Fichier XSLT et rendu sur divers navigateurs
    Bonjour,
    Voilà mon affaire du moment : J'ai un code en XSLT que j'utilise pour parser un fichier XML (affichage interactif via des fenêtres ouvrantes, quand on clique au niveau des titres). Ajouté à cela que j'utilise javascript (et jQuery) pour gérer les animations évoquées. Voilà pour la présentation... Après, dans le concret, ma question est la suivante :
    * Pour augmenter la probabilité de voir s'afficher correctement mes animations sur les navigateurs les plus classiques (Firefox et Internet Explorer...), cela a t-il un sens de vérifier la validité de mon code (via ce genre de site...), pour le rendre le plus conforme possible aux recommandations du W3C (XHTML1.0) ?
    Voilà, par avance Merci pour tout avis ou suggestion que vous sauriez me faire, à ce propos !

    Code XSLT concerné (si besoin):
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" 
    encoding="utf-8" 
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
     
    <xsl:template match="/">
    	<html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    	<title>Audio</title>
     
    	<link type="text/css" rel="stylesheet" href="Audio/Audio_css.css" />
     
    	<script type="text/javascript" src="http://souffle56.fr/Site/1-Trouver_les_ressources/Ressources/js/jquery-1.4.2.min.js"></script>
    	<script type="text/javascript" src="http://souffle56.fr/Site/1-Trouver_les_ressources/Ressources/js/jquery-ui-1.8.1.custom.min.js"></script>
    	<script type='text/javascript' src="http://souffle56.fr/Site/1-Trouver_les_ressources/Ressources/js/jquery.timers.js"></script>
    	<script type='text/javascript'>
    	//<![CDATA[
    		$(function(){
     
    			// Paramétrage / CSS -> conformité / W3C (Via jQuery)
    			$(".Container").css("width", 400);
     
     
    			// Ouverture, blocage ou fermeture / fenêtre cachée, via survol ou click sur [+]
    			// (Effets sympas: 'easeInOutCirc', 'easeInOutQuart', 'easeInOutQuint' ou 'easeInOutCubic')
    			$('#bouton1')
    				.mouseenter(descente1)
    				.mouseenter(tooltip)
    				.mouseleave(reset_tempo)
    				.mouseleave(montee1)
    				.toggle( // Si click -> (dé)blocage / disparition / texte caché...
    					function(){
    						$(this).unbind('mouseleave',montee1); 
    					},
    					function(){
    						$(this).mouseleave(montee1);
    					}
    				);
    			function descente1() {
    				$('#bouton1')
    					.unbind('mouseenter',descente1); // Blocage anti-rebonds (si survol répété de l'image)
    				$('#message_numero1').animate({
    					height:'show'
    					},900,'easeInOutCirc',function(){$('#bouton1').mouseenter(descente1);}); // Annulation / Blocage anti-rebonds
    			};
    			function montee1() {
    				$('#message_numero1').animate({
    					height:'hide'
    					},900);
    			};
     
    $('#bouton2').mouseenter(descente2).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee2).toggle(function(){$(this).unbind('mouseleave',montee2);},function(){$(this).mouseleave(montee2);});function descente2(){$('#bouton2').unbind('mouseenter',descente2);$('#message_numero2').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton2').mouseenter(descente2);});};function montee2(){$('#message_numero2').animate({height:'hide'},900);};
    $('#bouton3').mouseenter(descente3).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee3).toggle(function(){$(this).unbind('mouseleave',montee3);},function(){$(this).mouseleave(montee3);});function descente3(){$('#bouton3').unbind('mouseenter',descente3);$('#message_numero3').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton3').mouseenter(descente3);});};function montee3(){$('#message_numero3').animate({height:'hide'},900);};
    $('#bouton4').mouseenter(descente4).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee4).toggle(function(){$(this).unbind('mouseleave',montee4);},function(){$(this).mouseleave(montee4);});function descente4(){$('#bouton4').unbind('mouseenter',descente4);$('#message_numero4').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton4').mouseenter(descente4);});};function montee4(){$('#message_numero4').animate({height:'hide'},900);};
    $('#bouton5').mouseenter(descente5).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee5).toggle(function(){$(this).unbind('mouseleave',montee5);},function(){$(this).mouseleave(montee5);});function descente5(){$('#bouton5').unbind('mouseenter',descente5);$('#message_numero5').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton5').mouseenter(descente5);});};function montee5(){$('#message_numero5').animate({height:'hide'},900);};
    $('#bouton6').mouseenter(descente6).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee6).toggle(function(){$(this).unbind('mouseleave',montee6);},function(){$(this).mouseleave(montee6);});function descente6(){$('#bouton6').unbind('mouseenter',descente6);$('#message_numero6').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton6').mouseenter(descente6);});};function montee6(){$('#message_numero6').animate({height:'hide'},900);};
    $('#bouton7').mouseenter(descente7).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee7).toggle(function(){$(this).unbind('mouseleave',montee7);},function(){$(this).mouseleave(montee7);});function descente7(){$('#bouton7').unbind('mouseenter',descente7);$('#message_numero7').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton7').mouseenter(descente7);});};function montee7(){$('#message_numero7').animate({height:'hide'},900);};
    $('#bouton8').mouseenter(descente8).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee8).toggle(function(){$(this).unbind('mouseleave',montee8);},function(){$(this).mouseleave(montee8);});function descente8(){$('#bouton8').unbind('mouseenter',descente8);$('#message_numero8').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton8').mouseenter(descente8);});};function montee8(){$('#message_numero8').animate({height:'hide'},900);};
    $('#bouton9').mouseenter(descente9).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee9).toggle(function(){$(this).unbind('mouseleave',montee9);},function(){$(this).mouseleave(montee9);});function descente9(){$('#bouton9').unbind('mouseenter',descente9);$('#message_numero9').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton9').mouseenter(descente9);});};function montee9(){$('#message_numero9').animate({height:'hide'},900);};
    $('#bouton10').mouseenter(descente10).mouseenter(tooltip).mouseleave(reset_tempo).mouseleave(montee10).toggle(function(){$(this).unbind('mouseleave',montee10);},function(){$(this).mouseleave(montee10);});function descente10(){$('#bouton10').unbind('mouseenter',descente10);$('#message_numero10').animate({height:'show'},900,'easeInOutCirc',function(){$('#bouton10').mouseenter(descente10);});};function montee10(){$('#message_numero10').animate({height:'hide'},900);};
     
     
    			// y = coordonnée verticale de la souris
    			document.onmousemove = function(e){
    				if(!e){
    					e = window.event;
    				}
    				y = e.clientY;
    			};
    			i=1; // Nombre d'affichages du tooltip
     
    			function tooltip() {
    				if (i==1) {
    					// $("#tooltip").css("left", -125).css("top", 3); // Ajustement y du tooltip à la coordonnéee verticale de l'image [+]
    					document.getElementById('tooltip').style.top=y-25+"px";// Ajustement y du tooltip à la coordonnéee verticale y de la souris (précédemment définie)
    					$("#tooltip").oneTime("1s", function() { // Si le survol de l'image est > à 5 sec-> le Tooltips apparait (oneTime -> http://plugins.jquery.com/project/timers)
    						$("#tooltip").fadeIn(2500).delay(2500).fadeOut(1000);
    						i++; // Pour empêcher que le tooltip s'affiche plus d'une fois
    					});
    				}
    			};	
    			function reset_tempo() {
    				$("#tooltip").stopTime(); // Arrêt de la tempo oneTime() si on quitte l'image (stopTime -> http://plugins.jquery.com/project/timers)
    				$("#tooltip").clearQueue();
    				$("#tooltip").fadeOut(1000);
    			};	
     
    		})
    	//]]>
    	</script>
     
    	</head>
    	<body bgcolor="#FFFFFF">
     
    	<div class="Container">
    		<!-- Appel procédure permettant d'afficher chaque bloc de lignes -->
    		<xsl:apply-templates select="enregistrements/auteur/ressource/regroupement" />
    	</div>
     
    	<!-- Image s'affichant 1 fois (quelques secondes) pour proposer de cliquer sur [+] si on le survole -->
    	<div><img id="tooltip" src="Audio/images/Cliquez ici.png"  alt="" /></div>
     
    	</body>
    	</html>
    </xsl:template>
     
    <xsl:template match="regroupement">
        <xsl:apply-templates select="ligne">
    		<!-- "plusCount" -> Comptage du nombre de "cousins" précédant la balise <plus> à partir de la balise courante <regroupement> 
    		pour l'ajouter ensuite au nombre de "frères" précédant chaque balise <plus> concernée 
    		afin de gérer,via les fonctions JQUERY situées dans le <Head> (et le paramétrage des id "message_numero...") 
    		l'affichage des boutons [+] (et du contenu caché correspondant) selon leur ordre d'apparition : -->
    		<xsl:with-param name="plusCount" select="count(preceding-sibling::*/*/plus)"/> 
    		<!-- "imageCount" -> Comptage du nombre de "cousins" précédant la balise <image> à partir de la balise courante <regroupement> 
    		pour l'ajouter ensuite au nombre de "frères" précédant chaque balise <image> concernée 
    		afin de gérer,via les fonctions JQUERY situées dans le <Head> (et le paramétrage des id "message_numero...") 
    		l'affichage des boutons [+] (et du contenu caché correspondant) selon leur ordre d'apparition : -->		
    		<xsl:with-param name="imageCount" select="count(preceding-sibling::*/*/image)"/> 
    	</xsl:apply-templates>
    	<div class="Espace" style="width:389px"></div> <!-- Le "+2" sert à prolonger l'effet d'ombré sur la droite -->
    </xsl:template>
     
     
    <xsl:template match="ligne">
    	<xsl:param name="plusCount"/>
    	<!-- Test si il y a une balise encastrée "<plus>" -->
    	<xsl:if test="plus">
    		<!-- Calcul du numéro d'apparition de la balise encastrée "<plus>" concernée 
    		( =f(nombre de cousins précédents + nombre de frères précédents) ) -->
    		<xsl:variable name="compteur_de_lignes"><xsl:value-of select="$plusCount+count(preceding-sibling::*/plus)+1" /></xsl:variable>
    		<xsl:variable name="bouton"><xsl:value-of select="concat('bouton', $compteur_de_lignes)" /></xsl:variable>
    		<img id="{$bouton}" class="Bouton_plus" src="Audio/images/Plus_mini_2.gif"  alt=""/>
     
    	</xsl:if>
    	<xsl:if test="not(plus or image)"> <!-- Sinon... -->
    		<div class="Bouton_rien">
    		</div>
    	</xsl:if>
     
    	<!-- GESTION PARTIE TEXTE / LA BALISE <ligne> -->
     
    	<xsl:if test="(not(name(following-sibling::*[position()=1]) = 'extrait')) and (not(name(following-sibling::*[position()=1]) = 'surf'))">
    		<div class="Texte" style="width:367px">
    			<xsl:value-of select="text()"/> <!-- Affiche le contenu de la balise actuelle (<ligne>) sans afficher celui de sa balise enfant (<petit>) -->
    		    <xsl:apply-templates select="petit"/>
    		</div>
    	</xsl:if>	
     
     
     
    	<div class="Ombre_ligne_d"></div>
     
    	<xsl:if test="plus"> <!-- Balise encastrée "<plus>" ? -->
    		<!-- Numérotation / id "message_numero..." -->
    		<xsl:variable name="compteur_de_lignes"><xsl:value-of select="$plusCount+count(preceding-sibling::*/plus)+1" /></xsl:variable>
    		<xsl:variable name="message_numero"><xsl:value-of select="concat('message_numero', $compteur_de_lignes)" /></xsl:variable>
    		<xsl:variable name= "texte_style"><xsl:value-of select= "plus/@style"/></xsl:variable> <!-- Exemple: si @texte="fluo" -->
     
    		<xsl:variable name= "texte_recu"><xsl:value-of select= "plus/text()"/></xsl:variable>
    		<xsl:variable name= "info_complete"><xsl:value-of select="concat($texte_recu, '
    ')" /></xsl:variable>
    		<!-- Gestion / texte caché -->
     
    		<div id="{$message_numero}" class="Texte_caché" style="display:none; width:375px">
    			<span class="{$texte_style}"><xsl:value-of select="$info_complete"/></span> <!-- Affichage éventuel du texte caché -->
    			 <!-- Permet de faire un "retour chariot" pour afficher une ligne vide juste après le texte du xml -->
    		</div>
     
    	</xsl:if>	
     
    </xsl:template>
     
    </xsl:stylesheet>

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par souffle56 Voir le message
    * Pour augmenter la probabilité de voir s'afficher correctement mes animations sur les navigateurs les plus classiques (Firefox et Internet Explorer...), cela a t-il un sens de vérifier la validité de mon code (via ce genre de site...), pour le rendre le plus conforme possible aux recommandations du W3C (XHTML1.0) ?
    Le XHTML n'est pas vraiment géré par les navigateurs actuels. En fait ils font comme si c'était du HTML 4.01 et basta. L'ennui c'est qu'avec un tel comportement, les documents sont souvent, ni valide HTML 4.01, ni XML bien formé.
    Le XHTML n'est donc pas très intéressant comme format à présenter au navigateur. Ça n'a pas pris.

    Vérifier la validité du code, pour du HTML 4.01, oui, c'est intéressant, dans la mesure où les navigateurs sont mis à jour fréquemment, et que du code non valide pourrait très bien faire autre chose d'une version à l'autre.
    Attention quand même, la validité du code est secondaire vis-à-vis de la fonctionnalité du site. Deux ou trois trucs ne peuvent pas se faire avec du code absolument valide, et dans ce cas, si les navigateurs marchent comme ça quand même, tant pis.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Par défaut
    Merci beaucoup, thelvin,
    pour la pertinence de ta réponse; c'est exactement les informations dont j'avais besoin pour m'aider à préciser l'intérêt ou pas de tel ou tel doctype, notament, en l'occurence, en XSLT ! A ce propos, je viens de reprendre un article trouvé sur Internet que je trouve extrêmement bien fait, pour m'aider à préciser, via tes argument, le doctype que je vais utiliser... Concernant le HTML4.01 strict, voilà ce qu'ils mettent :
    Comme en HTML4.01 transitional :
    * le document est du HTML : il ne peut pas être traité comme du XML ;
    Si je me fie à tes arguments (qui, apparemment, tiennent la route), ce qu'ils disent serait obsolète, du fait que les navigateurs, en fait, n'ont pas suivi véritablement le standard XHTML 1, c'est bien cela

    Sinon, je suis confronté, en l'occurence, à un problème que je n'arrive, pour l'instant, ni à comprendre, ni à résoudre, concernant mon programme du moment (voir code XSLT ci-dessus); à savoir :

    * Pourquoi, quand je mets dans mon code XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="{$bouton}" class="Bouton_plus" src="Audio/images/Plus_mini_2.gif"  alt=""/>
    Le navigateur affiche (exemple pris ici pour le 3ème bouton [+]):

    Sous Firefox,IE7 ou IE8 :
    * Code source original :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img xmlns="" id="bouton3" class="Bouton_plus" src="Audio/images/Plus_mini_2.gif" alt="">
    * Code "Source de l'élément avec style" (Depuis le debugger intégré de IE8) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <IMG id="bouton3" class="Bouton_plus" alt="" 	src="http://souffle56.ovh.org/Site/Tests/Multimedia/Audio/images/Plus_mini_2.gif" xmlns="" jQuery1274205720468="4" />
    Autrement dit, pourquoi les balises image n'apparaissent pas sous la forme <img .../> mais sous la forme <img ...> (Balise ouverte, sans le "/" à la fin) Est-ce le navigateur qui fait cette omission, ou bien est-ce plutôt au niveau de la transformation XML/XSLT Ou est-ce, là encore, une question de Doctype mal choisi
    Merci si quelqu'un peut m'expliquer cela pour m'aider à arranger la situation !

    Rem: Pour info (Si, des fois, ça pouvait avoir une incidence), voilà le code que j'utilise pour associer la page XSLT à la page XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
       $xslDoc = new DOMDocument();
       $xslDoc->load("Audio/Audio_ESSAI.xsl");
     
       $xmlDoc = new DOMDocument();
       $xmlDoc->load("ENREGISTREMENTS_XML_ESSAI.xml");
     
       $proc = new XSLTProcessor();
       $proc->importStylesheet($xslDoc);
       echo $proc->transformToXML($xmlDoc);
    ?>
    Ainsi que le code XML (Si besoin):
    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <enregistrements>	
    	<auteur>
    		<ressource titre="Un titre super important" site="#">
    			<regroupement sous_titre="Titre du regroupement">
    				<ligne>Mon 1er texte
    					<plus>Je suis plutôt content... Je suis plutôt content... Je suis plutôt content... Je suis plutôt content... Je suis plutôt content... </plus>
    				</ligne>
    				<ligne>Mon 2ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 3ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 4ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 5ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 6ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 7ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 8ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 9ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    				<ligne>Mon 10ème texte
    					<plus>Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... Je suis super content... </plus>
    				</ligne>
    			</regroupement>
    		</ressource>
    	</auteur>	
    </enregistrements>

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Si tu ne fais plus de xhtml, tu devrais virer la déclaration du namespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xmlns="http://www.w3.org/1999/xhtml">

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Par défaut
    Merci beaucoup Morbo,
    Justement, je me demandais, du fait, quoi faire de cette fameuse déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xmlns="http://www.w3.org/1999/xhtml">
    Tu me donnes la réponse (-> virée, tout simplement !)... Ouf !
    Sinon, à propos de ma question concernant la balise fermée qui devient ouverte, quelqu'un a un avis

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    J'ai fait le test chez moi et enlever le namespace résout aussi ce pb de balise.
    Après je comprend pas trop le pourquoi .

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par souffle56 Voir le message
    Concernant le HTML4.01 strict, voilà ce qu'ils mettent :
    Si je me fie à tes arguments (qui, apparemment, tiennent la route), ce qu'ils disent serait obsolète, du fait que les navigateurs, en fait, n'ont pas suivi véritablement le standard XHTML 1, c'est bien cela
    Pas le moins du monde, et je ne vois pas ce qui te fait dire ça. Un document HTML ne peut pas être traité comme du XML, en effet. Et alors ? Quel rapport avec l'adoption ratée du XHTML par les navigateurs ?

    Citation Envoyé par souffle56 Voir le message
    -> A noter l'absence toujour manifeste du fameux "/" avant le ">" !
    *Aurais-je oublié quelque chose ?
    C'est normal. En HTML, la balise <img> est auto-fermante : ça n'aurait pas de sens de la fermer ailleurs que là où on l'ouvre. Fermer la balise est donc inutile.
    Et, en fait, mettre un / ailleurs qu'au début d'une balise fermante, est toujours invalide en HTML. Les navigateurs l'acceptent parce que quand ils lisent du XHTML, ils font comme si c'était du HTML, et ils ne veulent pas faire d'erreur quand un document XHTML l'utilise.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 186
    Par défaut
    Désolé thelvin,
    Je comprends ton incompréhension... Effectivement, je me suis plus qu'un peu "mélangé les pinceaux", par rapport à mes explications (la fatigue du moment ?...) En fait, ce sont ces 3 passages que j'aurais dû reprendre :
    HTML4.01 transitional

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    * le document est du HTML : il ne peut pas être traité comme du XML
    HTML4.01 strict

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

    Comme en HTML4.01 transitional :

    * le document est du HTML : il ne peut pas être traité comme du XML
    XHTML1.0 transitional :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    Le document peut être traité comme du HTML (ce que vous allez faire en pratique) mais aussi comme du XML
    pour rendre compte de ce qui m'a paru, à tord, être un non-sens / l'utilisation d'un format XHTML; En effet, selon ces 3 extraits, j'en avais déduit un peu trop hâtivement que seul un document de type XHTML1.0 pourrait être traité également comme du XML... Alors que, ce qu'ils veulent dire (si j'ai bien compris depuis), c'est simplement que si un document est bien conforme XHTML, il pourra en conséquence être utilisé également comme base XML (du fait que les balises seront fermées...)
    Après, une des preuves qu'un document peut être XML sans être forcément XHTML, c'est un des critères propre au XHTML qui dit que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toutes les balises et leurs attributs doivent être en minuscules
    Or, en xml, peu importe qu'un attribut soit en minuscules ou pas J'en conclus à présent que, effectivement, pas besoin forcément de validation XHTML pour être valide XML !
    En conséquence, pour mes fichiers XML, je vais opter pour un Doctype de type HTML4.0 strict qui, si il ne me garantit pas, bien sûr, d'être valide XML, me permet au moins d'être en adéquation avec la gestion "Doctype HTML 4.01" des navigateurs actuels et... m'autorise également plus de souplesse dans ma façon de coder XML/XSLT que le XHTML, sans nuire pour autant, du fait, au rendu observé sur les navigateurs ! A noter également que, si les validateurs internet tels que celui-ci http://validator.w3.org/ permettent de repérer facilement les "erreurs" / au Doctype HTML 4.01, concernant les tests que j'ai effectués sur fichiers XML/XSLT, ils ont vite fait d'indiquer toute une série d'erreurs pas forcément en adéquation avec la réalité si je leur demande un test XHTML 1.0! -> raison de plus, pour ce qui me concerne, de ne pas vouloir absolument être "valide XHTML 1.0" ! (Sans compter que, si j'ai bien compris cet article, d'ici quelques années, le standard XHTML 1.0 est appelé à disparaitre, alors, quel intérêt à être "valide XHTML 1.0" ? Et puis, en conséquence, si j'ai bien compris, les balises de type <balise/> devront être remplacées par <balise></balise> (pour une compatibilité HTML)... pff, franchement, ça y est, oui, mon choix est fait
    vive le HTML !

    Ps: Si quelqu'un a un avis différent ou... plus nuancé, merci de me le faire savoir, ça peut éventuellement m'intéresser, ne serait-ce que pour continuer à mieux me situer !

    Question subsidiaire: Suis-je assuré, si j'utilise un Doctype de type HTML 4.01 strict, d'avoir un code compatible avec les bases de la norme HTML 5 qui, d'ici quelques années, sera certainement utilisée par la plupart des navigateurs
    A noter un avis qui m'a semblé répondre à cette question:
    # Un document xHTML1.x valide le sera aussi en xHTML5;
    # Un document HTML4.x valide le sera aussi en HTML5;
    # Un document xHTML1.x valide ne le sera pas en xHTML2
    Voilà, sauf avis ou réaction particulière de quelqu'un à ce propos, peut-être puis-je considérer ce sujet comme résolu !

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par souffle56 Voir le message
    pour rendre compte de ce qui m'a paru, à tord, être un non-sens / l'utilisation d'un format XHTML; En effet, selon ces 3 extraits, j'en avais déduit un peu trop hâtivement que seul un document de type XHTML1.0 pourrait être traité également comme du XML... Alors que, ce qu'ils veulent dire (si j'ai bien compris depuis), c'est simplement que si un document est bien conforme XHTML, il pourra en conséquence être utilisé également comme base XML (du fait que les balises seront fermées...)
    Oui tu m'as l'air de t'embrouiller bien plus que ça.
    Précisons une chose : XML n'est pas à proprement parler un format : c'est un ensemble de règles qui servent à créer des formats. Exemples de formats créés avec XML :
    - SVG
    - RSS
    - Atom
    - Docbook
    - XHTML

    Un document XHTML est aussi un document XML. Parce que XHTML est un langage basé sur XML. C'est de là que vient le 'X' : XHTML, c'est HTML remodelé pour être basé sur XML.

    Or, en xml, peu importe qu'un attribut soit en minuscules ou pas
    C'est le contraire : en XML les majuscules et minuscules sont différenciées. En HTML, par contre, non. Mais vu que XHTML est basé sur XML, il doit respecter ses règles, et donc, là, les éléments doivent être en minuscule, chose qui n'avait pas d'importance avec le HTML.

    J'en conclus à présent que, effectivement, pas besoin forcément de validation XHTML pour être valide XML !
    Euh, oui mais, c'est normal puisqu'un document XML n'est pas forcément XHTML. En résumé, tu raisonnes en sens inverse. C'est facile d'être valide XML, mais ce n'est pas ce qui t'intéresse.

    En conséquence, pour mes fichiers XML, je vais opter pour un Doctype de type HTML4.0 strict qui, si il ne me garantit pas, bien sûr, d'être valide XML,
    En fait, un doctype HTML 4.01 strict te garantit (presque) de ne pas être valide XML. Mais tu t'en fous : ça ne sert à rien d'être valide XML pour faire du HTML envoyé au navigateur. En fait ça crée des problèmes.

    Le fait est que le HTML est plus souple... Mais pas beaucoup, là n'est pas son intérêt. Non, ce qu'il y a c'est qu'essayer de faire du XML et du HTML en même temps, les navigateurs n'ont pas vraiment accroché, et en général on fait surtout n'importe quoi. Accessoirement, si c'est pour envoyer au navigateur, ça ne sert à rien de vouloir absolument du XML. De toute façon ils le traiteront comme si c'en était pas.

    Question subsidiaire: Suis-je assuré, si j'utilise un Doctype de type HTML 4.01 strict, d'avoir un code compatible avec les bases de la norme HTML 5 qui, d'ici quelques années, sera certainement utilisée par la plupart des navigateurs
    C'est un des buts de HTML 5, normalement : tout ce qui était conforme avant, reste conforme avec HTML 5. En pratique il y a quelques entorses à cette règle, ici et là, mais il y a peu de chances de tomber dedans... Et puis, c'est le mieux qu'on puisse faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/09/2009, 10h59
  2. Réponses: 2
    Dernier message: 20/08/2007, 14h08
  3. Réponses: 1
    Dernier message: 03/08/2007, 13h25
  4. [XSLT] Erreur parsing XSLT sur du javascript
    Par michaelbob dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2006, 12h11
  5. Tester son code sur divers navigateurs
    Par benassis dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 22/03/2006, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo