サードパーティのxsd定義を実装するいくつかのクラスを定義する必要があります。 xsdは非常に複雑で多くの制限がありますので、xsd.exeとxsd2codeを使用して少し時間を節約しようとしました。しかし生成されたクラスはminoccurs = 0属性を考慮せず、最悪の場合、文字列として定義されたいくつかの型をenum(int)にマップします。xsdからシリアライズ可能なcsクラスを生成していますか?
<xsd:element name="CodiceFornitura">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="IMP00"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public enum CodiceFornitura
{
/// <remarks/>
IMP00,
}
他の問題は、いくつかの要素migthまたはシリアライズされないことがあります:たとえば、私は、文書の種類(発言権を送信していた場合OriginalInvoiceUpdateたとえば、以下のタイプが同じ名前を持つ列挙としてマッピングされています)、私はxmlの部分を追加する必要があります、それはxmlの部分を省略する必要があります。
xsd2codeには、GenerateShouldSerializeとGeneratePropertyNameSpecifiedの2つのプロパティがあります。最初のものをtrueに設定しても効果はありません。2番目を「すべて」に設定すると、minoccurs = 0のものだけでなく、すべてのクラスメンバーのプロパティが生成されます。
質問があります: 1.私は私のニーズを反映するために生成されたソースを変更する必要がありますか?xsd.exeまたはxsd2codeにはいくつかの設定がありますか? 2. xmlSerializerがenumsのxmlに書き込むもの:列挙値( "1")または値の文字列表現(IMP00)? 3. xsdからソースをビルドするための他のツールがありますか?
は
を使用しています。 –