2012-01-20 4 views
1

Je souhaite étendre un xsd: complexType avec un autre xsd: complexType. Je veux étendre à la fois l'ensemble des attributs et ajouter un élément qui peut être autorisé dans le contenu du nouveau type. Le problème est que je ne peux pas comprendre comment spécifier correctement les éléments et les attributs dans le nouveau type complexe. Par exemple, j'ai essayé le code suivant (qui se ne pas être valide):Extension d'un type complexe avec un autre type complexe

<xsd:complexType name="NewComplexType"> 
    <xsd:complexContent> 
     <xsd:extension base="OldComplexType"> 
      <xsd:sequence> 
       <xsd:attribute name="newAttribute" type="xsd:string" use="optional" /> 
      </xsd:sequence> 
      <xsd:element name="newElement" type="xsd:string" minOccurs="0" maxOccurs="1" /> 
     </xsd:extension> 
    </xsd:complexContent> 
</xsd:complexType> 

Merci, Teo

+0

fournir un échantillon xml pour référence. Votre explication n'est pas très utile. –

Répondre

2

échanger seul élément avec l'attribut (éléments doivent aller en extension/séquence).

<xsd:complexType name="NewComplexType"> 
    <xsd:complexContent> 
     <xsd:extension base="OldComplexType"> 
      <xsd:sequence> 
      <xsd:element name="newElement" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
      </xsd:sequence> 
      <xsd:attribute name="newAttribute" type="xsd:string" use="optional"/> 
     </xsd:extension> 
    </xsd:complexContent> 

Questions connexes