ส่ง XML ที่ดาวน์โหลดแล้วให้ .NET XmlReader เป็นสตรีม
ส่งสตรีมการตอบกลับที่ผ่านพร็อกซี่ให้ตัวแยกวิเคราะห์ XML แทนที่จะให้มันไปดึง URL เดิมอีกครั้ง
ไคลเอนต์ HTTP ดาวน์โหลด XML ผ่านพร็อกซี่ที่ถูกต้อง บรรทัดถัดไปสร้างตัวอ่าน XML จาก URL เดิม บรรทัดนั้นเริ่มการดึงอีกรอบแทนที่จะแยกวิเคราะห์ข้อมูลที่ดาวน์โหลดมา
สำหรับ ไคลเอนต์ที่กำหนดค่าเส้นทางที่ต้องการไว้แล้ว ให้ส่งสตรีมการตอบกลับของไคลเอนต์นั้นให้ตัวแยกวิเคราะห์:
using var response = await client.GetAsync(documentUri);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};
using var reader = XmlReader.Create(stream, settings, documentUri.AbsoluteUri);
var document = XDocument.Load(reader);
เนมสเปซที่เกี่ยวข้องคือ System.Xml และ System.Xml.Linq ตัวอย่างนี้ปิดการประมวลผล DTD และการแก้ไขภายนอกโดยเจตนา ไม่ใช่วิธีดึงเอนทิตีภายนอกใด ๆ ผ่านไคลเอนต์เดียวกัน
URI ฐานรักษาเมตาดาต้าตำแหน่งของเอกสาร หากเวิร์กโฟลว์การแยกวิเคราะห์หรือตรวจสอบที่ได้รับอนุมัติดึงสคีมาภายนอกหรือการพึ่งพาอื่นจริง การดึงเหล่านั้นต้องมีตัวแก้ไขและรูปแบบการกำหนดเส้นทางที่ชัดเจนของตนเอง
อย่าวินิจฉัยความล้มเหลวของเครือข่ายครั้งที่สองด้วยการเปลี่ยนรหัสผ่านบนไคลเอนต์แรกที่สำเร็จ ตรวจสอบว่าตัวแยกวิเคราะห์ได้รับสตรีมหรือ URL แล้วติดตามทรัพยากรเพิ่มเติมแยกต่างหาก