如何在XML中定义一个可以重复的属性......?

时间:2014-02-24 09:12:47

标签: c# xml

我脑子里有一个lapsus,我不知道如何在我的类中定义一个XML属性...在我的XML-Element中可以出现零次,一次或多次......

这就是我的XML-Element的样子:

*一个子元素

<MainElement Phase="" Stage="" Element-Name="" Element-Version="" 
       SubElement-Name="" />

*两个子元素

<MainElement Phase="" Stage="" Element-Name="" Element-Version="" 
      SubElement-Name="subElement.1" 
      SubElement-Name="subElement.2"/>

这是我的班级:

public class MainElement
{
   [XmlAttribute(AttributeName = "Phase")]
   public string ElementPhase {get; set; }

   [XmlAttribute(AttributeName = "Stage")]
   public string ELementStage {get; set; }

   etc...

   // my SubElement structure...

}

如何看,属性“SubElement-Name”可以显示为cero,一次或“x”次,但我的内部没有其他XML元素..

提前感谢你!

1 个答案:

答案 0 :(得分:3)

XML不允许这样做,因此,XmlReader类也不允许它(并且所有其他Xml技术都是基于XmlReader类构建的)。因此,如果你真的想这样做,你必须完全靠自己支持它。

XML确实支持列表,即

<MainElement Phase="" Stage="" Element-Name="" Element-Version="" SubElement-Name="subElement.1 subElement.2"/>

但是,我不知道如何为此设置XmlSerializer的属性。

编辑:如果XmlSerializer支持它,xsd.exe可能知道如何。因此,最好的选择可能是创建一个Xml Schema(无论如何这是一个好主意)并通过xsd.exe为它创建类