كيفية حل "لا يمكن العثور على معلومات المخطط للعنصر/السمة

StackOverflow https://stackoverflow.com/questions/179927

سؤال

في Visual Studio ، لدي مشروع ASP.NET 3.5 يستخدم MS Enterprise Library 4.0 كتل تطبيق.

عندما يتم فتح ملف تكوين الويب الخاص بي ، تملأ قائمة الأخطاء الخاصة بي بـ 99 رسالة بأشياء مثل

Could not find schema information for the element 'dataConfiguration'.  
Could not find schema information for the attribute 'defaultDatabase'.  
Could not find schema information for the element 'loggingConfiguration'.   
Could not find schema information for the attribute 'tracingEnabled'.   
Could not find schema information for the attribute 'defaultCategory'.  

إذا أغلقت ملف الويب.

بعد القيام ببعض البحث ، وجدت أن هذا هو لأن هناك ملف XSD أو المخطط الذي يحتاجه Visual Studio من أجل فهم "المخطط" الموجود في ملف الويب.

هل يعرف أي شخص كيفية توفير معلومات المخطط المناسبة ، أو لإيقاف هذه الرسائل؟

FRANCI - شكرًا على المعلومات ، لقد جربت هذه الأداة بالإضافة إلى MMC SNAP (تميل إلى تفجير التنسيق في الويب. شكرا للمحاولة.

هل كانت مفيدة؟

المحلول

لقد قمت بتكوين app.config باستخدام أداة تكوين Entlib وإعداد بلدي LoggingConfiguration الكتلة. ثم قمت بنسخ هذا إلى DotNetConfig.xsd. بالطبع ، لا يغطي جميع السمات ، فقط تلك التي أضفتها ولكنها لم تعد تعرض رسائل المعلومات المزعجة بعد الآن.

<xs:element name="loggingConfiguration">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="listeners">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="add">
              <xs:complexType>
                <xs:attribute name="fileName" type="xs:string" use="required" />
                <xs:attribute name="footer" type="xs:string" use="required" />
                <xs:attribute name="formatter" type="xs:string" use="required" />
                <xs:attribute name="header" type="xs:string" use="required" />
                <xs:attribute name="rollFileExistsBehavior" type="xs:string" use="required" />
                <xs:attribute name="rollInterval" type="xs:string" use="required" />
                <xs:attribute name="rollSizeKB" type="xs:unsignedByte" use="required" />
                <xs:attribute name="timeStampPattern" type="xs:string" use="required" />
                <xs:attribute name="listenerDataType" type="xs:string" use="required" />
                <xs:attribute name="traceOutputOptions" type="xs:string" use="required" />
                <xs:attribute name="filter" type="xs:string" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="formatters">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="add">
              <xs:complexType>
                <xs:attribute name="template" type="xs:string" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="logFilters">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="add">
              <xs:complexType>
                <xs:attribute name="enabled" type="xs:boolean" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="categorySources">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="add">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="listeners">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="add">
                          <xs:complexType>
                            <xs:attribute name="name" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="specialSources">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="allEvents">
              <xs:complexType>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
            <xs:element name="notProcessed">
              <xs:complexType>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
            <xs:element name="errors">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="listeners">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="add">
                          <xs:complexType>
                            <xs:attribute name="name" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required" />
    <xs:attribute name="tracingEnabled" type="xs:boolean" use="required" />
    <xs:attribute name="defaultCategory" type="xs:string" use="required" />
    <xs:attribute name="logWarningsWhenNoCategoriesMatch" type="xs:boolean" use="required" />
  </xs:complexType>
</xs:element>

نصائح أخرى

لقد قمت بإنشاء مخطط جديد يعتمد على app.config الحالي للحصول على الرسائل تختفي. لقد استخدمت للتو الزر في Visual Studio الذي يقول "إنشاء مخطط" وتم إنشاء مخطط XSD لي.

احفظ المخطط في مكان مناسب وشاهد علامة التبويب "الخصائص" لملف App.Config حيث توجد خاصية تسمى Schemas. إذا قمت بالنقر فوق الزر "تغيير" ، فيمكنك تحديد كل من مخطط DotNetConfig الأصلي وواحد خاص بك حديثًا.

يتم تضمين XSD مع Entlib 5 ، ويتم تثبيته في دليل مخطط Visual Studio. في حالتي ، يمكن العثور عليها في:

"C: Program Files (x86) Microsoft Visual Studio 10.0 XML Schemas EnterPriselibrary.Configuration.xsd"

سياق الكلام

  • Visual Studio 2010
  • مكتبة المؤسسة 5

خطوات لإزالة التحذيرات

  1. افتح app.config في مشروع Visual Studio الخاص بك
  2. انقر بزر الماوس الأيمن في محرر مستندات XML ، حدد "خصائص"
  3. أضف المسار المؤهل بالكامل إلى "eventpriselibrary.configuration.xsd"

جانبا

تجدر الإشارة إلى أن هذه "قائمة الأخطاء" "رسائل" ("لا يمكن العثور على معلومات المخطط للعنصر") مرئية فقط عند فتح ملف App.Config. إذا قمت "بإغلاق جميع المستندات" وتجميع ... لن يتم الإبلاغ عن أي رسائل.

هل حاولت نسخ ملف المخطط إلى مجلد تخزين مخطط XML لـ VS؟ يمكنك العثور على موقع هذا المجلد من خلال النظر إلى VS Tools/Options/Test Editor/XML/Miscellaneor. لسوء الحظ ، لا أعرف أين هو ملف المخطط لمكتبة MS Enterprise 4.0.

تحديث: بعد تثبيت مكتبة MS Enterprise ، يبدو أنه لا يوجد ملف .xsd. ومع ذلك ، هناك أداة لتحرير التكوين - entlibconfig.exe ، والتي يمكنك استخدامها لتحرير ملفات التكوين. أيضًا ، إذا قمت بإضافة أقسام التكوين المناسبة إلى ملف التكوين الخاص بك ، فيجب أن تكون VS قادرة على تحليل ملف التكوين بشكل صحيح. (ستضيف EntlibConfig هذه لك ، أو يمكنك إضافتها بنفسك). فيما يلي مثال لقسم تسجيل الدخول:

<configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

تحتاج أيضًا إلى إضافة إشارة إلى التجميع المناسب في مشروعك.

ما الذي تم إصلاحه "لا يمكن العثور على معلومات المخطط للعنصر ..." بالنسبة لي كان

  • فتح بلدي app.config.
  • انقر بزر الماوس الأيمن في نافذة المحرر والاختيار Properties.
  • في مربع الخصائص ، هناك صف يسمى Schemas, ، قمت بالنقر فوق هذا الصف واخترت التصفح ... المربع الذي يظهر في الصف.
  • لقد راجعت ببساطة use مربع لجميع الصفوف التي كان لها مشروعي في مكان ما فيها ، وكذلك للإصدار الحالي من .NET كنت أستخدمه. على سبيل المثال: DotNetConfig30.xsd.

بعد ذلك ذهب كل شيء إلى العمل بشكل جيد.

كيف لم يتم التحقق من صفوف المخططات هذه مع مشروعي لست متأكدًا ، لكن عندما تأكدت من فحصها ، عدت إلى العمل.

انتقل إلى هذا: ملفات Nlog XSD

قم بتنزيل XSD المناسب لمشروعك وحفظه على طول nlog.config

أول واحد فعل الخدعة بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top