none
Gerando XML através de um DataSet criado sobre um XSD. RRS feed

  • Pergunta

  • Olá amigos, Estou com um problema aqui no meu projeto e gostaria de saber se alguem pode me ajudar. Acontece o seguinte, utilizando o XSD.EXE do SDK do VS2010 eu criei um DataSet com base em um schema (XSD). O arquivo gerado pelo executavel foi uma classe do mesmo nome do XSD só que com extenção cs.

    O comando executado foi: C:\XSD\xsd.exe InformacoesCadastrais1.0.xsd -d -l:c# -n:NamespaceTeste

    Importei essa classe no meu projeto para utiliza-la, notei que devido ao schema, a classe gerada continha varios DataTables (que no meu ponto de vista representa cada elemento do XML). Para gerar o XML completo, seria necessário juntar informações de 3 DataTables contidos no DataSet e assinar o xml. No momento eu não estou conseguindo juntar a informação dos 3 dataTables.

    RetornoInformacoesSincronizacao.docSPEDFiscalDataTable doc = new RetornoInformacoesSincronizacao.docSPEDFiscalDataTable();

    RetornoInformacoesSincronizacao.docSPEDFiscalRow linhaDoc = doc.NewdocSPEDFiscalRow();

    RetornoInformacoesSincronizacao.informacoesCadastraisDataTable teste = new RetornoInformacoesSincronizacao.informacoesCadastraisDataTable();

    RetornoInformacoesSincronizacao.informacoesCadastraisRow linha = teste.NewinformacoesCadastraisRow();
    linha.dataHora = DateTime.Now;
    linha.id = "spedFiscalDoc";
    linha.versao = "2.0";
    linha.docSPEDFiscal_Id = linhaDoc.docSPEDFiscal_Id;
    linha.docSPEDFiscalRow = linhaDoc;

    RetornoInformacoesSincronizacao.contribuinteIncluirDataTable cdt = new RetornoInformacoesSincronizacao.contribuinteIncluirDataTable();

    cdt.AddcontribuinteIncluirRow("47508411130602", "714099678119", "A", DateTime.Parse("2006-11-30"), linha);
    cdt.AcceptChanges();
    cdt.WriteXml
    (@"C:\XSD\xmlGerado.xml");

    Como da pra perceber eu chamo o WriteXml do ultimo dataTable. Qlq sugestão é bem vinda! Obrigado!

    terça-feira, 5 de abril de 2011 17:42

Todas as Respostas

  • Para juntar as informações dos três dataTable você deve fazer um merge:

    http://msdn.microsoft.com/pt-br/library/system.data.datatable.merge.aspx#Y310

    http://www.macoratti.net/adn2_nv1.htm

    sábado, 3 de setembro de 2011 15:51