XML Schema,隐藏schemaLocation属性中的.xsd文件

时间:2013-11-01 14:57:25

标签: xml xsd codesynthesis

我想问一下,如果没有在“xsi:schemaLocation =”属性中指定.xsd位置验证我的xml有任何选项。

例如我的xml文件。

<?xml version="1.0" ?>
<test:XMLFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:test="http://test/"
            xsi:schemaLocation="http://test/" {relative/absolute path}/Test.xsd">
  <Data> TEST </Data>
</test:XMLFile>

出于安全原因,我想隐藏.xsd位置,还有其他选项可以隐藏xsi:schemaLocation =“http:// test /”{relative / absolute path} /Test.xsd?

也许将.xsd嵌入到lib甚至是解析器中?

干杯,

学家

1 个答案:

答案 0 :(得分:1)

是的,绝对的。没有要求在xsi:schemaLocation中识别模式,并且许多人认为这是不好的做法。 (除了其他任何事情,如果你需要验证,这意味着你不相信文档内容,那么你为什么要相信它指向正确的模式?)

不幸的是,您对处理环境一无所知,但我认为大多数验证器都会提供命令行界面和API,允许您独立指定源文档和架构。

xsi:schemaLocation可能有用的主要情况是您在键入时使用创作工具进行验证。