Échec de la validation XML
-
28-09-2019 - |
Question
Mon XML
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xsi="http://www.w3.org/2001/XMLSchema-instance"
schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Entities\Aplikasi" table="aplikasi">
<field name="nama" type="string" column="nama" length="20" precision="0" scale="0" unique="1"/>
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
</entity>
</doctrine-mapping>
Je reçois ce résultat en essayant de le valider par Netbeans
XML validation started.
Checking file:/home/meh/doctrine2/Entities/Mappings/Entities.Apliksi.dcm.xml...
cvc-elt.1: Cannot find the declaration of element 'doctrine-mapping'. [5]
XML validation finished.
J'ai aussi omis de valider le XML à http://www.validome.org/xml/validate /
Comment puis-je vous assurer qu'il est valide?
La solution
Je devais faire quelques changements pour valider le XML:
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="EntitiesAplikasi" table="aplikasi">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<field name="nama" type="string" column="nama" length="20" unique="1"/>
</entity>
</doctrine-mapping>
Je devais ajouter le préfixe xmlns
avant xsi
et le préfixe xsi
avant schemaLocation
puis je me suis déplacé id-dessus du champ et supprimé les attributs de précision et d'échelle.
Si vous accédez à le schéma dans un navigateur web et choisir la source de vue ou tout simplement le télécharger, vous pouvez lire le schéma pour déterminer à quoi doit ressembler le XML valide.
Autres conseils
Le même problème se produit lors de l'utilisation Netbeans pour valider tous les schémas XML (un fichier XSD, comme tout-xml-schéma-name.xsd).
Avant d'utiliser votre solution, mon code est:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
mais il échoue toujours à valider, avec un message d'erreur: "Vous ne trouvez pas la déclaration d'élément 'xs: schema'"
Maintenant, en utilisant votre solution, je viens de changer le même code de dessus:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"
et il fonctionne.
Merci!
Marcio Borges Wesley
http://marciowb.info