5

少し検索しましたが、プログラムで XML スキーマからデータを自動生成する方法を見つけることができません。次の XML スキーマがあるとします。

<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name ="Persons">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Person">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="FirstName" type="xs:string" />
            <xs:element name="LastName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element> 

VS 関数「Generate Sample XML」を使用して、これから XML を作成できます ここに画像の説明を入力
。これをプログラムで行う方法はありますか?

編集:指定する。すべてのオブジェクトを作成し、プログラムでデータを挿入したくありません。VSの「サンプルXMLの生成」と同じように、オブジェクトと属性を自動的に作成したいと思います。この理由は、xml サンプル生成について何もせずに XSD を変更したいからです。

4

2 に答える 2

10

いくつかの検索を行った後。xmlサンプルジェネレーターを実装したプロジェクトを見つけました。テストソリューションを作成し、クラスをインポートしました。次に、XmlGen.csファイルを削除して、独自のメインメソッドを作成しました。出力はルート要素に基づきます。

public static void Main(string[] args)
        {
            using (var stream = new MemoryStream(File.ReadAllBytes("schema.xsd")))
            {
                var schema = XmlSchema.Read(XmlReader.Create(stream ), null);
                var gen = new XmlSampleGenerator(schema, new XmlQualifiedName("rootElement"));
                gen.WriteXml(XmlWriter.Create(@"c:\temp\autogen.xml"));
                Console.WriteLine("Autogenerated file is here : c:\temp\autogen.xml");
            }            
        }
于 2013-01-25T10:08:18.747 に答える
-1

1行をデータテーブルに入れ、その後実行するための簡単な関数を書くことができますDataTable.WriteXml(string filePath)

そのようなもの:

xmlschema1 schema=new xmlschema1();
//put some test data in table
schema.Persons.AddPersonsRow(...some params);
//generate xml
schema.Persons.WriteXml(filePath);
于 2013-01-18T08:09:35.047 に答える