2010-10-30 3 views
1

У меня есть файл XML, что-то вроде этого:Xml атрибуты и коллекции

<root> 
    <groups> 
     <group /> 
     <group /> 
    </groups> 
</root> 

Теперь я хочу, чтобы сделать класс что-то вроде этого:

[XmlRoot] 
public class Root 
{ 
    [XmlElement("groups")] 
    public Groups Groups { get; set; } 
} 

Проблема заключается в том, что атрибут XMLElement сделают все элементы коллекции под названием «группы», и в итоге у меня получится что-то вроде этого:

<root> 
    <groups /> 
    <groups /> 
</root> 

И если я lea Ве атрибут XmlElement выключен, он будет на самом деле распечатать файл с correcy узлами, но имя узла имеет captialized:

<root> 
    <Groups> 
     <group /> 
     <group /> 
    </Groups> 
</root> 

Это очень раздражает. Как я могу сказать это, чтобы сделать имя в нижнем регистре (или любом другом имени, которое я хочу) для xml-файла, но иметь его как случай Pascal в моем исходном коде, в то же время указывая, какие имена должны быть подэлементы?

Благодаря

ответ

3

Если я правильно понял, читать этот XML-файл, который нужно использовать XmlArrayAttribute и XmlArrayItemAttribute.

[XmlRoot] 
public class Root 
{ 
    [XmlArray("groups")] 
    [XmlArrayItem("group")] 
    public List<Group> Groups { get; set; } 
} 

[XmlType] 
public class Group 
{ 
} 
+0

Прекрасная работа! Большое спасибо! – Matt

Смежные вопросы