如果我要定义xsd main.xsd和sub.xsd
现在,如果我想将sub.xsd导入main.xsd,我该怎么办呢。
<xsd:import
namespace="http://localhost:8080/my-app";
schemaLocation="main.xsd"/>
如果两者都在同一个文件夹中..但我想给一个相对网址我该怎么做。
答案 0 :(得分:0)
首先我想说“SchemaLocation”属性被描述为“是一个提示”。规范中没有任何内容强制在XML解析器中解析该属性。
也就是说,如果您使用的是基于文件的方法,那么定义“在同一位置”的方式将是schemaLocation =“。\ main.xsd”。
然而,这是否有效取决于您正在使用的XML解析器的具体实现。
如果您使用.Net,我建议您将两个模式加载到XmlSchemaSet中。这足以使用该模式集验证/代码生成项。然后在namespace-uri上完成解析。
如果您使用.Net,您还可以将XmlResolver附加到您的应用程序,以接管这些项目的解析。
有关此方法的详细信息,请查看MSDN
希望这有帮助,