次のXMLを記述したいと思います。
<Fields>
<Field name="john">lorem</Field>
<Field name="john">lorem</Field>
<Field name="john">lorem</Field>
</Fields>
この例に基づいて、次のXSDを作成しました。
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Fields" type="FieldsType" />
<xsd:complexType name="FieldsType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Field" type="FieldType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldType">
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:schema>
xsd.exe(VSコマンドプロンプト)を使用してクラスを生成しました。
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlRootAttribute("Fields", Namespace="", IsNullable=false)]
public partial class FieldsType {
private FieldType[] fieldField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Field")]
public FieldType[] Field {
get {
return this.fieldField;
}
set {
this.fieldField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class FieldType {
private string nameField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name {
get {
return this.nameField;
}
set {
this.nameField = value;
}
}
}
これで、属性「name」を設定できるようになりました。しかし、フィールド要素間にメインテキスト値を設定するにはどうすればよいですか?例:[SET THIS TEXT]
var example = new FieldType();
example.name = "attribute value";
//how to set the element value?