【问题标题】:How to import/include an xsd file with a specific namespace? [duplicate]如何导入/包含具有特定命名空间的 xsd 文件? [复制]
【发布时间】:2018-02-14 10:33:54
【问题描述】:

我有两个 xsd 文件(sc1.xsd、sc2.xsd)。当我导入其中一个时,另一个由于某些常见元素/类型而发生冲突。 如何将 sc2.xsd 导入到 sc1.xsd,以便我可以像这样在 sc1.xsd 中使用 sc2 元素<element name="myelement" type="sc2:type1">

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    冲突的精确规则有点依赖于实现——如果处理器可以确定两个声明是等价的,那么它就可以忽略重复的。但是,如果您有两个相同名称的声明并且它们不同,那就是一个错误,并且无法绕过它。

    【讨论】:

    • 我正在使用 xmlSpy,即使声明是等效的,它也不会忽略它...这就是为什么我想通过使用命名空间来区分。
    • @oklayness:如果您同时控制导入和导入的 XSD,则只能使用命名空间来区分。是这样吗?如果是这样,您的解决方案是微不足道的。重复链接引发了一个更难的情况,正如迈克尔凯所说,遇到等效声明,通常是由于导入图中的循环。该规范允许实现以不同方式处理此类情况。对于这种情况,如果您无法打破导入图中的循环,您将需要一个依赖于实现的解决方案,例如 Xerces 的honour-all-schemalocations
    • 你可以随意调用你的类型声明,所以你总是可以通过命名空间来区分类型。元素声明更难,因为模式中的命名空间必须与实例文档中的命名空间匹配。
    猜你喜欢
    • 2017-01-13
    • 2012-06-01
    • 2010-10-29
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多