2012-04-25 8 views
1

XSDからプロキシを生成する際に非常に奇妙な動作が発生しました。 XSDに従っていると仮定しよう(既に配置されているスキーマタグを想定)。私はプロキシを生成するためにAdd Service Referenceオプションを使用しています。 XSD上からプロキシを生成するときにXSDの型名がプロキシで一致しません

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.saffr.com/schema/itinerary")] 
public partial class Segment : object, System.ComponentModel.INotifyPropertyChanged { 

    private SegmentLeg[] legsField; 

     /// <remarks/> 
    [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)] 
    [System.Xml.Serialization.XmlArrayItemAttribute("Leg", IsNullable=false)] 
    public SegmentLeg[] Legs { 
     get { 
      return this.legsField; 
     } 
     set { 
      this.legsField = value; 
      this.RaisePropertyChanged("Legs"); 
     } 
    } 

    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; 

    protected void RaisePropertyChanged(string propertyName) { 
     System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; 
     if ((propertyChanged != null)) { 
      propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

が今の問題は、私はその代わりに、それは脚のあるべきSegmentLegタイプで期待してい、ここにバラ次のように

<xs:complexType name="Segment"><xs:sequence><xs:element name="Legs"><xs:complexType><xs:sequence><xs:element maxOccurs="unbounded" name="Leg"><xs:complexType><xs:sequence><xs:element name="Ticket" type="xs:string" /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType> 

今、私は種類を取得しています。実際には、パーサーはSegment(主複合タイプ)を子タイプと連結しています。

私が間違っていることはわかりません。どんな提案も高い評価を受けるだろう。

/Rizwan

答えて

0

私はXsd.exeでは持つタイプ名を推測するために使用されるデフォルトのメカニズムを無効にできるようになるカスタマイズをできるようにする方法を知りません。

XSDで遊ぶことができると仮定すると、匿名の代わりに型/要素をグローバルにすることができます。そうすれば、期待どおりの結果が得られます。

関連する問題