/ / XSD 1.1 - Un contenu invalide a été trouvé en commençant par l'élément 'xs: alternative' - xml, xsd, phpstorm, xsd-validation, xsd-1.1

XSD 1.1 - Un contenu invalide a été trouvé en commençant par l'élément 'xs: alternative' - xml, xsd, phpstorm, xsd-validation, xsd-1.1

Dans mon XSD, j'essaie d'utiliser alternative marque. Pour certaines raisons, j'ai eu cette erreur dans mon IDE (PHPStorm):

Le contenu invalide commençait par l'élément "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>

j'ai vu Je ne devrais pas ajouter quelque chose de plus pour utiliser la version 1.1 xsd mais ai-je besoin de quelque chose pour soutenir alternative tag?

Réponses:

0 pour la réponse № 1

Votre processeur XSD doit prendre en charge XSD 1.1 pour utiliser xs:alternative (Affectation de type conditionnel). Un XSD 1.0 le processeur ne permettra pas xs:alternative en tant qu'enfant de xs:element et fournira un message d'erreur tel que celui que vous avez reçu. Par conséquent, vous pouvez conclure que votre processeur XSD ne prend en charge que XSD 1.0.

Pour un exemple de travail du CTA, voir Comment faire en sorte que type dépend de la valeur de l'attribut en utilisant l'affectation de type conditionnel (mais, bien sûr, cela nécessite aussi XSD 1.1).


1 pour la réponse № 2

J'ai trouvé ma solution grâce à @kjhughes. J'ai dû passer du processeur XSD 1.0 au processeur XSD 1.1.

Dans PHPstorm: Panneau de configuration> Langues et cadres> Shemas XML par défaut

entrer la description de l'image ici

Remarque: après "Appliquer" les modifications, vous devez redémarrer PHPStorm.