XSD 1.1 - 无效含量被发现开始与元件“的xs:替代”(XSD 1.1 - Invalid

2019-09-28 16:10发布

在我的XSD,我试图用alternative的标签。 对于一些原因,我在IDE(PHPStorm)得到这个错误:

无效的内容已开始与元素“XS:另类” ......

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>

我看到了我不应该添加更多的东西来使用1.1版本的XSD ,但我需要的东西,以支持alternative标签?

Answer 1:

您的XSD处理器必须支持XSD 1.1才能使用xs:alternative条件类型分配 )。 一个XSD 1.0处理器将不允许xs:alternative为的子xs:element和将提供一个错误消息,如收到的一个。 因此,你可以认为你的XSD处理器仅支持XSD 1.0。

对于CTA的工作示例,请参阅如何使类型取决于使用条件类型分配属性值 (但是,当然,这也需要XSD 1.1)。



Answer 2:

我发现我的解决方案感谢@kjhughes。 我不得不从XSD 1.0处理器切换到XSD 1.1处理器。

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

注意:以“应用”更改后, 必须重新启动PHPStorm。



文章来源: XSD 1.1 - Invalid content was found starting with with element 'xs:alternative'