将数据插入生成的类的元素中

时间:2014-02-18 08:51:09

标签: c# xml xsd

我已经通过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”设置为“价值”?

1 个答案:

答案 0 :(得分:0)

你需要一个具有[XmlText]属性的新属性(属性的名称无关紧要。自从我处理xsd语义以来已经很长时间了,所以我不确定为什么它没有为你生成。添加它的最好方法是在一个单独的文件中(由于这个原因,生成的类是部分的)。