2010-05-31 6 views
0

J'essaye d'écrire un schéma de type xsd pour un élément qui a un type personnalisé afin d'inclure des attributs d'addition pour étendre un type de base. Je rencontre des problèmes pour obtenir la syntaxe correcte.Schéma d'un élément avec des attributs et des nœuds enfant

<xs:element name="graphs"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="graph" 
        minOccurs="1" 
        maxOccurs="unbounded" 
        type="graphType"> 
     <!-- child elements --> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="graphType"> 
<xs:simpleContent> 
    <xs:extension base="xs:string"> 
    <xs:attribute name="title" type="xs:string"/> 
    <xs:attribute name="type" type="xs:string"/> 
    </xs:extension> 
</xs:simpleContent> 
</xs:complexType> 

Je pensais que ce serait quelque chose de très commun, mais après avoir lu beaucoup de Tuts et des forums, je ne peux pas semble trouver une réponse qui fonctionne pour moi.

Edit: En fait, je ne veux pas le nœud parent (graphique) pour contenir des données de chaîne, seulement xml ..

Répondre

2

Je suis venu avec ce ..

<xs:element name="graphs"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="graph" 
        minOccurs="1" 
        maxOccurs="unbounded"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="sequence" type="sequenceType"/> 
      </xs:sequence> 
      <xs:attribute name="title" type="xs:string"/> 
      <xs:attribute name="type" type="xs:string"/> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="sequenceType"> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
     <xs:attribute name="name" type="xs:string"/> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

Je pense c'est syntaxiquement valide. Cela semble-t-il correct?

Questions connexes