Cách gỡ lỗi liên quan đến xml của bạn là gì?


11

Tôi đang mã hóa với Magento 2 trong gvim và tôi mới biết về Magento 2.

Đã có nhiều lần tôi vật lộn để gỡ lỗi các lỗi liên quan đến xml, mỗi lần chỉ có may mắn. Nhưng những tình huống như thế này khiến tôi thực sự khó chịu: bạn không biết đâu là tệp gây ra lỗi này và trình gỡ lỗi không nói gì cả.

Hãy làm như sau tôi nhận được điều này: một tệp xml không hợp lệ. trên thực tế, tôi đã tạo ra một mô-đun có mô-đun, tệp XML, tệp tin cấu hình, tệp bố cục, tệp bố cục. Dòng 12/89 / .. của tập tin nào không hợp lệ? cái được tạo / sáp nhập? Tôi bị mất bởi vì tôi không tìm thấy gì trong var / created và dòng lệnh ngừng hoạt động. Là gì cách gỡ rối để tìm thấy những gì lỗi này là.?

Bất kỳ trợ giúp được đánh giá cao.

Lỗi nghiêm trọng: Uncaught Magento \ Framework \ Exception \ LocalizedException: Tài liệu không hợp lệ 'mục': Định nghĩa loại là trừu tượng. Dòng: 12 Phần tử 'item', thuộc tính 'name': XPath '@name' của một trường ràng buộc nhận dạng khóa 'itemName' ước tính thành một tập hợp nút có nhiều hơn một thành viên. Dòng: 89 Phần tử 'item': Không phải tất cả các trường của ràng buộc nhận dạng khóa 'itemName' đều đánh giá một nút. Dòng: 89 Phần tử 'item', thuộc tính 'name': XPath '@name' của một trường về ràng buộc nhận dạng khóa 'itemName' ước tính thành một tập hợp nút có nhiều hơn một thành viên. Dòng: 90 Phần tử 'item': Không phải tất cả các trường của ràng buộc nhận dạng khóa 'itemName' đều đánh giá một nút. Dòng: 90 in /var/www/html/lib/iternal/Magento/Framework/Config/Reader/Filesystem.php:


2
Gục đầu vào tường ...
tjons

cách để "gỡ lỗi" những thứ thực sự là sử dụng xsd được cung cấp (cũng có nghĩa là sử dụng phpstorm) hoặc chỉ dùng thử và lỗi. Bạn có thể có thể viết một kịch bản kiểm tra xsd riêng
David Verholen

Câu trả lời:


4

Ngoại lệ được ném cho bạn biết rằng bạn đang sử dụng một yếu tố <item />mà bạn không được phép sử dụng một yếu tố . Vì vậy, yeah, vấn đề của bạn có thể liên quan đến XML.

Điều đầu tiên tôi làm để đảm bảo rằng tôi viết XML hợp lệ là thiết lập IDE của tôi để nó có thể ánh xạ chính xác các lược đồ XSD. Trong PhpStorm, bạn có thể thực hiện việc này bằng cách sử dụng trình trợ giúp bên trái cho xsi-namespace:

đặt không gian tên trong PhpStorm

Khi tất cả được đặt đúng, IDE của bạn sẽ thiết lập hoàn tất mã cho bạn và cảnh báo bạn nếu bạn đang làm điều gì đó không được phép:

chú giải công cụ 1

chú giải công cụ 2

Tôi hy vọng điều đó giúp bạn được vài thứ.


Cảm ơn. Tôi đã đọc phần giới thiệu về hỗ trợ xsd trên devdocs mà nói ngay bây giờ chỉ có phpstorm được hỗ trợ (vì không gian tên duy nhất của nó stlye?). Do phpstorm tiêu tốn quá nhiều bộ nhớ trên máy tính để bàn fedora của tôi, tôi quyết định gvim mà tôi đã quen. Mặc dù tôi nâng cấp lên vim 8, xml xsd vẫn không hỗ trợ mage2 '.
robertshare

1
sử dụng bin/magento dev:urn:generate .idea/misc.xmlđể tạo ánh xạ xsd cho PHPStorm. Nó sẽ có thể giải quyết tất cả các đường dẫn urn từ xml.
Sergii Ivashchenko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.