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 № 1Votre 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
Remarque: après "Appliquer" les modifications, vous devez redémarrer PHPStorm.