2010-06-18 9 views
0

Je suis en train de créer un schéma XML pour un fichier xml qui ressemble à la suiteXSD avec des éléments avec le même nom

<attributes> 
<attribute name="article_artextref">123213213</attribute> 
<attribute name="ProviderID">ABC</attribute> 
</attributes> 

Ce que je suis en train d'accomplir est de vérifier si un attribut nommé « article_artextref » exister et assurez-vous que la longueur de sa valeur est supérieure à 1. Je ne veux pas valider la longueur du nom d'attribut "ProviderID" et la longueur pour l'ID du fournisseur peut être 0.

Veuillez nous aider.

J'ajoute le schéma xml dont j'ai vérifié la longueur pour les deux éléments.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:simpleType name="ST_attribute"> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:element name="attributes"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="attribute" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="attribute"> 
     <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="ST_attribute"> 
        <xs:attribute name="name" use="required"> 
         <xs:simpleType> 
          <xs:restriction base="xs:string"> 
           <xs:enumeration value="ProviderID"/> 
           <xs:enumeration value="article_artextref"/> 
          </xs:restriction> 
         </xs:simpleType> 
        </xs:attribute> 
       </xs:extension> 
      </xs:simpleContent> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

Répondre

0

Désolé, mais XML Schema ne peut pas gérer ce type de problème. Vous avez besoin de noms d'éléments différents si vous voulez un contenu d'élément différent.

+0

J'ai simplement ajouté le schéma dans ma question initiale. S'il vous plaît examiner cela. Je vérifie la longueur de l'article_artextref et de l'ID du fournisseur. –

+0

Tout ce que fait votre XSD est de valider les valeurs de la propriété "name". Vous ne validez pas le contenu des éléments "attribut", et vous ne validez certainement pas que le contenu a différents types basés sur l'attribut "name". XML Schema ne peut pas faire ces choses. –

Questions connexes