嘿伙计们,我必须将大型 xml 数据文件(其中一些大小为 500 mb)导入 sql 2008。我计划使用 sqlxml 批量加载。
但是我只对 xml 数据文件的某些元素感兴趣,而不是每个元素。我的问题是:在模式文件中,我是否需要提及 xml 数据文件中存在的每个元素,或者仅提及我有兴趣加载的那些元素
第二个问题是:由于我对 xsd / xdr 知之甚少,是否有任何工具可以自动为 sqlxml 批量加载生成这些模式文件
提前致谢
嘿伙计们,我必须将大型 xml 数据文件(其中一些大小为 500 mb)导入 sql 2008。我计划使用 sqlxml 批量加载。
但是我只对 xml 数据文件的某些元素感兴趣,而不是每个元素。我的问题是:在模式文件中,我是否需要提及 xml 数据文件中存在的每个元素,或者仅提及我有兴趣加载的那些元素
第二个问题是:由于我对 xsd / xdr 知之甚少,是否有任何工具可以自动为 sqlxml 批量加载生成这些模式文件
提前致谢
我在寻找其他东西时遇到了这个老问题,但无论如何我都会回答它,以供将来参考。
要忽略某些元素,您可以使用:
sql:mapped="false"
完全忽略一个节点,包括它的子节点(参见sql:mapped (SQLXML 4.0))sql:is-constant="true"
忽略容器节点,但继续处理子节点(请参阅使用 sql:is-constant (SQLXML 4.0) 创建常量元素)sql:overflow-field="OverflowColumnName"
将您未映射到额外列的所有内容写入(请参阅sql:overflow-field (SQLXML 4.0))为了自动生成模式文件,您可以使用它xsd.exe
来生成模式,但是您必须自己添加关系,请参阅MSDN 上的 XML 批量加载示例。我对其他工具一无所知,但我似乎记得一些对生成关系的工具的引用。
编辑我刚刚遇到这篇旧帖子如何从 XSD 文件创建数据库表?. 当然,从 生成模式.xsd
比 更进一步.xml
,但它会节省一些时间,也许这些相同的工具也可以从 XML 生成它?(除了这些工具是在 2008 年提到的,但是,嘿,尝试一下永远不会有坏处。)它提到了这些工具:
您可以使用 XSD.exe 从 XML 数据文件创建架构。