Bonjour,
J'ai une petite question concernant xml en client.

Est-il possible en client d'inclure un xml dans un autre?
Je vous fais un example:
j'ai 2 fichiers : toto.xml et tata.xml.

-----------------------
toto.xml:

<!DOCTYPE poem [
<!ENTITY ext1 SYSTEM "tata.xml">
]>
<poem>
<verse>I therefore, I alone first undertook</verse>
<verse>To wing the desolate Abyss, and spy</verse>
&ext1;
<verse>Better abode, and my afflicted Powers</verse>
<verse>To settle here on Earth or in mid-air</verse>
</poem>


-----------------------
tata.xml:

<verse>This new created World, whereof in Hell</verse>
<verse>Fame is not silent, here in hope to find</verse>


En client, et je dis bien en client, est-ce possible que toto.xml accede à tata.xml? Parce que j'ai fait des tests et dans firefox (ou safari), et le navigateur ne va pas chercher le contenu de tata.xml. il m'affiche :

<poem>
<verse>I therefore, I alone first undertook</verse>
<verse>To wing the desolate Abyss, and spy</verse>
<verse>Better abode, and my afflicted Powers</verse>
<verse>To settle here on Earth or in mid-air</verse>
</poem>


et basta...

C'est une des seules choses me bloquant pour faire mon site tout en (xml + xslt) + css...
En fait je pourrais faire la transformation en server, mais je perdrais ainsi tout l'intérêt de xml (en fait je perdrais le fait que un xml en client vas chercher une et une seule fois le fichier xslt (qui va chercher une et une seule fois le fichier css))
Merci de votre aide...
Et désolé pour les balises code...
Modifié par Tibastral2 (15 Dec 2005 - 14:23)
Administrateur
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Tibastral2 a écrit :
C'est une des seules choses me bloquant pour faire mon site tout en (xml + xslt) + css...
Ah c'est dommage de s'arrêter là alors.
Tibastral2 a écrit :
En fait je pourrais faire la transformation en server
C'est une très bonne idée. Sinon, tu es obligé de faire de nombreuses hypothèses sur les capacités du poste client (comme la résolution des entités, mais surtout la possibilité de réaliser une transformation XSL), et finalement peu de clients verront ton site web.
Tibastral2 a écrit :
mais je perdrais ainsi tout l'intérêt de xml (en fait je perdrais le fait que un xml en client vas chercher une et une seule fois le fichier xslt (qui va chercher une et une seule fois le fichier css))
Sincèrement je ne comprends pas l'argument. Si tes ressources sont convenablement factorisées pour le client, elles le seront aussi pour le serveur non ?
a écrit :

Sincèrement je ne comprends pas l'argument. Si tes ressources sont convenablement factorisées pour le client, elles le seront aussi pour le serveur non ?

Je ne crois pas que tu aies raison sur ce point. Je m'explique:
imagine que tu aies une partie statique de ton site (genre le menu) et que tu veuilles l'intégrer dans toutes les pages de ton site. tu as alors 3 solutions:
1) tu utilises les frames (plus d'actualité)
2) tu utilises php, mais vu que c'est en serveur, le client re-telecharge le menu à chaque fois qu'il change de page (comme il est regénéré)
3) tu fais de l'inclusion de fichiers (html dans du html ou xml dans du xml) et c'est ce que j'aimerai savoir faire...

Je ne dis pas que les technologies server doivent être abolies, je dis juste qu'il faut au maximum utiliser les ressources du client et réduire au maximum les bits échangés... et les appels php coutent cher à grande échelle. Je ne dis pas, pour une recherche dans une base de donnée, bien sûr que tu vas pas t'amuser à tout faire en client, mais pour beaucoup de choses, on pourrait se passer du serveur, ce qui réduirait considérablement ses accès (et donc améliorerait sa capacité et sa vitesse).

Enfin, c'est un point de vue bien sûr.
Smiley confused
Modifié par Tibastral2 (15 Dec 2005 - 18:53)
D'accord, je comprends mieux maintenant. L'argument vaut effectivement pour le menu (s'il est réellement constant), mais pas pour la CSS qui, XSLT ou pas, peut être incluse sous forme de fichier externe.

Même si l'idée est bonne, son coté pratique ne coule pas de source. En effet on ne peut pas dans le cas général exiger du client la même chose que du serveur. A titre d'exemple, la proportion de clients ne sachant pas exécuter une transformation XSL reste non négligeable (sauf dans le cas d'un intranet pour lequel tu aurais la maîtrise du poste client).

Pour toucher plus de client, limiter les traitements serveur et avoir des contenus XML, tu peux utiliser Ajax (plutôt que XSLT), mais là encore tu mets de coté les clients n'utilisant pas javascript.

De mon point de vue, la meilleure solution reste l'équivalent propre des frames à savoir l'élément <object>. Il répond à ton souhait d'une factorisation maximale tout en offrant la possibilité de travailler complètement en XML+XSLT+CSS (coté serveur).
Je vais y réfléchir alors Smiley smile , mais beaucoup de navigateurs supportent le xslt/xml (a part opera à ma connaissance).