it-swarm.dev

Gerando arquivo XML usando o arquivo XSD

Como você gera um arquivo XML a partir de um arquivo XSD?

34
sachin kulkarni

Suponha que tenhamos o arquivo Test.xsd que se parece com isto:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MyClass">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Field1"
                    type="xs:string"/>
        <xs:element name="Field2"
                    type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
  1. Crie classes usando a ferramenta xsd:

    xsd.exe /classes Test.xsd
    

    Isso irá gerar o arquivo Test.cs.

  2. Adicione o arquivo Test.cs à sua solução.

  3. Crie uma instância de MyClass, definida no esquema XSD e XmlSerialize:

    using System.Xml.Serialization;
    // ...
    var data = new MyClass { Field1 = "test1", Field2 = "test2" };
    var serializer = new XmlSerializer(typeof(MyClass));
    using (var stream = new StreamWriter("C:\\test.xml"))
        serializer.Serialize(stream, data);
    

Resultado:

<?xml version="1.0" encoding="utf-8"?>
<MyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Field1>test1</Field1>
  <Field2>test2</Field2>
</MyClass>
91
Alex Aza

este é o caminho para o arquivo xsd.exe, certifique-se de ter instalado o SDK.

C:\Arquivos de Programas (x86)\Microsoft SDKs\Windows\v8.1A\bin\Ferramentas NETFX 4.5.1 (aqui está o xsd.exe (aplicativo))

também ver isso, se necessário. onde encontrar xsd.exe no visual studio 2013 no windows 8

0
gulraiz javaid

Para "Criar classes usando a ferramenta xsd: xsd.exe/classes Test.xsd", em primeiro lugar, venha para o Windows Inicie e escreva "Desenvolvedor ..". Depois disso, você verá o Prompt de Comando do Desenvolvedor para Vs2015 (sua versão). execute este comando no comando.

Em adição, se o seu arquivo xsd é grande, leva tempo para definir todos os elementos. Na minha situação eu estou tentando implementar a coluna de banco de dados em cada elemnen para obter informações para cada cliente da minha empresa. (var data = new MyClass {Field1 = "test1", campo2 = "test2"};)

0
Cengiz Akarsu