Editions HTML

cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004 - 6 oct. 2004 à 14:29
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004 - 8 oct. 2004 à 10:09
Salut à vous,

Je dois réaliser des éditions sur un projet en c#.
Ces éditions doivent être en HTML.
D'après ce que j'ai pu entendre, il faudrait faire un XML qui contient les données, un XSD pour le schéma de données et un XSL pour le style de présentation.

Quelqu'un pourrait-il me diriger car je n'y connais pas grand chose à tout ce qui est XML, XSD, XSL ???

10 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
7 oct. 2004 à 07:35
Hello,
Pourrais-tu être un peu plus explicite sur ton problème ?
Est-ce que tu doit éditer ou créer des fichier html, d'où viennent les données de ces fichiers, ...
Amicalement, SharpMao
0
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
7 oct. 2004 à 08:48
En fait, les données viennent d'une base SQLServer, elles sont affichées normalement à l'écran. Le but est de faire des éditions sur papier après avoir eu l'aperçu de cette impression en HTML. On m'a dit qu'il fallait passer par le XML, XSD, XSL. D'après ce que j'ai pu comprendre :
- XML contiendra les données
- XSD le schéma de données (normalement généré à partir du XML
- XSL la présentation des données qui sera à inclure dans le XML.

1° Comment construire un fichier XML à partir de données venant d'une base ?
2° Comment construire le fichier XSL de manière simple ?
3° Comment afficher le fichier XML dans une page HTML ?

Tout cela en C# et ASP .net...
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
7 oct. 2004 à 10:25
Hello,
A mon avis, la solution la plus simple est la suivante :
Créer une DataSet à l'aide de VS. Tu peut y mettre plusieurs Tables, vues, ou autres. Ceci a deux avantages : tout d'abord, le DataSet créé par VS est en fait un schéma xsd, deuxièmement, tu peux remplir le DataSet facilement créer un XML de tes données en utilisant
DataAdaptor.Fill(myDataSet);
myDataSet.GetXML(); // ou myDataSet.GetXML("filename.xml"); 

Pour le XSL, il existe de bons outils payants (XMLSpy), et d'autres non payant, p.ex. CookTop. Une fois ce XSL créé, il ne reste plus qu'à faire la transformation :
System.Xml.Xsl.XslTransform tr = new System.Xml.Xsl.XslTransform();
tr.Load("stylesheet.xsl");
tr.Transform(/*chercher les paramètres*/);

et à rediriger la sortie vers Response.OutputStream

Sauf erreurs, ça devrait fonctionner.
Amicalement, SharpMao
0
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
7 oct. 2004 à 10:27
Merci, je vais essayer cette méthode...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
7 oct. 2004 à 11:07
Avec le code suivant, il me crée bien le fichier XML :
OleDbDataAdapter da new OleDbDataAdapter("SELECT * FROM FAMILLE where FAM_Code '01'",conn);
DataSet ds = new DataSet("FAMILLES");
da.Fill(ds, "familles");
ds.WriteXmlSchema(@"c:\Familles.xml");

Comment fais tu pour plusieurs tables comme un maitre/détail (Famille / Sous-Famille) dans un même XML ?
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
7 oct. 2004 à 14:54
Attention, avec ce que tu as fait, il crée un schéma, alors que celui-ci devrait déjà être créé. Voici la méthode la plus simple pour créer un DataSet avec VS :
- Ajoute un DataSet à ta solution, comme tu ajouterais une classe, mais en choisissant un DataSet. (*.xsd, donc un schéma xml !!)
- Dans la barre d'outils, tu as un explorateur de serveurs, trouve la base de donées que tu veux utiliser, et fait des Drag-And-Drop des tables ou de ce que tu veux dans le DataSet.

Pour le remplir :
KennyDataSet kds = new KennyDataSet();
da.Fill(kds.Tables["TableName"]);
da2.Fill(kds.Tables["TableName2"]);

De cette manière, tu peux mettre plusieurs tables dans le même DataSet. Tu peux le faire sans créer le schéma à l'avance, mais à mon avis, tu gagnes à le créer une fois pour toute.

Amicalement, SharpMao
0
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
7 oct. 2004 à 16:45
En effet, c'est interessant aussi.

Maintenant, il reste 2 choses à faire.

- faire un fichier XSL pour l'inclure au XML, je pense que je vais faire cela à la mano si les éditions ne sont pas trop compliqué. Apparement, il y a du HTML donc, ce ne devrais pas être trop compliqué.

- faire apparaitre l'édition dans une page HTML et l'imprimer.

Connais-tu une méthode pour afficher dans une page HTML, le fichier XML ? Et pour l'imprimer sans passer par le menu Fichier\Imprimer ?
0
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
7 oct. 2004 à 16:47
En effet, c'est interessant aussi.

Maintenant, il reste 2 choses à faire.

- faire un fichier XSL pour l'inclure au XML, je pense que je vais faire cela à la mano si les éditions ne sont pas trop compliqué. Apparement, il y a du HTML donc, ce ne devrais pas être trop compliqué.

- faire apparaitre l'édition dans une page HTML et l'imprimer.

Connais-tu une méthode pour afficher le fichier XML dans une page HTML avec un bouton 'IMPRIMER' ? Et la méthode pour imprimer ce fichier.
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
8 oct. 2004 à 07:51
Hello,
Est-ce que tu veux afficher un fichier xml ou le fichier traité par xsl? Si c'est ce dernier cas qui t'intéresse, tu peux faire comme ça :
- Mets sur une page aspx un composant XML (presque tout en bas dans la barre d'outil de VS)
- Indique-lui le chemin du fichier XSL (TransformSource)
- Comme ton fichier XML est généré en RunTime, dans le Page_Load, récupère tes données depuis la base donne au composant XML le résultat (utilise la propriété Document ou DocumentContent).
A ce moment là, le composant XML sera remplacé chez le client par le résultat de la transformation XSL.

Pour l'impresion, je ne sais pas, mais quelqu'un d'autre pourra peut-être te renseigner.

Amicalement, SharpMao
0
cs_Kenny Messages postés 27 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 16 novembre 2004
8 oct. 2004 à 10:09
Tout fonctionne maintenant sauf le style à revoir et l'impression. Mais bon, c'est pas trop important pour l'instant car apparemment, le client va utiliser le menu Fichier\Imprimer... Dans le cas où il change d'avis et qu'il veut garder un bouton Imprimer, je simulerais le menu.

Merci beaucoup SharpMao, ton aide m'a été très utiles.
0
Rejoignez-nous