System.Xml.XmlTextReader – třída

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Poznámka:

Doporučujeme vytvářet XmlReader instance pomocí XmlReader.Create metody, abyste mohli využívat nové funkce.

XmlTextReader poskytuje přístup jen pro čtení ke streamu dat XML. Aktuální uzel odkazuje na uzel, na kterém je čtenář umístěn. Čtečka je pokročilá pomocí některé z metod čtení a vlastností odrážejí hodnotu aktuálního uzlu.

Tato třída implementuje XmlReader a odpovídá jazyku XML (Extensible Markup Language) W3C 1.0 a oborům názvů v doporučeníCH XML. XmlTextReader poskytuje následující funkce:

  • Vynucuje pravidla ve formátu XML ve správném formátu.

  • XmlTextReader neposkytuje ověření dat.

  • Kontroluje, že DocumentType uzly jsou správně vytvořené. XmlTextReader zkontroluje DTD pro správné formování, ale neověřuje použití DTD.

  • Pro uzly, kde NodeType je , je vrácen jeden prázdný EntityReference uzel (to znamená Value vlastnost je String.EmptyXmlNodeType.EntityReference).

Poznámka:

Skutečné deklarace entit v DTD se nazývají Entity uzly. Když odkazujete na tyto uzly ve vašich datech, označují EntityReference se jako uzly.

  • Nerozbaluje výchozí atributy.

XmlTextReader Vzhledem k tomu, že neprovádí dodatečné kontroly potřebné pro ověření dat, poskytuje rychlý analyzátor dobře formátované.

K ověření dat použijte ověřování XmlReader.

Chcete-li číst data XML z aplikace XmlDocument, použijte XmlNodeReader.

XmlTextReaderXmlException vyvolá chybu analýzy XML. Po vyvolání výjimky není stav čtenáře předvídatelný. Například hlášený typ uzlu se může lišit od skutečného typu uzlu aktuálního uzlu. ReadState Pomocí vlastnosti zkontrolujte, jestli je čtenář v chybovém stavu.

Bezpečnostní aspekty

Při používání XmlTextReader třídy je potřeba vzít v úvahu následující skutečnosti.

  • Výjimky vyvolané informacemi XmlTextReader o cestě, které nechcete v aplikaci bublinovat. Vaše aplikace musí zachytit výjimky a odpovídajícím způsobem je zpracovat.

  • Zpracování DTD je ve výchozím nastavení povolené. Zakažte zpracování DTD, pokud máte obavy o problémy s odepřením služeb nebo pokud pracujete s nedůvěryhodnými zdroji. DtdProcessing Nastavte vlastnost tak, aby Prohibit se zakázalo zpracování DTD.

    Pokud máte povolené zpracování DTD, můžete použít XmlSecureResolver omezení prostředků, ke kterým XmlTextReader má přístup. Můžete také navrhnout aplikaci tak, aby zpracování XML bylo paměť a čas omezené. Můžete například nakonfigurovat limity časového limitu v aplikaci ASP.NET.

  • Data XML můžou obsahovat odkazy na externí prostředky, jako je soubor DTD. Ve výchozím nastavení se externí prostředky překládají pomocí objektu XmlUrlResolver bez přihlašovacích údajů uživatele. Můžete to dále zabezpečit jedním z následujících způsobů:

  • Data XML můžou obsahovat velký počet atributů, deklarací oboru názvů, vnořených elementů atd., které vyžadují značné množství času ke zpracování. Chcete-li omezit velikost vstupu, který je odeslán do XmlTextReader, vytvořte vlastní IStream implementace a zadejte jej XmlTextReader.

  • Metodu ReadValueChunk lze použít ke zpracování velkých datových proudů. Tato metoda načte malý počet znaků najednou místo přidělení jednoho řetězce pro celou hodnotu.

  • Ve výchozím nastavení nejsou obecné entity rozbalené. Obecné entity se při volání ResolveEntity metody rozbalí.