2012-12-13 210 views
4

我的目標是將c#類序列化爲具有屬性順序的XML,如類中的屬性順序。對於這個purporse,我需要在我的類的其他屬性之前添加System.Xml.Serialization.XmlElementAttribute(Order = int)。xsd.exe屬性順序

[System.Xml.Serialization.XmlElementAttribute("F4INVAL", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] 
    public F4invalType[] F4INVAL { 
     get { 
      return this.f4INVALField; 
     } 
     set { 
      this.f4INVALField = value; 
     } 
    } 

我有XSD文件(f4form_2012_3.xsd)。

使用XSD.EXE(http://msdn.microsoft.com/en-en/library/x6c1kb0s.aspx)我執行這個小腳本生成一組C#類:

xsd f4form_2012_3.xsd /order /classes 

我需要獲取具有C#屬性[System.Xml.Serialization.XmlElementAttribute(Order=1)]的類屬性。我也這樣做,但第一類的屬性有這個屬性。

第二個和以下的類沒有它。

Plase檢查f4form_2012_3.cs

是什麼意思?

+0

你的問題很混亂。你的目標是什麼?你需要從XML的類或類生成XML? –

+0

@AlexFilipovici他想從XSD生成類,因此他可以將XML實例映射到CLR對象。 – ken2k

+0

我的意思是序列化過程:XSD - >生成CLR C#類 - >將對象序列化爲XML。 XML屬性的順序必須等於C#類屬性的順序。 –

回答

1

這是因爲您的F4ReportType複雜類型是您的XSD中使用元素的xsd:sequence的唯一類型。您不能訂購從XML屬性生成的屬性,因爲屬性不是以XML格式排序的。也許你想用XML元素來代替。

+0

你是對的,例如'F4inf1Type'類也具有訂單屬性。 –

+0

我的意思是序列化過程:XSD - >生成CLR C#類 - >將對象序列化爲XML。 XML屬性的順序必須等於C#類屬性的順序。 - 彼得·巴爾巴亞加18分鐘前 –