Je code avec Magento 2 dans gvim et je suis nouveau sur Magento 2.
Il y a eu plusieurs fois j'ai eu du mal à déboguer les erreurs liées au xml, eh bien, chaque fois avec seulement de la chance. Mais des situations comme celle-ci me mettent vraiment en colère: vous ne savez pas où se trouve le fichier qui cause cette erreur, et le débogueur ne le dit pas non plus.
Prenez ce qui suit je reçois ceci: un fichier xml n'est pas valide. en fait, j'ai créé un module qui a module.xml, routes.xml, config.xml, {layout} .xml, di.xml sous son etc, ou des répertoires view / layout. La ligne de quel fichier 12/89 / .. n'est pas valide? celui généré / fusionné? Je suis perdu parce que je ne trouve rien dans var / généré et la ligne de commande cesse de fonctionner. Quelle est la façon de déboguer pour trouver quelle est cette erreur.?
Toute aide est appréciée.
Erreur fatale: Magento \ Framework \ Exception \ LocalizedException non récupéré: élément de document non valide 'élément': la définition de type est abstraite. Ligne: 12 Élément 'item', attribut 'name': Le XPath '@name' d'un champ de contrainte d'identité clé 'itemName' est évalué en un ensemble de nœuds avec plus d'un membre. Ligne: 89 Élément 'item': tous les champs de la contrainte d'identité clé 'itemName' ne sont pas évalués en un nœud. Ligne: 89 Élément 'item', attribut 'name': Le XPath '@name' d'un champ de contrainte d'identité clé 'itemName' est évalué en un ensemble de nœuds avec plus d'un membre. Ligne: 90 Élément 'item': tous les champs de la contrainte d'identité clé 'itemName' ne sont pas évalués en un nœud. Ligne: 90 in /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:
Réponses:
L'exception levée vous indique que vous utilisez un élément
<item />
où vous n'êtes pas autorisé à en utiliser un. Alors oui, votre problème est probablement lié à XML.La première chose que je fais pour m'assurer d'écrire du XML valide est de configurer mon IDE afin qu'il puisse correctement mapper les schémas XSD. Dans PhpStorm, vous pouvez le faire en utilisant le helper-thingy laissé à
xsi
-namespace:Lorsque tout est correctement configuré, votre IDE configurera la complétion de code pour vous et vous avertira si vous faites quelque chose qui n'est pas autorisé:
J'espère que cela vous aide.
la source
bin/magento dev:urn:generate .idea/misc.xml
pour générer le mappage xsd pour PHPStorm. Il pourra résoudre tous les chemins d'urnes à partir de xmls.