我正在用xsd.exe csxsd.exe和svcutil追逐我的尾巴。我必须遗漏一些基本的东西。我只想要具有基本属性和Lists或[]的基本对象。我错过了什么?
我得到的xsd过于复杂,对象不包含列表或数组。
谢谢,
答案 0 :(得分:2)
您需要一个.xsd(架构文件)才能与xsd.exe /classes
一起使用。如果您没有.xsd文件,则可以使用工具like this生成一个.xsd文件。大多数工具都假设数据类型为字符串,如果您不喜欢,可以调整生成的模式。
答案 1 :(得分:0)
为什么要构建一个与您必须处理的XML匹配的类,并使用XML序列化属性对其进行标记以控制它的序列化。它[可以]如此简单:
using System.IO;
using System.Xml.Serialization;
namespace AnXmlSample
{
class Program
{
static void Main( string[] args )
{
string xml = @"<document id='3'>
<name>
document name
</name>
<foo widget-id='12' >
The quick brown fox jumped over the lazy dog
</foo>
</document>" ;
StringReader sr = new StringReader(xml) ;
XmlSerializer serializer = new XmlSerializer(typeof(MyDataFromXml)) ;
MyDataFromXml instance = (MyDataFromXml) serializer.Deserialize( sr ) ;
return ;
}
}
[XmlRoot("document")]
public class MyDataFromXml
{
[XmlAttribute("id")]
public int Id { get ; set ; }
[XmlElement("name")]
public string Name { get ; set ; }
[XmlElement("foo")]
public Widget Foo { get ; set ; }
}
public class Widget
{
[XmlAttribute("widget-id")]
public int id { get ; set ; }
[XmlText]
public string Content { get ; set ; }
}
}