Magento 2.2.0 অবৈধ দস্তাবেজ উপাদান 'উত্স': গুণাবলী 'শিরোনাম' প্রয়োজন তবে অনুপস্থিত


12

আমি ম্যাজেন্টো ২.১.৮ থেকে ২.২.০ এ কোনও ওয়েবসাইট আপগ্রেড করার চেষ্টা করছি

আমি ২.২.০ এর জন্য সুরকারকে কনফিগার করেছি এবং কমান্ড লাইনের সাথে এটি আপডেট করেছি।

এখন যখন আমি magento setup:upgradeএটির চলমান স্কিমা চালানোর উপর এবং নিম্নলিখিত নোটটি দেখায়: পিএফএ আরও তথ্যের জন্য।

চলমান স্কিমা পুনরাবৃত্তি ... অবৈধ দস্তাবেজ উপাদান 'সংস্থান': বৈশিষ্ট্য 'শিরোনাম' প্রয়োজন তবে অনুপস্থিত। লাইন: 12

এলিমেন্ট 'রিসোর্স': 'শিরোনাম' বৈশিষ্ট্যটি প্রয়োজনীয় তবে অনুপস্থিত। লাইন: 13

এখানে চিত্র বর্ণনা লিখুন


উত্তর:


22

আমার সেরা অনুমান যে আপনার যে কোনও <resource>ফাইল-এ etc/acl.xmlঅনুপস্থিত title-পরিচয় সহ একটি ট্যাগ রয়েছে। সাধারণত এটি সেই সমস্যাটি ফেলে দেয় যা আপনি কোনও নতুন ভূমিকা তৈরি বা সম্পাদনা করতে পারেন নি। আমি অনুমান করছি যে তারা এটি আরও আগে সনাক্ত করতে 2.2 এ একটি অতিরিক্ত চেক তৈরি করেছে।

acl.xmlআপনার নিজস্ব কাস্টম এক্সটেনশনের ফাইলগুলি এবং / বা তৃতীয় পক্ষের এক্সটেনশনের ফাইলগুলি ভাল পরীক্ষা করুন । দয়া করে নোট করুন: title-ট্রিবিউট শুধুমাত্র নতুন <resource>নোডের জন্য প্রয়োজনীয় । সুতরাং যদি আপনি কোনও বিদ্যমান সংস্থান নোডে (নতুন মডিউল দ্বারা সরবরাহিত) একটি নতুন সংস্থান-নোড যুক্ত করা হয় তবে titleসেগুলিতে -গ্রাহীকরণ যুক্ত করার দরকার নেই । উদাহরণ স্বরূপ:

<!-- provided by Magento_Backend, so they already have a title: -->
<resource id="Magento_Backend::stores">
    <resource id="Magento_Backend::stores_settings">
        <!-- provided by Magento_Config: -->
        <resource id="Magento_Config::config">
            <!-- New resource! Title is required: -->
            <resource id="Vendor_Module::config_general" title="Something" translate="title"/> 
        </resource>
    </resource>
</resource>

4
আপনি যখন কোনও মেগাপ্লাজা কোরের মতো অন্য ধরণের প্যারেন্ট মডিউলের উপর নির্ভর করে এমন কোনও মডিউল ব্যবহার করছেন এবং প্যারেন্ট মডিউলটি ইনস্টল করা হয়নি এমন কিছু সময় এটি ঘটতে পারে
open -ecommerce.org

1
আমারও একই সমস্যা রয়েছে, তবে দুর্ভাগ্যক্রমে আমি হারিয়ে যাওয়া শিরোনামের বৈশিষ্ট্য সহ ইত্যাদি / acl.xML ফাইলটি সন্ধান করতে সক্ষম হয়েছি, আমি সমস্ত কাস্টম এক্সটেনশন পরীক্ষা করেছি। কোনও উপায় আছে যা আমি সহজেই ফাইলটি স্পট করতে পারি।
হরি স্বামীনাথন

দুর্নীতিগ্রস্থ এক্সএমএল এর ফাইলনাম আউটপুট কিভাবে করবেন সে সম্পর্কে কোনও ধারণা?
ডেভিড ল্যাম্বাউয়ার

ম্যাজপ্লাজা কোর ইনস্টল করা আমার জন্য এই সমস্যাটি স্থির করেছে: github.com/mageplaza/module-core
seanbreeden

29

অনুপস্থিত বৈশিষ্ট্যযুক্ত ফাইলটি সন্ধান করতে আপনি নিম্নলিখিত ফাইলটি সংশোধন করতে পারেন

vendor/magento/framework/Config/Reader/Filesystem.php

নিম্নলিখিত কোড যুক্ত করুন

foreach($configMerger->getDom()->getElementsByTagName('resource') as $element ){
    if (!$element->hasAttribute('title')) {
        var_dump($configMerger->getDom()->saveXML($element));
    }
}

পদ্ধতিতে

protected function _readFiles($fileList)

সুতরাং এটি দেখতে হবে

protected function _readFiles($fileList)
{
    /** @var \Magento\Framework\Config\Dom $configMerger */
    $configMerger = null;
    foreach ($fileList as $key => $content) {
        try {
            if (!$configMerger) {
                $configMerger = $this->_createConfigMerger($this->_domDocumentClass, $content);
            } else {
                $configMerger->merge($content);
            }
        } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
            throw new \Magento\Framework\Exception\LocalizedException(
                new \Magento\Framework\Phrase("Invalid XML in file %1:\n%2", [$key, $e->getMessage()])
            );
        }
    }
    if ($this->validationState->isValidationRequired()) {
        $errors = [];
        if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
            foreach($configMerger->getDom()->getElementsByTagName('resource') as $element ){
                if (!$element->hasAttribute('title')) {
                    var_dump($configMerger->getDom()->saveXML($element));
                }
            }
            $message = "Invalid Document \n";
            throw new \Magento\Framework\Exception\LocalizedException(
                new \Magento\Framework\Phrase($message . implode("\n", $errors))
            );
        }
    }

    $output = [];
    if ($configMerger) {
        $output = $this->_converter->convert($configMerger->getDom());
    }
    return $output;
}

এখন আপনি ভুল এক্সএমএল উপাদানগুলির একটি ডাম্প দেখতে সক্ষম হবেন।


2
আহ্ নিখুঁত, আপনার সমাধানটি আমাকে
কয়েকবার

1
নিখুঁত, আপনি আমার সময় বাঁচিয়েছেন :) তৃতীয় পক্ষের মডিউলগুলির মধ্যে একটি এমন একটি সংস্থান উল্লেখ করছে যা সংজ্ঞায়িত হয়নি।
নিধিশ

1
আপনি একজন সত্য নায়ক
পাবলো

8

আমি সম্প্রতি একই সমস্যা ছিল। দু'বার পর্যবেক্ষণ এবং একটি কার্যনির্বাহী।

1) এটি 'অবৈধ দস্তাবেজ' পরিবর্তে এটি আপনাকে জানায় যে কোন নথিটি অবৈধ।

2) সেটআপ: আপগ্রেড প্রক্রিয়াটি সম্ভবত আপগ্রেড করতে পারে তা নিশ্চিত করার জন্য কিছু প্রাক-বিমান চেক করা উচিত।

যাইহোক, আপনি যদি কয়েক ডজন acl.xML ফাইলগুলিতে একটি অনুপস্থিত শিরোনাম খুঁজতে চেষ্টা করতে গিয়ে আটকে থাকেন তবে অনলাইনে দ্রুত কোনও সাইট ফেরত পাওয়া দরকার, দ্রুত কাজটি শিরোনামের বৈশিষ্ট্যটি প্রয়োজনীয় পরিবর্তে alচ্ছিক করে তোলা।

বিক্রেতা / ম্যাজেন্টো / ফ্রেমওয়ার্ক / এসিএল / ইত্যাদি / এসিএল_ডার্মড.এক্সএসডি সম্পাদনা করুন

লাইনটি সন্ধান করুন

<xs:attribute name="title" type="typeTitle" use="required" />

প্রতিস্থাপন

<xs:attribute name="title" type="typeTitle" use="optional" />

পুনরায় রান করুন ম্যাজেন্টো সেটআপ: আপগ্রেড করুন

আপনার এখনও কোনও সময়ে নিখোঁজ শিরোনাম সহ প্লাগইনটি সন্ধান করতে হবে।


0

আমি নীচের কোডগুলিতে "অ্যাডমিনটিচটিএমএল" "ব্যাকএন্ড" এ পরিবর্তন করেছি তবে এটি কাজ করে।

পরিবর্তনের আগে রিসোর্স ট্যাগ:

**<resource id="Magento_Adminhtml::admin">**

পরিবর্তনের পরে রিসোর্স ট্যাগ:

**<resource id="Magento_Backend::admin">**

নীচে হিসাবে চূড়ান্ত কোড।

**

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Acl/etc/acl.xsd">
    <acl>
        <resources>
            <resource id="Magento_Backend::admin">
                <resource id="Neo_Testing::testing" title="testing" sortOrder="100"/>
            </resource>
        </resources>
    </acl>
</config>

**


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.