Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Většina Create přetížení zahrnuje parametr settings, který přijímá objekt XmlReaderSettings. Tento objekt můžete použít k:
- Určete, které funkce chcete u objektu XmlReader podporovat.
- Znovu použijte XmlReaderSettings objekt k vytvoření více čteček. Stejná nastavení můžete použít k vytvoření více čtenářů se stejnou funkcí. Nebo můžete upravit nastavení XmlReaderSettings instance a vytvořit novou čtečku s jinou sadou funkcí.
- Přidání funkcí do existující čtečky XML Metoda Create může přijmout jiný XmlReader objekt. Základní XmlReader objekt může být uživatelem definovaný čtenář, XmlTextReader objekt nebo jiná XmlReader instance, do které chcete přidat další funkce.
- Využijte plnou výhodu funkcí, jako je lepší kontrola shody a dodržování předpisů doporučení XML 1.0 (čtvrté edice), které jsou k dispozici pouze u XmlReader objektů vytvořených statickou Create metodou.
Poznámka:
I když .NET zahrnuje konkrétní implementace XmlReader třídy, například XmlTextReader, XmlNodeReadera XmlValidatingReader třídy, doporučujeme vytvořit XmlReader instance pomocí Create metody.
Výchozí nastavení
Pokud použijete Create přetížení, které nepřijímá objekt XmlReaderSettings, použijí se následující výchozí nastavení čtečky.
| Nastavení | Výchozí |
|---|---|
| CheckCharacters | true |
| ConformanceLevel | ConformanceLevel.Document |
| IgnoreComments | false |
| IgnoreProcessingInstructions | false |
| IgnoreWhitespace | false |
| LineNumberOffset | 0 |
| LinePositionOffset | 0 |
| NameTable | null |
| DtdProcessing | Prohibit |
| Schemas | Prázdný XmlSchemaSet objekt |
| ValidationFlags | ProcessIdentityConstraints povolený |
| ValidationType | None |
| XmlResolver | null |
Nastavení pro běžné scénáře
Tady jsou XmlReaderSettings vlastnosti, které byste měli nastavit pro některé typické scénáře čtečky XML.
| Požadavek | Nastavit |
|---|---|
| Data musí být dokument XML ve správném formátu. | ConformanceLevel na Document. |
| Data musí být dobře utvořená a parsovaná entita XML. | ConformanceLevel na Fragment. |
| Data musí být ověřena proti DTD. |
DtdProcessing na Parse ValidationType na DTD. |
| Data musí být ověřena proti schématu XML. |
ValidationType na Schema Schemas na XmlSchemaSet k použití pro ověření. Upozorňujeme, že XmlReader nepodporuje XML-Data omezené ověřování schématu (XDR). |
| Data musí být ověřeno podle vnořeného XML schématu. |
ValidationType na Schema ValidationFlags na ProcessInlineSchema. |
| Podpora typů |
ValidationType na Schema Schemas k XmlSchemaSet k použití. |
XmlReader nepodporuje XML-Data omezené ověřování schématu (XDR).
Asynchronní programování
V synchronním režimu Create metoda čte první blok dat z vyrovnávací paměti souboru, streamu nebo čtečky textu. Pokud dojde k selhání vstupně-výstupní operace, může dojít k výjimce. V asynchronním režimu dochází k první vstupně-výstupní operaci prostřednictvím operace čtení, takže výjimky, které nastanou, budou vyvolány v okamžiku této operace čtení.
Bezpečnostní aspekty
Ve výchozím nastavení používá XmlReader k otevírání prostředků XmlUrlResolver objekt bez přihlašovacích údajů uživatele. To znamená, že ve výchozím nastavení má čtenář XML přístup k libovolnému umístění, které nevyžaduje přihlašovací údaje. XmlResolver Pomocí vlastnosti můžete řídit přístup k prostředkům:
- Nastavte XmlResolver na objekt, XmlSecureResolver který omezí prostředky, ke kterým má čtenář XML přístup, nebo...
- Nastaví XmlResolver se tak, aby
nullčtečka XML nemohla otevírat externí prostředky.
Příklady
Tento příklad vytvoří čtečku XML, která odstraní nevýznamné prázdné znaky, odstraní komentáře a provede kontrolu shody na úrovni fragmentu.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
Následující příklad používá výchozí přihlašovací údaje pro přístup k souboru pomocí XmlUrlResolver.
// Set the reader settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
' Set the reader settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.IgnoreComments = true
settings.IgnoreProcessingInstructions = true
settings.IgnoreWhitespace = true
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("http://ServerName/data/books.xml", settings);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("http://ServerName/data/books.xml", settings)
Následující kód zabalí instanci čtenáře do jiného čtenáře.
XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);
Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)
Tento příklad instruuje čtenáře, aby přidali ověření schématu DTD a XML.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings); // XML Schema Validation
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings) ' XML Schema Validation