كيفية حل DTDs المحلية دون system.xml.utils.dll (xmlpreloadedResolver)؟
سؤال
يمكنني استخدام DTD خارجي للتحقق من صحة ملفات XML الخاصة بي. نظرا لأن XMLReader يبدو أنه يبحث عن DTD فقط في المجلد الذي يكون فيه ملف XML، فأنا بحاجة إلى إخبار القارئ بطريقة أو بأخرى بالنظر إلى مجلد محدد حيث تكون DTD الخاصة بي.
I على الرغم من حل xmlpreloadededResolver لحل هذا ولكن لا يمكنني العثور على system.xml.utils.dll في GAC. ليس هذا هو التجمع الإطار القياسي .NET؟
تحرير: يبدو أن هذا يعتمد DLL على Silverlight ليتم تثبيته. هل هناك طريقة أخرى لاستخدام DTD للتحقق من الصحة والتي هي في مجلد آخر من ملف XML نفسه؟
المحلول
System.xml.utils.dll ليس جزءا من .NET Framework القياسية. يتم تضمين كجزء من SDK Silverlight SDK. إذا لم تقم بذلك بالفعل، فيمكنك القيام بذلك من هنا: http://www.microsoft.com/downloads/details.aspx؟familyid=1ea49236-0de7-41b1-81c8-a126ff39975b&displaylang=en.
بمجرد تثبيتها، ستكون الجمعية التي تريد الرجوع إليها في مشروعك ضمن٪ programfiles٪ Microsoft SDKS Silverlight V3.0 Libraries Client
يتضمن هذا التجمع أن System.xml.xml.xmlpreloadededResolver
نصائح أخرى
تبعا هذه المقالة, System.Xml.Utils.dll
هو "اختياري وسيتم تضمينها في الحزمة (XAP) بناء على الاستخدام".
يبدو أن هذه الجمعية ذات صلة؛ على جهازي، أنا فقط وجدت ذلك في الداخل %ProgramFiles%\Microsoft SDKs\Silverlight\v?.0\Libraries\Client
الدلائل
يتضمن .netfx 4.0 XmlpreloadedResolver في system.xml.dll. يرى http://msdn.microsoft.com/en-us/library/system.xml.resolvers.xmlpreloadededresolver.aspx. للتفاصيل.