2017-09-13 2 views
1

comment ajouter un attribut pour un élément qui a également des restrictions pour les éléments.Comment définir les attributs pour l'élément xsd

   <xs:restriction base="xs:string"> 
        <xs:enumeration value="Spring"/> 
        <xs:enumeration value="Summer"/> 
        <xs:enumeration value="Autumn"/> 
        <xs:enumeration value="Fall"/> 
        <xs:enumeration value="Winter"/> 
       </xs:restriction> 
      <xs:complexType> 
       <xs:attribute name="id"/> 
      </xs:complexType> 
      </xs:simpleType> 

je veux définir à la fois attribut et restriction pour à l'élément. Mais en utilisant cette façon, il ne fonctionne même pas avec simpleContent & complexContent. Alors, comment le faire?

Répondre

1

Vous devez faire en deux étapes:

  • définir un type simple avec un espace de valeur restreinte
  • Définir un type complexe avec un contenu simple qui étend ce type simple (utilisé pour son contenu) avec un attribut

comme ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     elementFormDefault="qualified"> 
    <xs:simpleType name="restrictedsimpletype"> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="Spring"/> 
      <xs:enumeration value="Summer"/> 
      <xs:enumeration value="Autumn"/> 
      <xs:enumeration value="Fall"/> 
      <xs:enumeration value="Winter"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:complexType name="restrictedwithattributes"> 
     <xs:simpleContent> 
      <xs:extension base="restrictedsimpletype"> 
       <xs:attribute name="id" type="xs:string"/> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
    <xs:element name="a" type="restrictedwithattributes"/> 
</xs:schema> 
+0

Merci beaucoup Ghislain Fourny il re aly fonctionne. – user7549997