XSD 1.1 - 从元素'xs:alternative'开始发现无效内容

时间:2018-03-09 14:40:24

标签: xml xsd phpstorm xsd-validation xsd-1.1

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

  

无效内容以元素'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代码的内容?

2 个答案:

答案 0 :(得分:1)

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

在PHPstorm中:“设置”面板&gt;语言与框架&gt;默认XML Shemas

enter image description here

  

注意:在申请&#39;之后更改,您必须重新启动PHPStorm

答案 1 :(得分:0)

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

有关CTA的工作示例,请参阅How to make type depend on attribute value using Conditional Type Assignment(但当然,这也需要 XSD 1.1 )。