ବାହ୍ୟ DTD ଏବଂ XML ସମ୍ବଳରୁ ପ୍ରକ୍ସି 407 ତ୍ରୁଟି
ଦସ୍ତାବେଜ ରୂପାନ୍ତର ସମୟରେ ବାହ୍ୟ DTD, ସ୍କିମା କିମ୍ବା ପାର୍ସର ଖୋଲୁଥିବା ଅନ୍ୟ ସମ୍ବଳକୁ ଯିବା ବେଳେ ଘଟୁଥିବା ଅପ୍ରତ୍ୟାଶିତ 407 ଚିହ୍ନଟ କରନ୍ତୁ।
ସ୍ଥାନୀୟ ଦସ୍ତାବେଜ ମଧ୍ୟ ରୂପାନ୍ତର ସମୟରେ 407 ସୃଷ୍ଟି କରିପାରେ। ଏହାର XML ଏକ DTD, ସ୍କିମା କିମ୍ବା entity ନାମ ଦେଇପାରେ, ଏବଂ ରେଣ୍ଡରର ଶୈଳୀ କିମ୍ବା ଚିତ୍ର ଆଣିପାରେ। ବିଫଳ ହେଉଥିବା କ୍ଲାଏଣ୍ଟ ମୂଳ ଡାଉନଲୋଡ ସମାପ୍ତ ହେବା ପରେ ସେହି ପାର୍ସର ଭିତରେ ରହିପାରେ।
ଏକ୍ସେପସନ ଷ୍ଟାକ ଏବଂ ଅନୁରୋଧିତ 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 ରେ ବଦଳାଇବା ଏକ କନଭର୍ଟରକୁ ପ୍ରଭାବିତ କରିପାରେ, କିନ୍ତୁ ଏହାର ପ୍ରକ୍ସି କନଫିଗର କରେ ନାହିଁ। ଆବଶ୍ୟକ ସମ୍ବଳ ଏବଂ ସେମାନଙ୍କ ଲୋଡର ନୀତି ନିର୍ଣ୍ଣୟ କରନ୍ତୁ; ପ୍ରାରମ୍ଭିକ ପୃଷ୍ଠା କ୍ଲାଏଣ୍ଟରେ ପ୍ରମାଣୀକରଣ ଏହି ଦ୍ୱିତୀୟ କ୍ଲାଏଣ୍ଟକୁ ପ୍ରମାଣିତ କରେ ନାହିଁ।