Usuário com melhor resposta
Criar um XML a partir de XSD

Pergunta
-
Boa tarde a todos,
Estou com uma pequena dificuldade em criar um arquivo Xml a partir de um arquivo Xsd
Estou tentando dessa forma mais não obtive o retorno esperado.
DataSet ds = new DataSet();
DataTable dt;
DataRow dr;
ds.ReadXmlSchema(@"C:\teste\EntregaConteinerNovo.xsd");
dt = ds.Tables[0];
dr = dt.NewRow();
// dr["entregasConteineres"] = "xmlns='http://www.pucomex.serpro.gov.br/cct'";
dr["identificacaoEntrega"] = "611504719";
dr["identificacaoPessoaJuridica"] = "07396865000169";
dr["codigoRA"] = "7911109";
dr["numeroConteiner"] = "00I5TKzi49";
dr["tara"] = "1500.252";
dr["lacre"] = "ABC129";
dr["pesoAferido"] = "1600.009";
dr["cnpj"] = "27657485000149";
dr["viaTransporte"] = "09";
dr["codigoRADestino"] = "7911109";
dr["prefixoTrem"] = "ABC1239";
dr["quantidadeVagoes"] = "9";
dr["avariasIdentificadas"] = "SEM AVARIAS9";
dr["divergenciasIdentificadas"] = "SEM DIVERGENCIAS9";
dr["observacoesGerais"] = "TESTE SOAP AUTOMATIZADO9";
dt.Rows.Add(dr);
ds.WriteXml(@"C:\teste\Golfers.xml");Segue o Xsd para analise
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <schema version="1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.pucomex.serpro.gov.br/cct" xmlns:tns="http://www.pucomex.serpro.gov.br/cct"> <include schemaLocation="../TipoComplexo.xsd" /> <include schemaLocation="../reuso/Recebedor.xsd" /> <element name="entregasConteineres"> <complexType> <sequence> <element name="entregaConteiner" type="tns:EntregaConteiner" minOccurs="1" maxOccurs="1" /> </sequence> </complexType> <unique name="identificacaoEntregaConteiner"> <selector xpath="tns:entregaConteiner" /> <field xpath="tns:identificacaoEntrega" /> </unique> </element> <complexType name="EntregaConteiner"> <sequence> <element name="identificacaoEntrega" type="tns:StringBasica50" minOccurs="1" maxOccurs="1" /> <element name="identificacaoPessoaJuridica" type="tns:CNPJ" minOccurs="1" maxOccurs="1" /> <element name="local" type="tns:TLocal" minOccurs="1" maxOccurs="1" /> <element name="conteineres" minOccurs="1" maxOccurs="1" > <complexType> <sequence> <element name="conteiner" type="tns:ConteinerExtend" minOccurs="1" maxOccurs="50" /> </sequence> </complexType> <unique name="duplicidadeConteinerEntrega"> <selector xpath="tns:conteiner"/> <field xpath="tns:numeroConteiner"/> </unique> </element> <element ref="tns:recebedor" minOccurs="1" maxOccurs="1"/> <element name="avariasIdentificadas" type="tns:StringBasica250" minOccurs="0" maxOccurs="1"/> <element name="divergenciasIdentificadas" type="tns:StringBasica250" minOccurs="0" maxOccurs="1" /> <element name="observacoesGerais" type="tns:StringBasica250" minOccurs="0" maxOccurs="1" /> </sequence> </complexType> </schema>
O erro apresentado diz que o tipo de dado não é declaro, alterei os tipos de dados mo Xsd e não é possível encontrar a tabela.
Desde já muito obrigado.
Respostas
-
O problema é que voce tem os includes TipoComplexo.xsd e Recebedor.xsd e eu creio que metodo ReadXmlSchema nao consiga ler XSDs externos. Este metodo é especifico para o XSD de um DataSet da classe system.data. É um XSD bem particular e nao generico como o seu.
Veja o link abaixo:
https://stackoverflow.com/questions/10128573/using-xsds-with-includes
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 13:57
- Não Marcado como Resposta Marcio Camargo quarta-feira, 31 de janeiro de 2018 16:34
- Marcado como Resposta Marcio Camargo terça-feira, 13 de março de 2018 18:11
Todas as Respostas
-
O problema é que voce tem os includes TipoComplexo.xsd e Recebedor.xsd e eu creio que metodo ReadXmlSchema nao consiga ler XSDs externos. Este metodo é especifico para o XSD de um DataSet da classe system.data. É um XSD bem particular e nao generico como o seu.
Veja o link abaixo:
https://stackoverflow.com/questions/10128573/using-xsds-with-includes
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 13:57
- Não Marcado como Resposta Marcio Camargo quarta-feira, 31 de janeiro de 2018 16:34
- Marcado como Resposta Marcio Camargo terça-feira, 13 de março de 2018 18:11
-
William,
Então é bem peculiar mesmo, consegui resolver o problema das includes, tinha passado despercebido e já coloquei no diretório.
Rodei novamente mais é o problema do nó para resolver, está apresentando o seguinte erro
A coluna 'identificacaoEntrega' não pertence à tabela entregasConteineres.
Mais obrigado pelo retorno.