2017-08-17 4 views
0

Je suis nouveau xml et essayer de valider XML avec XSD respectifs, mais face à une erreur:cvc-complexe-type.4: Attribut {0} doit apparaître sur l'élément {1}

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

Même si J'ai déjà ajouté Companyname en XML ainsi que xsd. Quelle pourrait être la cause de cette erreur. Toute aide/suggestion?

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

* Ce qui pourrait être à l'origine de cette erreur *: vous ne validez pas le fichier que vous pensez valider. –

+0

Comment ça? Je ne comprends pas. –

+0

Tout semble correct au niveau XML/XSD, donc l'erreur humaine est la cause la plus probable. Comment effectuez-vous la validation? Faites-vous référence au bon fichier et non à une version précédente par accident? –

Répondre

0

Votre XML contient un certain nombre d'erreurs. Il n'est pas bien formé (les balises de début ne correspondent pas aux balises de fin) et contient un certain nombre de violations contre votre schéma (les balises employee et contractEmployee doivent être vides).

J'ai nettoyé votre XML:

<?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> 

Ceci valide correctement contre votre schéma, comme on peut le tester par exemple au this site.

Tout autre problème que vous pourriez avoir est lié à la façon dont vous effectuez la validation, et non au contenu XML ou XSD.

+0

J'ai toujours la même erreur dans la plate-forme que j'utilise. :(En fait, j'ai converti le diagramme en xml et Je ne sais pas si l'erreur est due à cette conversion Pouvez-vous jeter un coup d'oeil sur le diagramme ER que j'ai lié à la fin de la question et dire si le xml est correct pour cela –

+0

Je ne peux le répéter que si souvent: le fichier que vous * pensez * valider n'est pas le fichier que vous validez * réellement * Si le XML que j'ai préparé dans ma réponse ne va pas valider par rapport au XSD que vous avez fourni, alors il y a quelque chose qui ne va pas la validation. Pas avec le XML, pas avec le XSD, et pas avec le diagramme ER. Avez-vous essayé de valider sur le site auquel j'ai lié dans ma réponse? Ou tout autre service de validation XML uniquement? –

+0

La question est dans une ligne pour "générer xml et xsd pour le diagramme ER". Maintenant, je ne sais pas ce que je peux faire d'autre pour le résoudre car la question nécessite deux fichiers séparés pour xml et xsd. :( –