web-dev-qa-db-fra.com

Générer un fichier XML en utilisant un fichier XSD

Comment générer un fichier XML à partir d'un fichier XSD?

34
sachin kulkarni

Supposons que nous ayons un fichier Test.xsd qui ressemble à ceci:

<?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. Créez des classes en utilisant l'outil xsd:

    xsd.exe /classes Test.xsd
    

    Cela générera un fichier Test.cs.

  2. Ajoutez le fichier Test.cs à votre solution.

  3. Créez une instance de MyClass, définie dans le schéma XSD et 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);
    

Résultat:

<?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

il s’agit du chemin du fichier xsd.exe, assurez-vous d’avoir installé le SDK.

C:\Program Files (x86)\SDK Microsoft\Outils\Windows\v8.1A\bin\NETFX 4.5.1 (voici le xsd.exe (application))

voir aussi si nécessaire . Où trouver xsd.exe dans Visual Studio 2013 sous Windows 8

0
gulraiz javaid

Pour "Créer des classes à l'aide de l'outil xsd: xsd.exe/classes Test.xsd", ouvrez d'abord Windows, puis écrivez "Développeur ..", puis l'invite de commande de développeur pour Vs2015 (votre version). exécutez cette commande dans la commande.

De plus, si votre fichier xsd est volumineux, il faut du temps pour définir tous les éléments. Dans ma situation, j'essaie de mettre en œuvre une colonne de base de données dans chaque élément afin d'obtenir des informations pour chaque client de mon entreprise. (var data = new MyClass {Field1 = "test1", Field2 = "test2"};)

0
Cengiz Akarsu