Qual è il tuo modo di eseguire il debug delle eccezioni correlate a XML?


11

Sto codificando Magento 2 in gvim e sono nuovo di Magento 2.

Ci sono state molte volte in cui ho faticato a eseguire il debug degli errori relativi a XML, beh, ogni volta con sola fortuna. Ma situazioni come questa mi fanno davvero arrabbiare: non sai dove si trova il file che causa questo errore e il debugger non lo dice.

Prendo quanto segue ottengo questo: un file XML non è valido. in realtà ho creato un modulo che ha module.xml, route.xml, config.xml, {layout} .xml, di.xml sotto la sua directory etc o view / layout. La riga del file 12/89 / .. non è valida? quello generato / unito? Mi sono perso perché non trovo nulla in var / generate e la riga di comando smette di funzionare. Qual è il modo di debug per scoprire qual è questo errore.

Qualsiasi aiuto è apprezzato.

Errore irreversibile: Magento \ Framework \ Exception \ LocalizedException non rilevati: elemento documento 'elemento' non valido: la definizione del tipo è astratta. Riga: 12 elemento 'item', attributo 'name': XPath '@name' di un campo con vincolo di identità chiave 'itemName' restituisce un set di nodi con più di un membro. Riga: 89 Elemento 'item': non tutti i campi del vincolo di identità chiave 'itemName' vengono valutati su un nodo. Riga: 89 Elemento 'item', attributo 'name': XPath '@name' di un campo del vincolo di identità chiave 'itemName' restituisce un set di nodi con più di un membro. Riga: 90 elemento 'item': non tutti i campi del vincolo di identità chiave 'itemName' vengono valutati su un nodo. Riga: 90 in /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:


2
Sbattere la testa contro il muro ...
giovedì

il modo per "eseguire il debug" di questi è realmente usare gli xsd forniti (anche questo significa usare phpstorm) o solo tentativi ed errori. Potresti forse scrivere un proprio script di controllo xsd
David Verholen il

Risposte:


4

L'eccezione generata ti dice che stai usando un elemento in <item />cui non sei autorizzato a usarne uno. Quindi sì, il tuo problema è probabilmente legato all'XML.

La prima cosa che faccio per assicurarmi di scrivere un codice XML valido è impostare il mio IDE in modo che possa mappare correttamente gli schemi XSD. In PhpStorm puoi farlo usando l'helper-thingy lasciato allo xsispazio dei nomi:

imposta lo spazio dei nomi in PhpStorm

Quando tutto è impostato correttamente, il tuo IDE imposterà il completamento del codice per te e ti avviserà se stai facendo qualcosa che non è permesso:

descrizione comando 1

descrizione comando 2

Spero che questo ti aiuti un po '.


Grazie. Ho letto l'introduzione sul supporto xsd su devdocs che dice che al momento sono supportati solo phpstorm (a causa del suo stile univoco di spazio dei nomi?). A causa di phpstorm consuma troppa memoria sul mio desktop fedora, risolvo a gvim a cui sono abituato. Anche se aggiorno a vim 8, xml xsd non supporta ancora mage2 'way.
robertshare,

2
utilizzare bin/magento dev:urn:generate .idea/misc.xmlper generare il mapping xsd per PHPStorm. Sarà in grado di risolvere tutti i percorsi dell'urna da xmls.
Sergii Ivashchenko il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.