2016-03-27 8 views
0

Ich suche ein Element haben, verweist auf ein Geschwister, aber ich bin nicht sicher, wie dies in meinem Schema zu implementieren. Ich habe folgendes in meiner XML-Datei:Referenz auf XML Elemente ein Geschwister

<staff pid="818789"> 
    <supervisor staff="201022"></supervisor> 
    ... 
</staff> 

jeden einzelnen Mitarbeiters Bedeutung wird ein Supervisor hat, der auch ein Mitglied des Personals ist so ich suche sich zu verweisen, wenn dies möglich ist.

„pid“ ist ein Typ ich in meinem Schema erstellt haben, die nur eine Kette von 6 Ziffern ist.

ich folgendes in meiner XSD-Datei haben:

<xs:element name="staff"> 
    <xs:complexType>  
     <xs:sequence> 
      <xs:element name="supervisorID" type="pidType" minOccurs="0" maxOccurs="1"/> 
      ... 
     </xs:sequence> 
     <xs:attribute name="pid" type="pidType" use="required"/> 
    </xs:complexType> 
</xs:element> 

Es gibt den folgenden Fehler:

ERROR - CVC-type.3.1.1: Element 'Supervisor' ist eine einfache Art, Es kann also keine Attribute haben, mit Ausnahme derer, deren Namespace-Name mit 'http://www.w3.org/2001/XMLSchema-instance' identisch ist und dessen [lokaler Name] entweder 'type', 'nil', 'schemaLocation' oder 'noNamespaceSchemaLocation' ist. Es wurde jedoch das Attribut "Personal" gefunden.

Was ich sehen kann, warum es den Fehler auslöst, aber nicht verstehen, was ich ändern würde.

+0

uns folgen wird definiert zeigen die kompletten XSD für Personal Element – Kachna

+0

Es ist völlig unabhängig warum sollte es eine Rolle? – Porteous96

Antwort

1

Das Element mit den Attributen muss vom komplexen Typ sein. So sollte das Supervisor-Element als

<xs:element name="supervisor"> 
     <xs:complexType> 

        <xs:attribute name="staff" type = "pidType" use="required"/> 

     </xs:complexType> 

</xs:element> 
+0

Vielen Dank für Ihre Antwort und es scheint mein Problem zu lösen, aber jetzt habe ich neue Fehler. Würde es Ihnen etwas ausmachen, Ihre Antwort zu erklären, ich verstehe es? – Porteous96

+0

Ihre Bearbeitung löste meine Probleme und ich verstehe, was Sie getan haben. Danke vielmals. – Porteous96