2009-09-27 4 views
1

Mon balise xml est donnée ci-dessousComment assurez-vous une séquence de schéma XML contient au moins un élément

<ADCNT> 
     <EM> 
     <RUID> 
</ADCNT> 

Je peux faire étiquette EM comme obligatoire aussi la même chose que je peux faire avec RUID en fournissant minOccurs = 1 (<EM minOccurs=1>). Mais je veux que si les deux ne sont pas présents, ne validez pas le XML par rapport au schéma. Si l'un d'eux est présent, validez le XML par rapport au schéma. Signifie que si l'étiquette EM n'est pas présente, l'étiquette RUID doit être présente et vice versa.

Alors, comment résoudre ce problème?

Merci Sunil kumar Sahoo

Répondre

2

Salut, j'ai eu le problème résolu. . Son comme la façon dont Martn v Lowis mentionné, mais un changement petit peu

Le dessous est le schéma valide:

<xsd:element name="ADCNT"> 
    <xsd:complexType> 
     <xsd:choice minOccurs="1" maxOccurs="1"> 
     <xsd:sequence> 
      <xsd:element name="EM" minOccurs = "1"/> 
      <xsd:element name="RUID" minOccurs = "0"/> 
     </xsd:sequence> 
     <xsd:sequence> 
      <xsd:element name="RUID" minOccurs = "1"/> 
     </xsd:sequence> 
     </xsd:choice> 
    </xsd:complexType> 
</xsd:element> 
+0

"EM" minOccurs = "1" />

7

Vous devez faire un choix:

<xs:element name="ADCNT"> 
    <xs:complexType> 
    <xs:choice> 
     <xs:sequence> 
     <xs:element ref="EM" minOccurs="1"/> 
     <xs:element ref="RUID" maxOccurs="0"/> 
     </xs:sequence> 
     <xs:sequence> 
     <xs:element ref="RUID" minOccurs="1"/> 
     </xs:sequence> 
    </xs:choice> 
    </xs:complexType> 
</xs:element> 
+0

Haha, vous avez posté presque exactement le même schéma (j'EMBEDDED la 'EM' et' RUID 'éléments directement au lieu d'utiliser une référence de type) quelques secondes avant que je l'ai fait. Supprimé mon message. Vous vous attendriez à ce qu'il y ait une façon plus élégante de dire "exactement l'un des éléments de l'un de ces", mais je n'en ai jamais entendu parler. – Joren

+1

Merci pour votre aide. J'ai résolu le problème.

Questions connexes