Ce que je cherche à être en mesure de créer est un XSD qui validerait les deux éléments suivants:schéma XML pour les éléments avec le même nom, mais différents éléments sous
<parent>
<mother>
<name>
<firstname>foo</firstname>
<surname> bar </surname>
<maidenname>rab</maidenname>
</name>
</mother>
</parent>
et
<parent>
<father>
<name>
<firstname>foo</firstname>
<surname> bar </surname>
</name>
</father>
</parent>
Je souhaite idéalement pouvoir utiliser le même nom d'élément mais avoir des exigences différentes en fonction de l'attribut parent. Ce que j'ai essayé jusqu'à présent est:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="firstname">
<xs:complexType mixed="true" />
</xs:element>
<xs:element name="maidenname">
<xs:complexType mixed="true" />
</xs:element>
<xs:element name="mother">
<xs:complexType>
<xs:sequence>
<xs:element ref="name" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="father">
<xs:complexType>
<xs:sequence>
<xs:element ref="name" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="name">
<xs:complexType>
<xs:all>
<xs:element ref="firstname" />
<xs:element ref="surname" />
<xs:element ref="maidenname" />
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="parent">
<xs:complexType>
<xs:choice>
<xs:element ref="mother"/>
<xs:element ref="father"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="surname">
<xs:complexType mixed="true" />
</xs:element>
</xs:schema>
Salut @bolo pouvez-vous s'il vous plaît répondre à cette question aussi, il est similaire: http://stackoverflow.com/q/39751548/3735638?sem=2 –