2010-11-16 29 views
2

Comment résoudre ce problème?Erreur de schéma Xsd.exe: Undefined complexType 'http://www.w3.org/2001/XMLSchema:string' est utilisé comme base pour la restriction de type complexe

Avertissement 2 Undefined complexType 'http://www.w3.org/2001/XMLSchema:string' est utilisé comme base pour la restriction de type complexe.

Ce qui se passe à cause de <xs:simpleContent><xs:restriction base='xs:string'>

<xs:element name='TO'> 
    <xs:complexType> 
     <xs:simpleContent> 
     <xs:restriction base='xs:string'> 
      <xs:maxLength value='15'/> 
      <xs:attribute name='PROVID'> 
      <xs:simpleType> 
       <xs:restriction base='xs:int'> 
       <xs:enumeration value='1'/> 
       <xs:enumeration value='2'/> 
       <xs:enumeration value='3'/> 
       <xs:enumeration value='5'/> 
       <xs:enumeration value='6'/> 
       <xs:enumeration value='7'/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name='TYPE'> 
      <xs:simpleType> 
       <xs:restriction base='xs:string'> 
       <xs:enumeration value='NPM'/> 
       <xs:enumeration value='EMS'/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:attribute> 
     </xs:restriction> 
     </xs:simpleContent> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

regardant le W3schools reference cela semble ok, mais pas selon VS2010 et Xsd.exe

Tout ce que je veux vraiment faire est d'avoir une définition pour un élément TO qui peut avoir les deux attributs ci-dessus et son texte d'élément doit être limité à 15 caractères.

Répondre

2

Vous ne pouvez pas limiter une chaîne à 15 caractères et étendez-la pour qu'elle soit un type complexe avec des attributs en même temps. Si vous définissez d'abord un type de chaîne restreinte, puis l'étendez, vous n'aurez aucun problème:

<xs:simpleType name="RestrictedString"> 
    <xs:restriction base="xs:string"> 
     <xs:maxLength value="15"/> 
    </xs:restriction> 
</xs:simpleType> 
<xs:element name="TO"> 
    <xs:complexType> 
     <xs:simpleContent> 
      <xs:extension base="RestrictedString"> 
       <xs:attribute name="PROVID"> 
        <xs:simpleType> 
         <xs:restriction base="xs:int"> 
          <xs:enumeration value="1"/> 
          <xs:enumeration value="2"/> 
          <xs:enumeration value="3"/> 
          <xs:enumeration value="5"/> 
          <xs:enumeration value="6"/> 
          <xs:enumeration value="7"/> 
         </xs:restriction> 
        </xs:simpleType> 
       </xs:attribute> 
       <xs:attribute name="TYPE"> 
        <xs:simpleType> 
         <xs:restriction base="xs:string"> 
          <xs:enumeration value="NPM"/> 
          <xs:enumeration value="EMS"/> 
         </xs:restriction> 
        </xs:simpleType> 
       </xs:attribute> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:element>