Evet kullanarak t olarak bu kodu
XmlSerializer serializer = new XmlSerializer(typeof(YourClass));
deneyin olmalı XmlSerializer
List<T>
'u T
(ya da sizin durumunuzda Tag
) seri hale getirilebilecek şekilde serileştirecektir.
Move move = new Move { MoveName = "MyName" };
move.oTags.Add(new Tag { TagName = "Value1" });
move.oTags.Add(new Tag { TagName = "Value2" });
move.oTags.Add(new Tag { TagName = "Value3" });
StringBuilder output = new StringBuilder();
var writer = new StringWriter(output);
XmlSerializer serializer = new XmlSerializer(typeof(Move));
serializer.Serialize(writer, move);
Console.WriteLine(output.ToString());
Bu şekilde mevcut sınıf yapısı kullanılarak verir:
<?xml version="1.0" encoding="utf-16"?>
<Move xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<oTags>
<Tag>
<TagName>Value1</TagName>
</Tag>
<Tag>
<TagName>Value2</TagName>
</Tag>
<Tag>
<TagName>Value3</TagName>
</Tag>
</oTags>
<MoveName>MyName</MoveName>
</Move>
Ben mevcut XML şemasını eşleştirmek için bir yol bulursam ben göreceksiniz, ancak XmlAttributes nasıl uygulanacağını bakmak ve onunla kendin oyna.
DÜZENLEME: Aşağıdaki XmlAttributes kullanmak için sınıf bildirimi değiştirirseniz
, kendi örnekte olduğu gibi tam XML şeması elde edecek:
public class Move
{
[XmlElement(Order = 1)]
public string MoveName {get; set;}
[XmlElement(Order = 2, ElementName = "Tags")]
public List<Tag> oTags = new List<Tag>();
}
public class Tag
{
[XmlText]
public string TagName {get; set;}
}
Hangi tefrika üretecek zaman:
<?xml version="1.0" encoding="utf-16"?>
<Move xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MoveName>MyName</MoveName>
<Tags>Value1</Tags>
<Tags>Value2</Tags>
<Tags>Value3</Tags>
</Move>
Geçerli cevaplardan bağımsız olarak, _how_ seri hale getiriyor musunuz? Örneğin, 'XmlSerializer' kullanırsanız, çalışır. (istediğiniz belirli XML şeması çıktısını almak için bazı özel nitelikler veya yaratıcılık kullanmak zorunda kalabilirsiniz) –
XmlSerializer kullanıyorum –
Şema nasıl olur? Birçok etiketi nasıl ele aldığınızı biraz belirsiz görünüyor. adı1 Değeri Değer2 ... ValueN '? Ayrıca, 'Move' ve' Tag' sınıflarınızı değiştirerek esnek misiniz? –