java 加载 xsd文件,将带有Imports的嵌入式XSD加载到DataSet中

我的目标是将带有导入的嵌入式xsd加载到DataSet中,然后基于xsd生成表 .

我正在尝试使用XML Schema加载DataSet,该架构由导入的多个XSD文件组成 . 使用位于文件系统上的文件执行此操作是没有问题的,我只需将其交给主xsd文件,所有内容都可以正常运行并解析所有xsd导入 . 我想要做的是将我的xsd嵌入到我的dll中,这样它就不会在文件系统上 . 具有嵌入式xsd文件的项目与将访问xsd文件以加载到DataSet的项目是分开的 .

DataSet.ReadXmlSchema方法可以采用流,XmlReader,字符串uri或XmlTextReader . 我没有问题加载DLL然后使用assembly.GetManifestResourceStream(schemaPath)到达主模式文件,如果我的模式只是一个文件,这将没有问题 . 问题是,一旦我将它传递给DataSet.ReadXmlSchema方法,它就无法找到任何导入 .

我尝试使用XmlReader并使用XmlReaderSettings对象和我为之前的问题编写的自定义xml解析器(我知道有效) . 我过去曾使用自定义xml解析器将嵌入到dll中的类似架构加载到XmlSchemaSet中,它就像魅力一样 . 因此,当我进行XmlReader.Create调用时,我传入使用我的自定义Xml解析器的XmlReaderSettings,但是当我将此XmlReader传递给DataSet.ReadXmlSchema方法时,它也找不到导入的模式文件 . 我在重载的GetEntity方法中设置了一个断点,它永远不会被击中 . 所以XmlReader似乎没有使用我提供的XmlResolver . 我对XmlTextReader也有同样的问题 .

关于如何将导入加载到DataSet中的嵌入式模式的任何想法?我最后的办法是将嵌入的xsd文件临时复制到文件系统以创建DataSet然后删除它们,尽管我试图避免这种情况 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值