我已经通过xsd.exe工具生成了一个类。
以下是架构的相关部分:
<xs:element minOccurs="0" name="propertyLine">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value">
<xs:complexType mixed="true">
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
在xsd生成类之后,我得到类型为“propertyLine”的数组:
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class MainSubMessageInfoValue {
private string nameField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name {
get {
return this.nameField;
}
set {
this.nameField = value;
}
}
}
所以我将数据设置为name属性:
propertyLine[0].name = "data";
但现在我想将数据设置为 "value"
元素(具有“name”属性的元素)。
我想要实现的目标是:
<value name="data">Bla Bla Bla</value>
我如何通过代码执行此操作?如何将“Bla Bla Bla”设置为“价值”?
答案 0 :(得分:0)
你需要一个具有[XmlText]
属性的新属性(属性的名称无关紧要。自从我处理xsd语义以来已经很长时间了,所以我不确定为什么它没有为你生成。添加它的最好方法是在一个单独的文件中(由于这个原因,生成的类是部分的)。