1

我以 xml 形式接收到过程的输入,并且我已经准备了 xml 模式,并希望使用该模式验证输入,如果输入不符合要求则抛出错误。我正在尝试使用 xmlvalidate() 选项“schemavalidate=yes”,但不知道在哪里存储我的 xml 架构。这些示例将 http url 指示为 xml 架构,但我应该托管我的 xml 架构吗?还是应该将其存储为数据库“文本”列?有人可以指导我如何存储和使用 xml 模式来使用 xmlvalidate() 吗?我们在 Sybase ASE 15.7

感谢你的帮助!


只需在我的下一步中添加以下问题即可:

我已经托管了我的 xml 架构并尝试使用 xmlvalidate,如下所示:

xmlvalidate(@purgeTableInfo, option 'schemavalidate=yes,  nonamespaceschemalocation="http://myhost:5000/purgeschema"')

已向托管数据库的 unix box/login 提供了对此清除模式的所需访问权限。我们可以从运行 sybase 的 unix 机器上 ping 到“myhost”。但是,我仍然收到以下错误。

"XMLVALIDATE(): XML parser fatal error <<An exception occurred!
Type:NetAccessorException, Message:Could not create the socket for URL
'{0}'. Error={1>> at line 0, offset 0.
Sybase error code=14702
Severity Level=16, State=0, Transaction State=0"

有谁知道是什么原因,我应该如何解决这个问题?

对此的任何帮助都会很棒!

4

1 回答 1

0

根据文档,要针对 dtd 进行验证,需要托管您的架构。您的 xml 应该存储在数据库中的文本列中,而不是您的 xml 架构中。文档中有许多示例,它们应该可以引导您朝着正确的方向前进。

于 2013-04-25T11:37:55.540 回答