예, 사용 t에서이 코드
XmlSerializer serializer = new XmlSerializer(typeof(YourClass));
을 시도해야한다 그는 XmlSerializer
T
(또는 귀하의 경우 Tag
)이 직렬화 될 수있는 한 List<T>
을 직렬화합니다.
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());
이 같이 현재 클래스 구조를 사용하여 출력합니다
<?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을 적용하는 방법을 찾아 볼 수 있습니다 직접 놀아 라.
편집 : 다음 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>
현재 응답에 관계없이 _how_ 직렬화하고 있습니까? 예를 들어,'XmlSerializer'를 사용하면 작동 할 것입니다. (특정 XML 스키마 출력을 얻으려면 특수한 속성이나 독창성을 사용해야 할 수도 있지만) –
XmlSerializer를 사용하고 있습니다 –
어떻게 스키마를 원합니까? 많은 태그를 다루는 방법이 다소 모호한 것 같습니다. ' 이름 값 1 값 2 ...이어야합니다. 값 N '? 또한,'Move' 클래스와'Tag' 클래스를 변경하면 유연합니까? –