ما الذي يمكن أن يكون خطأ في XSD هذا؟
-
22-09-2019 - |
سؤال
لدي XSD. عندما أحاول التحقق منه في biztalk ، فإنه يعطي هذه الأخطاء:
error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.
error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.
warning BEC999: Cannot resolve the 'schemaLocation' attribute.
error BEC3001: The 'http://www.w3.org/XML/1998/namespace:space' attribute is not declared.
warning BEC999: Cannot resolve the 'schemaLocation' attribute.
warning BEC1007: Node "<Schema>" - Target namespace is empty.
أعتقد أنه يشير إلى مساحات الأسماء التي تبدو هكذا:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
لست متأكدًا مما إذا كانت هذه معلومات كافية لتستمر ...
تعديل:
لقد وجدت أنه بناءً على البرنامج الذي أستخدمه للتحقق من صحة XML معه يعمل أحيانًا. علي سبيل المثال. إذا قمت بإنشاء بعض رمز .NET للتحقق من صحة XML مقابل المخطط ، فيبدو أنه يقرأ XSD OK ويؤدي التحقق من صحة XML. إذا استخدمت التحقق من صحة XML في Notepad ++ ، فإنه يقول إنه لا يمكن قراءة المخطط. في خريطة أخرى (WTX) يقولون إنه لا يعمل أيضًا.
هل هناك أشياء أخرى يمكنني محاولة تضييق القضايا المحتملة؟
تحرير 2:
بفضل xcut. وجدت أنه إذا قمت بتنزيل المخطط محليًا ووضعته في مشروع BizTalk ، فإن المخطط يتحقق من صحة موافق ، ولكن مع تحذير واحد: تحذير BEC1007: العقدة "" - مساحة الاسم الهدف فارغة.
المحلول
بصرف النظر عن كونه غريبًا بعض الشيء لاستيراد مخطط مساحة الاسم ، فقد يكون BizTalk ببساطة لا يمكن استيراد مخطط من خلال عنوان URL (في حين يمكن لرمز .NET الخاص بك).
لاستبعاد هذا كمسألة ، قم بتنزيل المخطط من W3.org ، ووضعه في مشروعك واستيراده من هناك بدلاً من HTTP.