none
Formación de XML RRS feed

  • Pregunta

  • Hola amigos, pues la verdad no sé en que sección de foro preguntar esto, nunca he trabajado con archivos XML, y debo hacerlo sí o sí, pues bien, les cuento que tengo un schema, en el cual genero mi modelo C# con la herramienta wxsdl.exe, todo bien, creo una nueva instancia del modelo, lo lleno de información y lo serializo a un XML, el problema que al serializar debo trabajar con él, es decir, insertar nodos, modificarlos, reemplazar nodos, firmar ciertos nodos (con respecto a un certficiado digital, signature)., siento que no poseo todo el control sobre el XML para realizar todas esas operaciones, investigado encontré que puedo generar el XML con XMLWriter en el cual veo que poseo más control sobre éste, es decir, puedo realizar todas esas operaciones  ya que voy creando el XML nodo por nodo y nó a través de un modelo.

    ¿Que es mejor?, ¿Usar XMLWriter o serializar un modelo?, si serializo el model ¿Como trabajo después con él?, es un XML muy complejo ¿Qué me recomiendan ustedes?.

    Gracias. y nuevamente disculpa por haber puesto este tema en un foro incorrecto (MVC) cuando se trata de una duda màs de C# y XML.

    PD: La ventaja de serializar un modelo, es que después puedo deserializar un XML y trabajar más fácil desde la instancia del modelo.
    • Editado MAXDELPHI viernes, 20 de febrero de 2015 15:59
    viernes, 20 de febrero de 2015 15:56

Respuestas

  • Logré insertar el bloque con el namespace respectivo!, gracias a todos por sus respuestas, la palabra clave era "CreateNavigation()" en c#
    • Marcado como respuesta MAXDELPHI domingo, 22 de febrero de 2015 14:14
    domingo, 22 de febrero de 2015 14:14

Todas las respuestas

  • hola

    porque tienes que trabajar con los nodos del xml en lugar de trabajarlo en el objeto con la instancia del modelo

    digo tienes los datos en memoria puedes remover items cambiarlo, etc y luego persistes, de esta forma evitas trabjar con xml

    >>¿Que es mejor?, ¿Usar XMLWriter o serializar un modelo?,

    el modelo

    o sino linq to xml

    >>¿Como trabajo después con él?, es un XML muy complejo ¿Qué me recomiendan ustedes?.

    no entendi, despues de que ? el modelo lo trabjas antes, operas con el mismo y al final serializas y ya no tocas mas nada

    si quieres cambiar algo deserializas para obtener nuevamente la instancia del modelo, aplcias los cambios y vuelves a serializar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de febrero de 2015 16:52
  • Haber, lo que sucede es que el modelo del schema me entrega la estructura básica del XML a formar, luego de procesar el modelo se debe insertar en uno de los nodos otro trozo de XML.

    Estoy realizando el proceso de facturación electrónica SII, entonces genero el EnviarDTE con el modelo (shcema) y luego debo insertar el nodo CAF que pertenece a otro documento XML.

    viernes, 20 de febrero de 2015 17:34
  • ok

    entonces entiendo que no puedes trabajar todo con objetos y serializar justo antes de enviarlo, porque si podrias hacelro seria el mejor camino

    lo que recomendaria es que ves si te animas a usar linq xml

    LINQ to XML

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de febrero de 2015 20:10
  • Gracias, el verdadero problema que logré detectar es con los namespaces, el que me genera del schema al serializar lo hace con un namespace (xmlns="www.sii.cl/SIIDTE"), entonces al intentar append o insertar un bloque de otro XMLDocument me agrega al nodo un xmlns="" vacio, y llevo días intentando eliminar eso y no he podido, realmente estoy  muy nervioso con eso, ya que me ha traido muchos dolores de cabeza, no sé que hacer. Gracias.

    PD: he buscado de mil formas en google, pero no lo logro hacer :/

    • Editado MAXDELPHI sábado, 21 de febrero de 2015 19:19
    sábado, 21 de febrero de 2015 19:19
  • Logré insertar el bloque con el namespace respectivo!, gracias a todos por sus respuestas, la palabra clave era "CreateNavigation()" en c#
    • Marcado como respuesta MAXDELPHI domingo, 22 de febrero de 2015 14:14
    domingo, 22 de febrero de 2015 14:14