XML 관련 예외를 디버깅하는 방법은 무엇입니까?


11

gvim에서 Magento 2로 코딩하고 있으며 Magento 2를 처음 사용합니다.

XML 관련 오류를 디버깅하는 데 여러 번 어려움을 겪었습니다. 매번 운이 좋았습니다. 그러나 이와 같은 상황은 나를 화나게합니다.이 오류를 일으키는 파일이 어디에 있는지 알지 못하고 디버거는 아무 것도 알려주지 않습니다.

나는 이것을 얻는다 : xml 파일이 유효하지 않다. 실제로 나는 module.xml, route.xml, config.xml, {layout} .xml, di.xml 등이 있거나보기 / 레이아웃 디렉토리가있는 모듈을 만들었습니다. 어떤 파일의 라인 12 / 89 / ..이 유효하지 않습니까? 생성 된 / 병합 된 것? var / generated에서 아무것도 찾지 못해 명령 행이 작동하지 않아서 길을 잃었습니다. 무엇 디버깅 방법 이 오류가 무엇인지 찾을 수는.?

도움을 주시면 감사하겠습니다.

치명적인 오류 : 잡히지 않은 Magento \ Framework \ Exception \ LocalizedException : 잘못된 문서 요소 '항목': 형식 정의가 추상입니다. 줄 : 12 요소 'item', 속성 'name': 키 identity-constraint 'itemName'필드의 XPath '@name'은 둘 이상의 멤버가있는 노드 세트로 평가됩니다. 줄 : 89 요소 'item': 핵심 identity-constraint 'itemName'의 모든 필드가 노드로 평가되는 것은 아닙니다. 줄 : 89 요소 'item', 속성 'name': 키 identity-constraint 'itemName'필드의 XPath '@name'은 둘 이상의 멤버가있는 노드 세트로 평가됩니다. 줄 : 90 요소 'item': 핵심 identity-constraint 'itemName'의 모든 필드가 노드로 평가되는 것은 아닙니다. 줄 : /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php의 90 :


2
벽에 내 머리를
두드리는

실제로 "디버그"하는 방법은 제공된 xsd를 사용하거나 (phpstorm을 사용한다는 의미) 시행 착오를하는 것입니다. 당신은 아마 자신의 xsd 확인 스크립트를 작성할 수 있습니다
David Verholen

답변:


4

예외가 발생하면 <item />사용할 수없는 요소 를 사용하고 있음을 나타냅니다. 예, 문제는 아마도 XML과 관련이 있습니다.

유효한 XML을 작성하기 위해 가장 먼저해야 할 일은 IDE를 설정하여 XSD 체계를 올바르게 매핑 할 수 있다는 것입니다. PhpStorm에서는 xsi-namespace에 남겨진 helper-thingy를 사용하여이를 수행 할 수 있습니다 .

PhpStorm에서 네임 스페이스 설정

모든 것이 올바르게 설정되면 IDE가 코드 완성을 설정하고 허용되지 않는 작업을 수행하면 경고합니다.

툴팁 1

툴팁 2

나는 이것이 당신에게 도움이되기를 바랍니다.


감사. devdocs에 대한 xsd 지원에 대한 소개를 읽었습니다. 현재 고유 한 네임 스페이스 stlye 때문에 phpstorm 만 지원됩니다. phpstorm이 내 페도라 데스크톱에서 너무 많은 메모리를 소비하기 때문에 익숙한 gvim을 확인합니다. vim 8로 업그레이드했지만 xml xsd는 여전히 mage2 '방식을 지원하지 않습니다.
robertshare

2
bin/magento dev:urn:generate .idea/misc.xmlPHPStorm에 대한 xsd 매핑을 생성 하는 데 사용 합니다. xml에서 모든 urn 경로를 확인할 수 있습니다.
Sergii Ivashchenko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.