2017-05-16 3 views
1

Je travaille sur un XSD pour un projet, voici ce que j'ai:s4s-elt-invalid-content.1: Le contenu n'est pas valide. « Attribut » élément est invalide, mal placée, ou se produit trop souvent

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/Elizabeth schema" 
xmlns:elz="http://www.example.org/Elizabeth_schema" elementFormDefault="qualified"> 
<xs:element name ="year"> 
<xs:complexType mixed = "true"> 
<xs:sequence> 
<xs:element name="entry"> 
    <xs:complexType mixed ="true"> 
    <xs:simpleContent> 
     <xs:attribute name ="when" type = "xs:string"/> 
     <xs:attribute name = "place" type = "xs:string"/> 
     <xs:element name = "items" type = "xs:string"/> 
     <xs:element name = "characters"> 
      <xs:complexType> 
      <xs:attribute name ="character" type = "xs:string"/> 
      </xs:complexType> 
     </xs:element> 
     <xs:element name = "eventscollection"> 
      <xs:complexType> 
      <xs:attribute name = "type" type = "xs:string"/> 
      </xs:complexType> 
     </xs:element> 
     <xs:element name ="entrytxt"> 
      <xs:complexType> 
      <xs:any minOccurs = "0"/> 
      <xs:anyAttribute minOccurs="0"/> 
      </xs:complexType> 
     </xs:element> 
     </xs:simpleContent> 
    </xs:complexType> 
    </xs:element> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
</xs:schema> 

Je ne l'ai pas fait l'xls au schéma Pourtant, je veux que le schéma fonctionne en premier. Mon IDE me jette un bug:

s4s-elt-invalid-content.1: Le contenu de '#AnonType_entryyear' est invalide. L'attribut 'attribut' est invalide, mal placé, ou se produit trop souvent .

La ligne 11 est l'endroit où j'introduis le premier attribut sous l'élément "entrée". J'ai trouvé que si je supprime la ligne 10 ("simpleContent"), j'obtiens la même erreur mais à la ligne 13 où j'introduis le premier élément sous "entrée". Je suis un débutant avec ceci, et j'ai fait quelques incursions autour de l'Internet mais n'arrive pas à comprendre ce qui se passe avec mon code. Des pensées?

Répondre

0

Il y a un certain nombre de problèmes avec votre XSD, y compris

  • entry n'a pas de contenu simple. Remplacez xs:simpleContent par xs:sequence au sein de xs:complexType.
  • Ensuite, déplacez les déclarations xs:attribute en dehors de xs:sequence.
  • Supprimer minOccurs de xs:anyAttribute.

Notez que vous voudrez probablement retirer l'espacement entourant votre signe attribut = - pas nécessaire, mais il semble assez peu conventionnelle, et incohérente que vous avez.

Voici votre XSD entièrement corrigée:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://www.example.org/Elizabeth schema" 
      xmlns:elz="http://www.example.org/Elizabeth_schema" 
      elementFormDefault="qualified"> 
    <xs:element name="year"> 
    <xs:complexType mixed="true"> 
     <xs:sequence> 
     <xs:element name="entry"> 
      <xs:complexType mixed="true"> 
      <xs:sequence> 
       <xs:element name="items" type="xs:string"/> 
       <xs:element name="characters"> 
       <xs:complexType> 
        <xs:attribute name="character" type="xs:string"/> 
       </xs:complexType> 
       </xs:element> 
       <xs:element name="eventscollection"> 
       <xs:complexType> 
        <xs:attribute name="type" type="xs:string"/> 
       </xs:complexType> 
       </xs:element> 
       <xs:element name="entrytxt"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:any minOccurs="0"/> 
        </xs:sequence> 
        <xs:anyAttribute/> 
       </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      <xs:attribute name="when" type="xs:string"/> 
      <xs:attribute name="place" type="xs:string"/> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

Merci beaucoup. J'apprécie vraiment l'aide. – Danielle