XML関連の例外をデバッグする方法は何ですか?


11

私はgvimでMagento 2を使用してコーディングしています。Magento2は初めてです。

私は何度もxml関連のエラーをデバッグするのに苦労しました。しかし、このような状況では私は本当に動揺します。このエラーの原因となっているファイルがどこにあるかはわからず、デバッガーもどちらもわかりません。

次のようにしてください:xmlファイルが無効です。実際には、その下にmodule.xml、routes.xml、config.xml、{layout} .xml、di.xmlまたはview / layout dirsがあるモジュールを作成しました。どのファイルの12/89 / ..行が無効ですか?生成された/マージされたもの?var / generatedに何も見つからず、コマンドラインが機能しなくなったため、迷っています。このエラーが何であるかを見つけるためのデバッグ方法は何ですか?

どんな助けでもありがたいです。

致命的なエラー:キャッチされなかったMagento \ Framework \ Exception \ LocalizedException:無効なドキュメント要素 'item':タイプ定義は抽象的です。行:12要素 'item'、属性 'name':キーid-constraint 'itemName'のフィールドのXPath '@n​​ame'は、複数のメンバーを持つノードセットに評価されます。行:89要素 'item':キーアイデンティティー制約 'itemName'のすべてのフィールドがノードに評価されるわけではありません。行:89要素 'item'、属性 'name':キーID制約 'itemName'のフィールドのXPath '@n​​ame'は、複数のメンバーを持つノードセットに評価されます。行:90要素 'item':キーアイデンティティー制約 'itemName'のすべてのフィールドがノードに評価されるわけではありません。行:90 /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:


2
壁に頭を
ぶつけて

これらを実際に「デバッグ」する方法は、提供されたxsd(これはphpstormを使用することも意味します)または単に試行錯誤することです。独自のxsdチェックスクリプトを作成することもできます
David Verholen

回答:


4

スローされた例外は、要素の<item />使用が許可されていない場所で要素を使用していることを示しています。ええ、あなたの問題はおそらくXML関連です。

有効なXMLを確実に書き込むために最初に行うことは、XSDスキームを適切にマップできるようにIDEをセットアップすることです。PhpStormでは、xsi名前空間の左にあるヘルパーを使用してこれを行うことができます:

PhpStormに名前空間を設定する

すべてが正しく設定されると、IDEはコード補完を設定し、許可されていないことを行っている場合は警告を出します。

ツールチップ1

ツールチップ2

これがあなたのお役に立てば幸いです。


ありがとう。私はdevdocsでのxsdサポートについての紹介を読みましたが、現時点ではphpstormのみがサポートされていると述べています(そのユニークな名前空間が原因です)。phpstormがfedoraデスクトップでメモリを大量に消費するため、慣れているgvimに解決します。vim 8にアップグレードしましたが、xml xsdはまだmage2の方法をサポートしていません。
robertshare 16

2
bin/magento dev:urn:generate .idea/misc.xmlPHPStormのxsdマッピングを生成するために使用します。xmlからすべてのurnパスを解決できるようになります。
Sergii Ivashchenko 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.