Metody System.Xml.XmlReader.Create
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Create Většina přetížení zahrnuje settings
parametr, který přijímá XmlReaderSettings objekt. 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é objekt nepřijímá 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 Povoleno |
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 do Document. |
Data musí být správně formátovaná entita XML. | ConformanceLevel do Fragment. |
Data musí být ověřena proti DTD. | DtdProcessing na Parse ValidationType do DTD. |
Data musí být ověřena proti schématu XML. | ValidationType na Schema SchemasXmlSchemaSet pro ověření. Upozorňujeme, že XmlReader nepodporuje ověřování schématu XDR (XML-Data Reduced). |
Data musí být ověřena na vložené schématu XML. | ValidationType na Schema ValidationFlags do ProcessInlineSchema. |
Podpora typů | ValidationType na Schema SchemasXmlSchemaSet pro použití. |
XmlReader nepodporuje ověřování schématu XDR (XML-Data Reduced).
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 nastane první vstupně-výstupní operace s operací čtení, takže výjimky, ke kterým dojde při operaci čtení, budou vyvolány výjimky.
Bezpečnostní aspekty
Ve výchozím nastavení XmlReader se k otevírání prostředků používá 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á pro XmlUrlResolver přístup k souboru výchozí přihlašovací údaje.
// 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 zřetědí čtenáře a přidá 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