• Domingo 22 de Diciembre de 2024, 03:57

Autor Tema:  Generación Dinámica De Formulario Por Xsd  (Leído 1292 veces)

samame

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Generación Dinámica De Formulario Por Xsd
« en: Jueves 5 de Enero de 2006, 16:36 »
0
Hola a todos, se ma ha planteado un problemilla y os lo quiero comentar.
Tengo un xsd que valida una plantilla xml. Bien, dado ese xsd quiero generar de forma dinámica un formulario para petición y muestra datos. Una vez terminado de informar dicho formulario, generaré un xml que será validado por el xsd y dicho xml será guardado para otros accesos.
Haciendo las cosas "a pelo" no hay problema, es fácil:
private void Analiza (MyTreeNode treeNode)
{
switch (treeNode.GetTipoNodo ())
{
   case -1 :
   case ObjTreeXML.ID_GENERICO :
   case ObjTreeXML.ID_ELEMENTO :
   foreach (MyTreeNode tn in treeNode.Nodes)
   {
   switch (tn.GetTipoNodo ())
   {
   case -1 :
   case ObjTreeXML.ID_GENERICO :
   case ObjTreeXML.ID_ELEMENTO :
   Analiza (tn);
   break;
   }
   }
   break;
   case ObjTreeXML.ID_TEXTO :
   break;
   case ObjTreeXML.ID_CDATA :
   break;
}
}

siendo treenode una clase:
   class MyTreeNode: System.Windows.Forms.TreeNode
   {
      private int TipoNodo;
      private string IDNodo;
      private string ValorNodo;

      /// <summary>Constructor predeterminado (identico a treeNode)</summary>
      /// <param name="szTexto">Cadena que aparecera en el contenido del nodo</param>
      public MyTreeNode (string szTexto): base(szTexto)
      {
         SetTipoNodo (-1);
         SetIDNodo ("");
         SetValorNodo ("");
      }

      /// <summary>Constructor especializado (No usar)</summary>
      /// <param name="iTipoNodo">Tipo de nodo (segun constantes ID_XXXXX)</param>
      /// <param name="szTexto">Cadena que aparecera en el contenido del nodo</param>
      public MyTreeNode (int iTipoNodo, string szTexto): base(szTexto)
      {
         SetTipoNodo (iTipoNodo);
         SetIDNodo ("");
         SetValorNodo ("");
      }
      /// <summary>Constructor especializado</summary>
      /// <param name="iTipoNodo">Tipo de nodo (segun constantes ID_XXXXX)</param>
      /// <param name="szIDNodo">ID del nodo</param>
      /// <param name="szValorNono">Valor del nodo</param>
      /// <param name="szTexto">Cadena que aparecera en el contenido del nodo</param>
      public MyTreeNode (int iTipoNodo, string szIDNodo, string szValorNono, string szTexto): base(szTexto)
      {
         SetTipoNodo (iTipoNodo);
         SetIDNodo (szIDNodo);
         SetValorNodo (szValorNono);
      }

      /// <summary>Devuelve el tipo de nodo</summary>
      /// <returns>entero con el tipo de nodo (segun constantes ID_XXXXX)</returns>
      public int GetTipoNodo () { return TipoNodo; }
      /// <summary>Fija el tipo del nodo</summary>
      /// <param name="iTipoNodo">entero con el tipo de nodo (segun constantes ID_XXXXX)</param>
      public void SetTipoNodo (int iTipoNodo) { TipoNodo = iTipoNodo; }
      /// <summary>Devuelve el ID del nodo</summary>
      /// <returns>string con el ID del nodo</returns>
      public string GetIDNodo () { return IDNodo; }
      /// <summary>Fija el ID del nodo</summary>
      /// <param name="szIDNodo">string con el identificador del nodo</param>
      public void SetIDNodo (string szIDNodo) { IDNodo = szIDNodo; }

      /// <summary>Devuelve el valor del nodo</summary>
      /// <returns>string con el valor del nodo</returns>
      public string GetValorNodo () { return ValorNodo; }
      /// <summary>Fija el valor del nodo</summary>
      /// <param name="szValorNodo">string con el valor del nodo</param>
      public void SetValorNodo (string szValorNodo) { ValorNodo = szValorNodo; }
   } // fin de class MyTreeNode
Pero el rollo de hacerlo de modo dinámico me va un pelín grande, alguna sugenrencia?
Muchas gracias de antemano.