ബാഹ്യ DTD, XML വിഭവങ്ങളിൽ നിന്നുള്ള പ്രോക്സി 407 പിശകുകൾ
പ്രമാണം ബാഹ്യ DTD, സ്കീമകൾ അല്ലെങ്കിൽ പാഴ്സർ തുറക്കുന്ന മറ്റ് വിഭവങ്ങളിലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ ഉണ്ടാകുന്ന അപ്രതീക്ഷിത 407 കണ്ടെത്തുക.
പ്രാദേശിക പ്രമാണവും പരിവർത്തന സമയത്ത് 407 ഉണ്ടാക്കിയേക്കാം. അതിന്റെ XML ഒരു DTD, സ്കീമ അല്ലെങ്കിൽ എന്റിറ്റി പേര് നൽകിയേക്കാം, റെൻഡറർ സ്റ്റൈലുകളോ ചിത്രങ്ങളോ എടുത്തേക്കാം. പരാജയപ്പെടുന്ന ക്ലയന്റ് യഥാർത്ഥ ഡൗൺലോഡ് കഴിഞ്ഞതിന് ശേഷം ആ പാഴ്സറിനുള്ളിൽ ആകാം.
എക്സെപ്ഷൻ സ്റ്റാക്കും അഭ്യർത്ഥിച്ച URI-യും സൂക്ഷിക്കുക, തുടർന്ന് അവ ഇൻപുട്ട് പ്രഖ്യാപനങ്ങളുമായോ വിഭവ റഫറൻസുകളുമായോ പൊരുത്തപ്പെടുത്തുക. സ്റ്റാൻഡേർഡ് ഹോസ്റ്റിലേക്കുള്ള DTD അഭ്യർത്ഥന പേജ് അഭ്യർത്ഥനയിൽ നിന്ന് വ്യത്യസ്ത പ്രവർത്തനമാണ്. HTML-ൽ നിന്ന് PDF-ലേക്കുള്ള പരിവർത്തനവും ദൂര വിഭവങ്ങൾ എടുക്കുമ്പോൾ പരാജയപ്പെടാം.
DTD-കളും ബാഹ്യ പരിഹാരവും വിലക്കുന്ന കരാർ ഉള്ള .NET XmlReader ഇൻപുട്ടിന്, ഉപയോഗിക്കുക:
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};ആ ക്രമീകരണങ്ങൾ പ്രമാണം യഥാർത്ഥത്തിൽ പാഴ്സ് ചെയ്യുന്ന ഘടകത്തിന് നൽകുക. DtdProcessing DTD എങ്ങനെ കൈകാര്യം ചെയ്യണം എന്ന് തിരഞ്ഞെടുക്കുന്നു; XmlResolver ബാഹ്യ ആക്സസ് നിയന്ത്രിക്കുന്നു. Prohibit DTD ഉള്ള പ്രമാണം നിരസിക്കുന്നു—അത് പ്രഖ്യാപനം നീക്കം ചെയ്യുന്നില്ല. വർക്ക്ഫ്ലോയ്ക്ക് ഒന്ന് ആവശ്യമെങ്കിൽ, അംഗീകൃത പ്രാദേശിക പരിഹാരമോ വ്യക്തമായി റൂട്ട് ചെയ്ത resolver-ഓ തിരഞ്ഞെടുക്കുക.
സ്ഥിരസ്ഥിതികൾ API/റൺടൈമുമായി ബന്ധിപ്പിച്ച് നിർത്തുക. XmlReaderSettings സ്ഥിരസ്ഥിതിയായി Prohibit ഉപയോഗിക്കുന്നു, അതിന്റെ സ്ഥിരസ്ഥിത resolver .NET Framework 4.5.2 മുതൽ null ആയി മാറി. മൂന്നാം കക്ഷി കൺവെർട്ടർ അവയെ അസാധുവാക്കുകയോ മറ്റൊരു പാഴ്സർ ഉപയോഗിക്കുകയോ ചെയ്യാം.
XHTML പ്രഖ്യാപനം HTML doctype ആക്കി മാറ്റുന്നത് ഒരു കൺവെർട്ടറിനെ ബാധിച്ചേക്കാം, പക്ഷേ അതിന്റെ പ്രോക്സി കോൺഫിഗർ ചെയ്യുന്നില്ല. ആവശ്യമായ വിഭവങ്ങളും അവയുടെ ലോഡർ നയവും നിർണ്ണയിക്കുക; പ്രാരംഭ പേജ് ക്ലയന്റിലെ പ്രാമാണീകരണം ഈ രണ്ടാം ക്ലയന്റിനെ പ്രാമാണീകരിക്കുന്നില്ല.