是否有一个易于导入的XML文件,其中我有一个XSD,可以使用C#或SQL将其导入SQL数据库?
我做了一些尝试,首先我使用是否有一个易于导入的XML文件,其中我有一个XSD,可以使用C#或SQL将其导入SQL数据库?,c#,sql-server,xml,xsd,C#,Sql Server,Xml,Xsd,我做了一些尝试,首先我使用xsd.exe生成了类,并编写了3行代码将xml导入C#中的内存。然而,XML非常复杂,并且有相当多的不同类型 然后,我使用xsd2db创建了一个与.xsd定义匹配的数据库 我正在寻找一种将XML导入数据库的简单方法,可以直接从对象中使用实体框架或类似工具,也可以通过某种XML导入 我尝试使用SQL的导入数据功能(可能可以自动实现),但它不支持XML,只支持.CSV或.TXT 如果您能为我指出正确的方向,我将不胜感激,即使您没有直接的答案。有不同的方法来完成将数据从XM
xsd.exe
生成了类,并编写了3行代码将xml导入C#中的内存。然而,XML非常复杂,并且有相当多的不同类型
然后,我使用xsd2db创建了一个与.xsd定义匹配的数据库
我正在寻找一种将XML导入数据库的简单方法,可以直接从对象中使用实体框架或类似工具,也可以通过某种XML导入
我尝试使用SQL的导入数据功能(可能可以自动实现),但它不支持XML,只支持.CSV或.TXT
如果您能为我指出正确的方向,我将不胜感激,即使您没有直接的答案。有不同的方法来完成将数据从XML文件导入SQL Server表的任务 使用OPENROWSET函数将XML数据从XML文件导入SQL Server表 使用OPENXML函数解析XML数据
没有“简单的方法”——这在很大程度上取决于XSD和XML的外观 问题是,给定一个复杂的XML结构,不一定有一组明显的对应SQL表与之匹配:关系可能是隐藏的或不明显的,数据类型不完全匹配等等。因此,自动工具可能(也将)经常失败
恐怕最好的方法是查看那些XSD/XML,创建目标数据库结构并手动传输代码。我一直使用XmlReader和EntityFramework CodeFirst 简单地创建用于从xml反序列化的类(使用或不使用xsd),然后使用xml属性和EF属性对它们进行修饰。 就像这样:
public class School
{
[XmlAttribute] //XML Serializer attribute
[MaxLength(30)] // CodeFirst Data Annotations
public string Name { get; set;}
[XmlArray]
public List<string> Students { get; set; }
}
公立学校
{
[XmlAttribute]//XML序列化程序属性
[MaxLength(30)]//CodeFirst数据注释
公共字符串名称{get;set;}
[XmlArray]
公共列表学生{get;set;}
}
然而,一开始需要花费一些时间,因为您需要适当地修饰类以匹配SQL Server中的XML和表。这不是SQLXMLBulkload应该做的吗?很可能,我只是一名c#开发人员,一直使用最简单意义上的SQL,我没有导入数据的经验。