1
从XSD生成我的代理时,我收到了一个非常奇怪的行为。假设我遵循XSD(假定已经放置了模式标签)。我正在使用“添加服务引用”选项来生成代理。现在XSD中的类型名称在代理中不匹配
<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>
从上面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类型应该是腿。实际上,解析器是将子类型(主复合类型)与子类型连接起来的。
我不知道我在做什么错。任何建议都是非常可观的。
/RIZWAN