XML ile ilgili istisnalarda hata ayıklamanın yolu nedir?


12

Gvim'de Magento 2 ile kod yazıyorum ve Magento 2'de yeniyim.

Birçok kez xml ile ilgili hataları hata ayıklamak için mücadele vardı, iyi, her zaman sadece şans ile. Ancak bu gibi durumlar beni gerçekten üzüyor: bu hataya neden olan dosyanın nerede olduğunu bilmiyorsunuz ve hata ayıklayıcı hiçbirini söylemiyor.

Aşağıdakileri alın Bunu alıyorum: bir xml dosyası geçersiz. Aslında module.xml, route.xml, config.xml, {layout} .xml, di.xml vb altında olan bir modül oluşturdum. Hangi dosyanın satırı 12/89 / .. geçersiz? oluşturulan / birleştirilen? Kayboldum çünkü var / oluşturulan'da hiçbir şey bulamıyorum ve komut satırı çalışmayı durduruyor. Ne var ayıklama yolu bu hata ne olduğunu bulmak için.?

Herhangi bir yardım takdir.

Önemli hata: Yakalanmamış Magento \ Framework \ Exception \ LocalizedException: Geçersiz Belge Öğesi 'item': Tür tanımı soyut. Satır: 12 'item' öğesi, 'name' özniteliği: Anahtar kimlik sınırlaması 'itemName' alanının XPath '@name', birden fazla üyesi olan bir düğüm kümesi olarak değerlendirilir. Satır: 89 'item' öğesi: 'itemName' anahtar kimliğinin temel alanlarının tüm alanları bir düğüm için değerlendirilmez. Satır: 89 'item' öğesi, 'name' özniteliği: Anahtar kimlik sınırlaması 'itemName' alanının XPath '@name', birden fazla üyesi olan bir düğüm kümesi olarak değerlendirilir. Satır: 90 'item' öğesi: 'itemName' anahtar kimliğinin temel alanlarının tüm alanları bir düğümü değerlendirmez. Satır: /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php içinde 90:


2
Duvara karşı başımı beceriyor ...
Tjons

Bu gerçekten "hata ayıklama" yolu sağlanan xsd (aynı zamanda bu phpstorm kullanmak anlamına gelir) veya sadece deneme yanılma kullanmaktır. Belki kendi xsd kontrol komut dosyasını yazabilirsiniz
David Verholen

Yanıtlar:


4

Atılan istisna, bir öğeyi <item />kullanmanıza izin verilmeyen bir öğe kullandığınızı gösterir. Evet, sorununuz muhtemelen XML ile ilgili.

Geçerli XML yazdığımdan emin olmak için yaptığım ilk şey IDE'mi ayarlamak, böylece XSD şemalarını düzgün bir şekilde eşleyebiliyor. PhpStorm'da bunu xsi-namespace'e bırakılan yardımcı-şeyi kullanarak yapabilirsiniz:

PhpStorm'da ad alanını ayarlama

Her şey doğru şekilde ayarlandığında, IDE'niz sizin için kod tamamlamayı ayarlayacak ve izin verilmeyen bir şey yaparsanız sizi uyaracaktır:

ipucu 1

ipucu 2

Umarım bu size yardımcı olur.


Teşekkürler. Şu anda sadece phpstorm desteklendiğini söyleyen devdocs xsd desteği hakkında giriş okudum (benzersiz ad alanı stly nedeniyle?). Phpstorm fedora masaüstümde çok fazla bellek tükettiği için, alışkın olduğum gvim'e karar verdim. Ben vim 8 yükseltmek rağmen, xml xsd hala mage2 'yolu desteklemiyor.
robertshare

2
kullanmak bin/magento dev:urn:generate .idea/misc.xmlPhpStorm için Xsd Eşleme oluşturmak için. Tüm urn yollarını xmls'den çözebilir.
Sergii Ivashchenko
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.