2011-01-31 44 views
24

我对XML/Schema文件的知识有限。如何使用XML文档中本地计算机上的Schema

所以这应该是一个相当简单的问题。 如何为schemaLocation指定本地文件?

<?xml version="1.0"?> 

<note 
    xmlns="http://www.w3schools.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.w3schools.com note.xsd"> 
    ... 
</note> 

这是来自www.w3.org的示例,指定模式的部分位于schemaLocation中。 我试着看文档,但是如何指定一个本地文件?

喜欢的东西

xsi:schemaLocation="../relativepath/schemafolder not.xsd"> 

感谢

回答

24

schemaLocation必须包含由空格分隔的两个值:命名空间URI(这并不改变)和架构URL。

所以你的情况

xsi:schemaLocation="http://www.w3schools.com ../relativepath/schemafolder/note.xsd"> 

不要被看似有效的HTTP URL命名空间URI所迷惑,那只是小的疯狂XML发明人之一。

xsi:schemaLocation="namespace1 schemaurl1 namespace2 schemaurl2 ..." 

(我也建议你使用相对路径小心::)

其实,你可以在一个schemaLocation指定几个命名空间的架构,而他们是当你移动你的文件非常有用,但仍然使用相同的代码(或工具)验证它,当您在应用程序中部署验证代码时,“工作目录”可能不是您所期望的。这并不是说您不应该使用相对路径,只是为了意识到这一点,当你看到一个关于未找到的模式的怪异例外)。

+0

所以链接不必是有效的?我仍然需要在那里放些东西?即使它根本不用? – grobartn 2011-01-31 22:48:39

相关问题