2017-08-17 2 views
0

Ich bin neu in xml und versucht xml mit entsprechendem XSD zu überprüfen, aber einen Fehler gegenüber:cvc-Komplex-type.4: Attribut {0} auf Element erscheinen muss {1}

cvc-complex-type.4: Attribute 'Companyname' must appear on element 'company'

Obwohl Ich habe bereits Firmenname in xml sowie xsd hinzugefügt. Was könnte diesen Fehler verursachen? Irgendwelche Hilfe/Anregung?

XML:

<?xml version="1.0" encoding="utf-8"?> 
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="companyxsd.xsd" > 
    <department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf"> 
     <employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee> 
     <employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee> 
     <contractEmployee name="fdsf" phoneno="12345"> </contractEmployee> 
    </department> 
</company> 

companyxsd.xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > 
     <xs:element name="company" type="comType"/> 
     <xs:complexType name="comType"> 
       <xs:sequence> 
        <xs:element name="department" type="deptType"/> 
       </xs:sequence> 
       <xs:attribute type="xs:string" name="Companyname" use="required"/> 
       <xs:attribute type="xs:string" name="address" use="required"/> 
     </xs:complexType> 
     <xs:complexType name="deptType"> 
       <xs:sequence> 
        <xs:element name="employee" type="empType" minOccurs="1" maxOccurs="unbounded"/> 
        <xs:element name="contractEmployee" type="conType" minOccurs="0" maxOccurs="unbounded"/> 
       </xs:sequence> 
       <xs:attribute type="xs:string" name="dname" use="required"/> 
       <xs:attribute type="xs:integer" name="deptphoneno" use="required"/> 
       <xs:attribute type="xs:integer" name="deptfaxno" use="required"/> 
       <xs:attribute type="xs:string" name="deptemail" use="required"/> 
     </xs:complexType> 
     <xs:complexType name="empType"> 
       <xs:attribute type="xs:string" name="empid" use="required"/> 
       <xs:attribute type="xs:string" name="ename" use="required"/> 
       <xs:attribute type="xs:string" name="emailid" use="required"/> 
       <xs:attribute type="xs:integer" name="phoneno" use="required"/> 
     </xs:complexType> 
     <xs:complexType name="conType"> 
       <xs:attribute type="xs:string" name="name" use="required"/> 
       <xs:attribute type="xs:integer" name="phoneno" use="required"/> 
     </xs:complexType> 
</xs:schema> 

ER DIAGRAM

+0

* Was könnte diesen Fehler verursachen *: Sie validieren nicht die Datei, von der Sie glauben, dass sie validiert wird. –

+0

Wie so? Ich verstehe nicht. –

+0

Alles sieht auf der XML/XSD-Ebene korrekt aus, daher sind menschliche Fehler die wahrscheinlichste Ursache. Wie führen Sie die Validierung durch? Beziehen Sie sich versehentlich auf die richtige Datei und nicht auf eine vorherige Version? –

Antwort

0

Ihre XML eine Reihe von Fehlern enthält. Es ist nicht wohlgeformt (Start-Tags stimmen nicht mit End-Tags überein) und enthält eine Reihe von Verstößen gegen Ihr Schema (employee und contractEmployee Tags müssen leer sein).

Ich habe Ihre XML aufgeräumt:

<?xml version="1.0" encoding="utf-8"?> 
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf"> 
     <employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/> 
     <employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/> 
     <contractEmployee name="fdsf" phoneno="12345"/> 
    </department> 
</company> 

Diese richtig gegen das Schema validiert, kann zum Beispiel geprüft werden auf this site.

Jedes weitere Problem, das Sie möglicherweise haben, beziehen sich auf die Art und Weise, wie Sie die Validierung durchführen, und nicht auf den XML- oder XSD-Inhalt.

+0

Ich habe immer noch den gleichen Fehler in der Plattform, die ich benutze :(Eigentlich habe ich das Diagramm nach xml konvertiert Ich weiß nicht, ob der Fehler auf diese Konvertierung zurückzuführen ist Kannst du dir das ER-Diagramm ansehen, das ich am Ende der Frage verlinkt habe, und sagen, ob das XML korrekt ist –

+0

Ich kann es nur so oft wiederholen: Die Datei, die Sie * denken *, die Sie validieren, ist nicht die Datei, die Sie * tatsächlich * validieren.Wenn das XML, das ich in meiner Antwort vorbereitet habe, nicht gegen die von Ihnen angegebene XSD validiert, dann stimmt etwas nicht mit Ihrer Ausführung die Validierung Nicht mit dem XML, nicht mit dem XSD und nicht mit dem ER-Diagramm. Haben Sie in meiner Antwort versucht, auf der Website zu validieren, mit der ich verlinkt habe? Oder ein anderer einziger XML-Validierungsdienst? –

+0

Die Frage ist in einer Zeile zu "xml und xsd für ER Diagramm erstellen". Nun, ich weiß nicht, was ich noch tun kann, um es zu lösen, da die Frage zwei separate Dateien für xml und xsd benötigt. :( –

Verwandte Themen