[XSD.exe] Probleme de batch (je deviens fou...) [Résolu]

Signaler
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009
-
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009
-
Hello ! Voila j'essaie d'executer xsd.exe du SDK VS par ce batch :

@echo off
cd F:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\
xsd "F:\Documents and Settings\Notebook\Mes documents\Projet NewsML\togo.xml" /outputdir:F:\Documents and Settings\Notebook\Mes documents\Projet NewsML\

Mais probléme : ça ne marche pas du tout...

Y'aurait-il un probleme dans ce batch ?

10 réponses

Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

J'ai finalement reussi a generer du C# a partir d'un xsd en copiant le dit fichier xsd dans le dossier de xsd.exe. Cela permet de ne passer que le nom du fichier a convertir (sans le chemin) en parmetres.

Mais malheureusement le fichier xsd a convertir (specs NewsML) semble etre trop complexe pour xsd.exe... J'irai donc à la mano.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
je pense qu'il manque des " un peu partout...

@echo off
cd "F:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"
xsd "F:\Documents and Settings\Notebook\Mes documents\Projet NewsML\togo.xml" /outputdir:"F:\Documents and Settings\Notebook\Mes documents\Projet NewsML"

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

Trés bien merci ! Je retente le coup.
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

Voici le nouveau batch :

@echo off
cd "F:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"
xsd "F:\Documents and Settings\Notebook\Mes documents\Projet NewsML\togo.xml" /outputdir:"F:\Documents and Settings\Notebook\Mes documents\Projet NewsML"

Et malheureusement même probléme...aucun fichier xsd généré
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
bon... retire le @echo off... comme ça tu auras un message d'erreur ;)

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

Trés bien, le batch s'execute sans probléme. Youpi !

Voici le resultat

F:\Documents and Settings\Notebook\Mes documents\Visual Studio 2005\Projects\NewsML\NewsML\bin\Debug>cd "F:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"

F:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin>xsd "F:\Documents and Settings\Notebook\Mes documents\Projet NewsML\togo.xml" /outputdir:"F:\Documents and Settings\Notebook\Mes documents\Projet NewsML"
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

If you would like more help, please type "xsd /?".
 : le fichier togo.xsd n'a pu être créé.

J'en conclus qu'xsd "patine" lors de la génération de schema xsd à partir de mon document...Qu'en pensez-vous ?
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

Bon j'ai rééssayé avec un autre document XML, le probléme semble venir de mon code :

        /// <summary>
        /// Genere le fichier de commandes a executer pour la creation d'un fichier XSD. 
        /// </summary>
        public string generateBatFile()
        {
            if (File.Exists(Application.StartupPath + "\\genererXSD.bat")) File.Delete(Application.StartupPath + "\\genererXSD.bat");
            FileTools writeIt = new FileTools();

            //Creation des commandes pour la generation du schema XML (fichier XSD)
            string batFile;// = "@echo off\r\n";

            batFile = "cd " + """ + this._cheminXsdProcess.Remove(this._cheminXsdProcess.LastIndexOf("xsd.exe")) + ""\r\n";

            batFile += "xsd " + """ + this._fichierAConvertir + """ + " /outputdir:" + """ + this._mRepertoireDestination + """;

            
            writeIt.Ecrire(Application.StartupPath + "\\genererXSD.bat", batFile);
            
            
            if (File.Exists(Application.StartupPath + "\\genererXSD.bat"))
            {
                string output = this.BatchExec(Application.StartupPath + "\\genererXSD.bat");
                return output;
            }
            else return "Erreur interne.";

        }

        /// <summary>
        /// Lance l'execution d'un batch
        /// </summary>
        /// Chemin du fichier batch à executer

        /// <returns>Etat de l'execution du batch</returns>
        public string BatchExec(string BatchFilePath)
        {
            System.Diagnostics.ProcessStartInfo psi = new ProcessStartInfo(BatchFilePath);
            psi.RedirectStandardOutput = true;
            psi.UseShellExecute = false;

            System.Diagnostics.Process XsdGenerate;
            XsdGenerate = Process.Start(psi);

            System.IO.StreamReader Output = XsdGenerate.StandardOutput;
            XsdGenerate.WaitForExit();
            
            string output = Output.ReadToEnd();

            if (File.Exists(this._nomFichierAConvertir.Replace("xml", "xsd")))
                return "Fichier créé avec succés";
            else return output + " : le fichier " + this._nomFichierAConvertir.Replace("xml", "xsd") + " n'a pu être créé.";
         }
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

Quelqu'un aurait-il une idée de la raison pour laquelle je n'arrive pas à obtenir de schema xml

I'm deep into the shit...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
A quoi ressemble la classe qui ne fonctionne pas ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

et bien ce sont les seules fonctions que j'utilise et qui permmettent de creer le XSD...et le fichier bat généré est celui que j'ai precedemment posté...

J'avoue avoir du mal a cibler le probleme...