RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 [ID & IDREF] problème d'utilisation

Forum : XML/XSL
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ XML/XSL

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM XML/XSL

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
splifferwolf
Nouveau membre
Inscrit : 02/04/2008
Messages : 4
Message
#151485
Posté le 02/04/08 à 13:53
Bonjour tout le monde,

Je tombe sur un problème que malheureusement je n'arrive pas à résoudre, pour mon évaluation XML ( cours ) je doit créer une dvdtheque ( DTD + XML + XSL(T) )

Mon problème est que je n'arrive pas à récupérer un élément par rapport à son id, hummmmm pas très clair peut-être

Voici ma DTD
dvdtheque.dtd

<!ELEMENT dvdtheque (films*,genre*,acteurs*,realisateurs*,nationalite*,disponibilite*)> <!-- Noeud des films --> <!ELEMENT films(titre,genre*,acteur*,realisateur*,dispo*,synopsis)> <!ATTLIST films idfilm CDATA #REQUIRED> <!ELEMENT titre (#PCDATA) #REQUIRED> <!ATTLIST titre annee CDATA #REQUIRED> <!ATTLIST titre duree CDATA #REQUIRED> <!ELEMENT genre EMPTY> <!ATTLIST genre idgenre IDREF #REQUIRED> <!ELEMENT acteur EMPTY> <!ATTLIST acteur idact IDREF #REQUIRED> <!ELEMENT realisateur EMPTY> <!ATTLIST realisateur idreal IDREF #REQUIRED> <!ELEMENT dispo EMPTY> <!ATTLIST dispo iddispo IDREF #REQUIRED> <!ELEMENT synopsis (#PCDATA) #REQUIRED> <!-- Noeud des genres --> <!ELEMENT genres (nomg)> <!ATTLIST genres idrefgenre ID #REQUIRED> <!ELEMENT nomg (#PCDATA) #REQUIRED> <!-- Noeud des acteurs --> <!ELEMENT acteurs (noma)> <!ATTLIST acteurs idrefact ID #REQUIRED> <!ELEMENT noma (#PCDATA) #REQUIRED> <!-- Noeud des realisateurs --> <!ELEMENT realisateurs (nomr)> <!ATTLIST realisateurs idrefreal ID #REQUIRED> <!ELEMENT nomr (#PCDATA) #REQUIRED> <!-- Noeud des nationalités --> <!ELEMENT nationalites (nomn)> <!ATTLIST nationalites idrefnat ID #REQUIRED> <!ELEMENT nomn (#PCDATA) #REQUIRED> <!-- Noeud des nationalité --> <!ELEMENT disponibilites (nomd)> <!ATTLIST disponibilites idrefdispo ID #REQUIRED> <!ELEMENT nomd (#PCDATA) #REQUIRED>

jusque là je pense que ma DTD est correct je définit bien les ID et les IDREF ?

Maintenant le XML
dvdtheque.xml

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="dvdtheque.xsl"?> <!DOCTYPE dvdtheque SYSTEM "dvdtheque.dtd"> <dvdtheque> <films idfilm="1"> <titre annee="1994" duree="2H40">Titre 1</titre> <genre idgenre="g1"/> <acteur idact="a1"/> <realisateur idreal="r1"/> <dispo iddispo="d1"/> <synopsis>Premier synopsis</synopsis> </films> <genres idrefgenre="g1"> <nomg>Action</nomg> </genres> <acteur idrefact="a1"> <noma>Acteur1</noma> </acteur> <realisateurs idrefreal="r1"> <nomr>Réalisateur 1</nomr> </realisateurs> <nationalites idrefnat="n1"> <nomn>Nationalite 1</nomn> </nationalites> <disponibilites idrefdispo="d1"> <nomd>Dispo ici et là</nomd> </disponibilites> </dvdtheque>

ici mes idact etc... font bien référence au acteur et autre, et voici le XSL
dvdtheque.xsl
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head> <title>Dvdthèque</title> </head> <body> <xsl:for-each select="dvdtheque/films"> <xsl:value-of select="titre"/><br/> <xsl:for-each select="acteur"> <xsl:value-of select="id(./@idact)/noma"/><br/> </xsl:for-each> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>

Vous remarquerez aucune mise en page je cherche juste à l'afficher, dans ce XSL le titre s'affiche correctement ( normale je fait la boucle sur les films )
ensuite j'effectue une boucle sur acteur en lui demandant de m'envoyer l'element noma de l'identifiant a1
mais rien impossible d'afficher l'acteur

Si quelqu'un à du temps à me consacrer pour comprendre ou est mon erreur, car je suppose que c'est une erreur de ma part

d'avance merci de votre aide

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

hibou57
Rédacteur MP
Superviseur :
- Langages Web
Modérateur :
- XML/XSL
- ADA
Avatar de hibou57
Inscrit : 13/02/2005
Messages : 563
Message
#151764
Posté le 11/04/08 à 05:05
Bonjour Spliffer,

Je n'utilise malheureusement pas les DTD, et de plus IE7 ne semble pas accepter le DTD que tu fourni.

Mais je me demande si ici :
<xsl:value-of select="id(./@idact)/noma"/>
tu ne devrais peut-être pas indiquer que l'ID est celui d'un element dvdtheque/acteur. Parce que dans ta boucle, tu es quand-même dans le contexte de l'élément dvdtheque/films, et dvdtheque/acteur n'est évidement pas dans dvdtheque/films.

En dehors de ça, l'usage que tu fais de la fonction id semble correcte (vu les définitions de la DTD).

Avec quoi teste-tu ton système ? Parce que chez moi avec IE7, c'est KO (il m'indique des erreurs dans la DTD).

Je suis curieux de voir la suite de cette affaire, ... ça m'interesse.

Au plaisir de te lire Spliffer Smiley
__________________________
Lasidoré : Editeur XML orienté sémantique/Online XML editor - Alpha
Utiliser le Compilateur Ada GNAT - Fiabilité professionnelle, Ada we trust
Opera, Le navigateur - Léger, rapide, efficace, joli et source d'inspiration
DragonFly, Le debugger JavaScript, CSS, ... et HTML - Only on Opera
Exalead Search - Beceause Google is not a synonym of “ search engine ”

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

splifferwolf
Nouveau membre
Inscrit : 02/04/2008
Messages : 4
Message
#151772
Posté le 11/04/08 à 12:18
Merci hibou de ta réponse

Alors voici ou j'en suis
éffectivement il devait y avoir une erreur avec la DTD, je l'ai donc refaite complètement

j'utilise XMLwriter qui me dit que la DTD est well formed
dvdthèque.dtd

<!ELEMENT dvdtheque (films*,genres*,acteurs*,realisateurs*,disponibilites*,nationalites*)> <!-- Definition du noeud "films" --> <!ELEMENT films (titre,genre*,acteur*,realisateur*,dispo*,origine*,synopsis)> <!-- Definition "films/titre" --> <!ELEMENT titre (#PCDATA)> <!ATTLIST titre ref CDATA #REQUIRED duree CDATA #REQUIRED annee CDATA #REQUIRED> <!-- Definition "films/genre" --> <!ELEMENT genre EMPTY> <!ATTLIST genre idg IDREF #REQUIRED> <!-- Definition "films/acteur" --> <!ELEMENT acteur EMPTY> <!ATTLIST acteur ida IDREF #REQUIRED> <!-- Definition "films/realisateur" --> <!ELEMENT realisateur EMPTY> <!ATTLIST realisateur idr IDREF #REQUIRED> <!-- Definition "films/dispo" --> <!ELEMENT dispo EMPTY> <!ATTLIST dispo idd IDREF #REQUIRED> <!-- Definition "films/pays" --> <!ELEMENT origine EMPTY> <!ATTLIST origine idn IDREF #REQUIRED> <!-- Definition "films/synopsis" --> <!ELEMENT synopsis (#PCDATA)> <!-- Definition du noeud "genres" --> <!ELEMENT genres (nomg)> <!ELEMENT nomg (#PCDATA)> <!ATTLIST nomg idg ID #REQUIRED> <!-- Definition du noeud "acteurs" --> <!ELEMENT acteurs (noma)> <!ATTLIST acteurs idrefa ID #REQUIRED> <!ELEMENT noma (#PCDATA)> <!ATTLIST noma idn IDREF #REQUIRED age CDATA #REQUIRED> <!-- Definition du noeud "realisateurs" --> <!ELEMENT realisateurs (nomr)> <!ELEMENT nomr (#PCDATA)> <!ATTLIST nomr idr ID #REQUIRED idn IDREF #REQUIRED age CDATA #REQUIRED> <!-- Definition du noeud "disponibilites" --> <!ELEMENT disponibilites (nomd)> <!ELEMENT nomd (#PCDATA)> <!ATTLIST nomd idd ID #REQUIRED prix CDATA #REQUIRED> <!-- Definition du noeud "nationalites" --> <!ELEMENT nationalites (nomn)> <!ELEMENT nomn (#PCDATA)> <!ATTLIST nomn idn ID #REQUIRED>

dvdtheque.xml

<?xml version="1.0" encoding="ISO8859-1"?> <?xml-stylesheet type="text/xsl" href="dvdtheque.xsl"?> <!DOCTYPE dvdtheque SYSTEM "dvdtheque.dtd"> <dvdtheque> <!-- Liste des films --> <films> <titre duree="2H00" annee="1996" ref="01">Film 1</titre> <genre idg="ac"/> <acteur ida="act1"/> <realisateur idr="real1"/> <dispo idd="d_us"/> <origine idn="n_us"></origine> <synopsis>Lorem Ipsum</synopsis> </films> <films> <titre duree="2H00" annee="1996" ref="01">Film 2</titre> <genre idg="ac"/> <acteur ida="act1"/> <realisateur idr="real1"/> <dispo idd="d_us"/> <origine idn="n_us"></origine> <synopsis>Lorem Ipsum</synopsis> </films> <films> <titre duree="2H00" annee="1996" ref="01">Film 3</titre> <genre idg="ac"/> <acteur ida="act1"/> <realisateur idr="real1"/> <dispo idd="d_us"/> <origine idn="n_us"></origine> <synopsis>Lorem Ipsum</synopsis> </films> <!-- Liste des genres --> <genres><nomg idg="ac">Action</nomg></genres> <genres><nomg idg="sf">Sience-Fiction</nomg></genres> <genres><nomg idg="rm">Roman</nomg></genres> <genres><nomg idg="dr">Drame</nomg></genres> <genres><nomg idg="pl">Policier</nomg></genres> <genres><nomg idg="at">Auteur</nomg></genres> <genres><nomg idg="ft">Fantastique</nomg></genres> <!-- Liste des acteurs --> <acteurs idrefa="act1" ><noma age="40" idn="n_us">Acteur 1</noma></acteurs> <acteurs idrefa="act2" ><noma age="40" idn="n_en">Acteur 2</noma></acteurs> <acteurs idrefa="act3" ><noma age="40" idn="n_fr">Acteur 3</noma></acteurs> <!-- Liste des realisateurs --> <realisateurs><nomr idr="real1" age="40" idn="n_us">Réalisateur 1</nomr></realisateurs> <realisateurs><nomr idr="real2" age="40" idn="n_en">Réalisateur 2</nomr></realisateurs> <realisateurs><nomr idr="real3" age="40" idn="n_fr">Réalisateur 3</nomr></realisateurs> <!-- Liste des disponibilites --> <disponibilites><nomd prix="25" idd="d_us">U.S.A</nomd></disponibilites> <disponibilites><nomd prix="25" idd="d_eu">Europe</nomd></disponibilites> <!-- Liste des nationalites --> <nationalites><nomn idn="n_us">Américain</nomn></nationalites> <nationalites><nomn idn="n_en">Anglais</nomn></nationalites> <nationalites><nomn idn="n_fr">Français</nomn></nationalites> </dvdtheque>

et enfin le fichier dvdtheque.xsl

<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Dvdtheque</title> </head> <body> <xsl:for-each select="dvdtheque/films"> <xsl:text>Titre du film </xsl:text><xsl:value-of select="titre"/><br/> <xsl:for-each select="acteur"> <xsl:value-of select="id(./@ida)/noma"/><br/> </xsl:for-each> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>


XMLwriter me dit que tout est wel formed et XML est valid
j'ouvre mon fichier dans IE7 et houraaaa il affiche bien l'acteur en fonction de l'ID, mais FF lui ne veux pas il m'affiche juste le titre

et pour ce qui concerne
select="id(./@ida)/noma"/>
on spécifie qu'il doit nous retouner l'élément noma qui porte l'ID fourni par l'IDREF de ida

Donc IE7 ca marche nikel
FF ca plante

Donc voilà, maintenant je cherche à l'afficher correctement dans IE7 ( ca c'est bon ) et dans FF qui lui ne m'affiche pas le nom des acteurs

encore merci d'avance de votre aide

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

hibou57
Rédacteur MP
Superviseur :
- Langages Web
Modérateur :
- XML/XSL
- ADA
Avatar de hibou57
Inscrit : 13/02/2005
Messages : 563
Message
#151806
Posté le 12/04/08 à 10:05
Probablement tout simplement un problème de compatibilité entre navigateurs. Je sais que par exemple IE6 accepte certaines constructions XSLT, que mon XSLTProc n'accepte pas (à vrai dire, IE6 accepte des constructions bien pratiques, mais malheureusement non-standards).

Pour résoudre ton problème sous FireFox, ouvre ton document, puis ensuite dans le menu "Tools", ouvre "Error Console". Là tu trouvera certainement des indications de ce qui a empéché ton document d'être affiché normalement.

FireFox n'ouvre pas de boite de message d'erreur par défaut quand il rencontre une erreur dans un document (contrairement à Opera pas exemple). Pour cette raison, il te faut aller explicitement de renseigner sur les erreurs éventuelles en ouvrant la console d'erreur.

Note : je parle de la compatibilité vis-à-vis d'XSLT en début de ce post : ce n'est que pour donner un exemple. Je ne veux pas par là dire que je suppose que le problème vient de ton XSLT. Il peut tout aussi bien encore une fois de plus venir de la DTD.
__________________________
Lasidoré : Editeur XML orienté sémantique/Online XML editor - Alpha
Utiliser le Compilateur Ada GNAT - Fiabilité professionnelle, Ada we trust
Opera, Le navigateur - Léger, rapide, efficace, joli et source d'inspiration
DragonFly, Le debugger JavaScript, CSS, ... et HTML - Only on Opera
Exalead Search - Beceause Google is not a synonym of “ search engine ”

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

splifferwolf
Nouveau membre
Inscrit : 02/04/2008
Messages : 4
Message
#151810
Posté le 12/04/08 à 12:04
Aucun message d'erreur dans la console de FireFox :s
et je viens de faire voire ma DTD à mon prof, qui me confirme qu'elle est bonne :s

donc je cogite encore à ce problème sniff

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

hibou57
Rédacteur MP
Superviseur :
- Langages Web
Modérateur :
- XML/XSL
- ADA
Avatar de hibou57
Inscrit : 13/02/2005
Messages : 563
Message
#151812
Posté le 12/04/08 à 12:51
Peut-être alors une question de version de FireFox ?

En tous les cas, je pense que ton prof devrait être compréhensif... tu ne peux pas être responsable du fait que ça ne fonctionne pas sous FireFox.

Est-ce que tu peux poster ici la version actuelle de ton jeux de teste ? C'est pour que je fasse l'essais chez moi aussi.

A bientôt
__________________________
Lasidoré : Editeur XML orienté sémantique/Online XML editor - Alpha
Utiliser le Compilateur Ada GNAT - Fiabilité professionnelle, Ada we trust
Opera, Le navigateur - Léger, rapide, efficace, joli et source d'inspiration
DragonFly, Le debugger JavaScript, CSS, ... et HTML - Only on Opera
Exalead Search - Beceause Google is not a synonym of “ search engine ”

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

splifferwolf
Nouveau membre
Inscrit : 02/04/2008
Messages : 4
Message
#151813
Posté le 12/04/08 à 13:12
alors les sources sont donc dans le post plus haut, elle n'ont pas changer

j'ai tester sous
- IE7 ( ok c'est bon )
- FireFox 2.0.0.13 ( passe pas )
- FireFox 3 beta 5 ( idem que pour la 2 )
- Safari 3.1 ( ok c'est bon )
- Opera 8.54 ( Aucune transformation XSL, il m'affiche tout les contenu du XML sans les balise )

Voilà les test de navigateur que j'ai éffectuer
ui mon prof est compréhensible, mais c'est un peut énervant, j'aime pas rester sur un probleme, à l'heure ou on nous parle d'un XML compatible avec la majorité des programme :s on à déjà du mal à le transformer dans tout les navigateur alors les autre programmes ....

encore merci de ton aide hibou ;)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

hibou57
Rédacteur MP
Superviseur :
- Langages Web
Modérateur :
- XML/XSL
- ADA
Avatar de hibou57
Inscrit : 13/02/2005
Messages : 563
Message
#152015
Posté le 17/04/08 à 08:08
Hola amigo o amiga

Spliffer dit :
à l'heure ou on nous parle d'un XML compatible avec la majorité des programme


Oui, mais il y a plusieurs niveau à XML. Il y a le niveau contenu du document (niveau physique, encodage des caractère, structure XML), et le niveau interprétation (sémantique, modèle de document, interprétation du contenu). Le niveau interprétation n'est pas compatible avec toutes les applications. Là, il s'agit d'un problème de DTD, qui ne concern pas XML.

Au niveau contenu du document et validation de la structure, la portabilité est assez bien garantie (sauf bug, ou problème de version XML - 1.0 vs 1.1). Je ne connais aucune application XML qui accèpte un document XML mal formé, ni aucune qui rejète un document XML bien formé.

Le support de la validation vis-à-vis d'un modèle de document est un autre sujet. Il existe d'ailleurs plusieurs solutions dans ce domaine : Schematron (celui qui ressemble le plus à mon idéal en la matière), XMLSchema, DTD, etc (il y en a d'autres), et même des systèmes spécfiques à certaines applications (c'est la solution pour laquelle j'ai opté personellement).

En ce qui concerne la validation d'un modèle de document, et donc l'interprétation, il n'y a de garantie que lorsque l'on utilise une application spécifique. Par exemple sitemap n'est généralement correctement interprété que par les applications que cible ce modèle de document (les robots d'exploration web), le support des DTD est généralement restreint dans les navigateurs, à ce qui est nécéssaire pour une interprétation de HTML/XHTML. Voir même parfois, les navigateurs n'accèdent même pas à la DTD, mais elle codée en dure dans le navigateur, et l'interprétation de la DTD est assez limité (et encore, dans le meilleur des cas).

Un navigateur web n'est une application XML, que dans une mesure limitée.

D'un point de vue pédagogique, tu peux l'interpréter comme une prise de conscience de la différence entre le théorie et la pratique. Au début ça peut sembler ennuyeux, mais on comprend vite pourquoi il est souvent préférable pour des raisons d'efficacité, que les applications supportant telle ou telle norme, n'en supporte en fait qu'une partie, qui est généralement choisie en vertu de l'usage prévu de l'application en question.

Si tu ne travaillait pas avec des navigateurs, mais avec des applications plus orientées XML et validation XML, alors il y a de bonnes chances que les testes que tu as tenté aurait pris une autre tournure : des applications plus ciblées auraient probablement mieux interprété ta DTD.

Voilà Smiley
__________________________
Lasidoré : Editeur XML orienté sémantique/Online XML editor - Alpha
Utiliser le Compilateur Ada GNAT - Fiabilité professionnelle, Ada we trust
Opera, Le navigateur - Léger, rapide, efficace, joli et source d'inspiration
DragonFly, Le debugger JavaScript, CSS, ... et HTML - Only on Opera
Exalead Search - Beceause Google is not a synonym of “ search engine ”

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM XML/XSL



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.