使用C#.net 4中多个XSD文件中定义的复杂类型从XSD创建数据表
我有一堆来自 我需要做两件事:使用C#.net 4中多个XSD文件中定义的复杂类型从XSD创建数据表,c#,.net,xsd,C#,.net,Xsd,我有一堆来自 我需要做两件事: 为每种类型创建表,我的第一个表用于Contact.xsd中的Contact 当填充表时,我需要将XML从表中取出,以便它可以作为REST请求发送 我无法通过第1项:( 我在.NETC#项目中将所有这些XSD标记为嵌入式资源 然后,我使用反射来使用DataSet.ReadXmlSchema(ContactXsdStream)加载XSD,但是这个XSD引用了BaseTypes.XSD中指定的类型,它抛出了一个错误“未定义的complexType'DataContrac
Si当您的Xsd包含其他Xsd文件时,这些文件必须存在于磁盘上的正确位置
即使从资源中获取主xsd并将其作为流或简单字符串传递给ReadXmlSchema,包含的架构也必须作为文件存在于相对于当前工作目录的指定位置。也有同样的问题-我不相信无法将包含其他架构文件的xml架构加载到datasetThanks用于输入。我在托管服务器上,因此在部署中只能有一个DLL,但是我可以将它们作为程序集中的嵌入资源访问。最后,我使用XSD.exe从XML创建了一个XSD,然后从XSD创建了一个类。
var assembly = Assembly.GetExecutingAssembly();
var dataset = new DataSet();
var manifestResourceStream = assembly.GetManifestResourceStream(schemaName);
if (manifestResourceStream == null)
throw new FileNotFoundException(string.Format("Unable to find schema resource {0}", schemaName));
using (var textStreamReader = new StreamReader(manifestResourceStream))
{
dataset.ReadXmlSchema(textStreamReader);
textStreamReader.Close();
}
return dataset;