XSD 1.1 - 发现以元素 'xs:alternative' 开头的无效内容

XSD 1.1 - Invalid content was found starting with with element 'xs:alternative'

在我的 XSD 中,我正在尝试使用 alternative 标签。由于某些原因,我在 IDE (PHPStorm) 中遇到了这个错误:

Invalid content was starting with with element 'xs:alternative' ...

XSD

<xs:complexType name="tableType">
    <xs:sequence>
        <xs:element type="columnType" name="column" maxOccurs="unbounded" minOccurs="0"/>
        <xs:element type="keyType" name="key" maxOccurs="unbounded" minOccurs="0">
            <xs:alternative test="@type='index'" type="keyIndexType"/>
            <xs:alternative test="@type='unique'" type="KeyUniqueType"/>
        </xs:element>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
</xs:complexType>

我看到了 I should not add something more to use the 1.1 xsd version 但我需要一些东西来支持 alternative 标签吗?

您的 XSD 处理器必须支持 XSD 1.1 才能使用 xs:alternative ( Conditional Type Assignment)。 XSD 1.0 处理器不允许 xs:alternative 作为 xs:element 的子级,并且会提供错误消息,例如您收到的消息。因此,您可以得出结论,您的 XSD 处理器仅支持 XSD 1.0.

有关 CTA 的工作示例,请参阅 (当然,这也需要 XSD 1.1)。

感谢@kjhughes,我找到了解决方案。 我不得不从 XSD 1.0 处理器切换到 XSD 1.1 处理器。

在 PHPstorm 中:设置面板 > 语言和框架 > 默认 XML Shemas

Notice : after to 'Apply' changes, you must restart PHPStorm.