はいを、試してみてくださいする必要があります彼XmlSerializer
List<T>
T
(またはあなたのケースではTag
)がシリアライズ可能である限り、それはシリアル化されます。
これは、としてあなたの現在のクラス構造を使用して出力します
<?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>
私はあなたの現在のXMLスキーマを一致させる方法を見つけることができるかどうか私はわかりますが、あなたはXmlAttributesを適用する方法を見上げるとすることができますあなた自身でそれを楽しんでください。
EDIT:
次XMLATTRIBUTESを使用するようにクラス宣言を変更した場合、あなたはあなたの例のように、正確なXMLスキーマを達成します:シリアル化されたが生成されます
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;}
}
:
<?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>
現在の回答に関係なく、あなたはそれをシリアル化していますか?たとえば、 'XmlSerializer'を使用すると、それは動作します。 (特殊な属性や創造性を使用して、特定のXMLスキーマの出力を得る必要があるかもしれませんが) –
XmlSerializerを使用しています –
どのようにスキーマを使いますか?多くのタグをどのように扱うかは少し曖昧です。 'の名前 値1 値2 ...値N '?また、 'Move'クラスと' Tag'クラスを柔軟に変更できますか? –