2010-03-01 43 views
0

提供相对的schemaLocation如果我定义为xsd main.xsd和sub.xsd如何XSD

现在,如果我想在sub.xsd导入main.xsd我怎么能做到这一点。

<xsd:import 
namespace="http://localhost:8080/my-app"; 
schemaLocation="main.xsd"/> 

如果两者都在相同的文件夹..但我想给一个相对的网址,我该怎么做。

回答

0

首先,我想说的是,“SchemaLocation”属性被描述为“作为提示”。规范中没有任何内容会强制在XML解析器中解析该属性。也就是说,如果你使用的是基于文件的方法,定义'在同一个位置'的方法是schemaLocation =“。\ main.xsd”。

但是,这会起作用还是取决于您正在使用的XML解析器的具体实现。

如果您使用.Net我想建议您将两个模式加载到XmlSchemaSet中。这将足以使用该模式集验证/编码项目。然后这个决议是在namespace-uri上完成的。

如果您使用的是.Net,您还可以将XmlResolver附加到接管这些项目的解决方案的应用程序。

看一看MSDN有关此方法的更多信息

希望这有助于