导入 xml 文件并引用 xsd 文件

Posted

技术标签:

【中文标题】导入 xml 文件并引用 xsd 文件【英文标题】:Importing xml file and referencing an xsd file 【发布时间】:2011-05-25 15:11:51 【问题描述】:

我正在尝试找到一种方法来导入一个 xml 文件,其中一个 xsd 是一个单独的文件(未嵌入在 xml 中)。

 Application.ImportXML DataSource:=varResult, ImportOptions:=acAppendData

是我知道如何导入 xml 文件的基本方式(其中 varResult 是从 FilePicker 例程传递的变量)。据我所知,您可以使用三个基本论点,这与我想要了解的内容无关。如果我要导入我拥有的 xml 文件,它不会为其中一张表创建多条记录;而这些值只会覆盖以前的记录。

我知道如何通过节点,使用节点列表,手动获取值,循环遍历,构建临时表,并将数据从临时表迁移到 proTables,但这需要大量编码,只是为了为了使用通用导入命令,我只是不知道如何以编程方式引用 xsd 文件。

【问题讨论】:

能否将xsd文件中的内容插入到你的xml文件中并导入修改后的版本? 【参考方案1】:

AFAIK 没有 ImportXML 选项来引用单独的 xsd 文件。但是由于您知道 xml 和 xsd 文件的名称和位置,也许您可​​以合并它们并将合并的文件提供给 ImportXML。

我自己没有尝试过,但怀疑您可以通过 2 种方式进行合并:

    将 xsd 标记行添加到 xml 文件的根目录 更改 xml 数据根以包含 xsi:noNamespaceSchemaLocation="YourXsdFile.xsd"

这两种方法看起来都有些笨拙。问题是……你能用比打开 xml 文档然后解析和存储值少得多的代码来做到这一点吗?

【讨论】:

对....我明白你在说什么。好吧,至少我有一种完成它的方法,只需要很多代码。但它应该仍然是尝试这个的情况。谢谢汉斯!【参考方案2】:

我认为 ImportXML 方法不够健壮,无法完成您想做的事情。如果您已经在使用 AppendData 选项并且它没有将数据附加到您的规范中,那么我相信您将不得不想出一种不同的方法。

在我自己的ExportXML实验中,我认为数据结构定义包含在XML文件中。我认为 Import XML 的预期是一样的,并且没有其他选择。

您已经表明您已经知道如何加载 XML 文件并对其进行迭代以导入数据。我的研究表明,如果 ImportXML 文件没有执行您需要它执行的操作,则没有简单的方法可以将 XML 文件导入现有表。您可以通过将 XML 文件加载为 ADO 记录集来简化手动导入。

看看这个相关链接:http://bytes.com/topic/access/answers/504646-append-ado-recordset-table

【讨论】:

以上是关于导入 xml 文件并引用 xsd 文件的主要内容,如果未能解决你的问题,请参考以下文章

xml中怎么引用当前目录的xsd

XSD.exe 和“循环组引用”

如何使用 SaxonJS 进行模式验证以获取缺失的引用

XSD 包含导入的 xsd 时的 Delphi XE2 XML 数据绑定向导错误

如何在 xsd 文件中指定架构位置?

XSD 到 XML 的导入