XmlReaderSettings.Schemas Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja a XmlSchemaSet sémaérvényesítés során használni kívánt elemet.
public:
property System::Xml::Schema::XmlSchemaSet ^ Schemas { System::Xml::Schema::XmlSchemaSet ^ get(); void set(System::Xml::Schema::XmlSchemaSet ^ value); };
public System.Xml.Schema.XmlSchemaSet Schemas { get; set; }
member this.Schemas : System.Xml.Schema.XmlSchemaSet with get, set
Public Property Schemas As XmlSchemaSet
Tulajdonság értéke
A XmlSchemaSet séma érvényesítésekor használni kívánt érték. Az alapértelmezett érték egy üres XmlSchemaSet objektum.
Példák
Az alábbi példa az XmlReaderSettings objektum és a XmlReader.Create metódus használatával társít egy sémát egy XML-dokumentumhoz. A séma hozzá lesz adva az Schemas objektum tulajdonságához XmlReaderSettings . A tulajdonság értéke Schemas objektum XmlSchemaSet . A séma annak ellenőrzésére szolgál, hogy az XML-dokumentum megfelel-e a séma tartalommodelljének. A sémaérvényesítési hibákat és figyelmeztetéseket az ValidationEventHandler objektumban XmlReaderSettings megadottak kezelik.
using System;
using System.Xml;
using System.Xml.Schema;
class XmlSchemaSetExample
{
static void Main()
{
XmlReaderSettings booksSettings = new XmlReaderSettings();
booksSettings.Schemas.Add("http://www.contoso.com/books", "books.xsd");
booksSettings.ValidationType = ValidationType.Schema;
booksSettings.ValidationEventHandler += new ValidationEventHandler(booksSettingsValidationEventHandler);
XmlReader books = XmlReader.Create("books.xml", booksSettings);
while (books.Read()) { }
}
static void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)
{
Console.Write("WARNING: ");
Console.WriteLine(e.Message);
}
else if (e.Severity == XmlSeverityType.Error)
{
Console.Write("ERROR: ");
Console.WriteLine(e.Message);
}
}
}
Imports System.Xml
Imports System.Xml.Schema
Class XmlSchemaSetExample
Shared Sub Main()
Dim booksSettings As XmlReaderSettings = New XmlReaderSettings()
booksSettings.Schemas.Add("http://www.contoso.com/books", "books.xsd")
booksSettings.ValidationType = ValidationType.Schema
AddHandler booksSettings.ValidationEventHandler, New ValidationEventHandler(AddressOf booksSettingsValidationEventHandler)
Dim books As XmlReader = XmlReader.Create("books.xml", booksSettings)
While books.Read()
End While
End Sub
Shared Sub booksSettingsValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
If e.Severity = XmlSeverityType.Warning Then
Console.Write("WARNING: ")
Console.WriteLine(e.Message)
ElseIf e.Severity = XmlSeverityType.Error Then
Console.Write("ERROR: ")
Console.WriteLine(e.Message)
End If
End Sub
End Class
A példa a books.xml fájlt használja bemenetként.
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
A példa a books.xsd fájlt használja bemenetként.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:unsignedShort" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Megjegyzések
Ez a cikk a Schemas tulajdonságra vonatkozik.
Important
- Ne használjon ismeretlen vagy nem megbízható forrásokból vagy helyekről származó sémákat. Ez veszélyezteti a kód biztonságát.
- Az XML-sémák (beleértve a beágyazott sémákat) eredendően ki vannak téve a szolgáltatásmegtagadási támadásoknak; nem fogadják el őket nem megbízható helyzetekben.
- A sémaérvényesítési hibaüzenetek és kivételek bizalmas információkat tehetnek közzé a tartalommodellről vagy a sémafájl URI-elérési útjairól. Ügyeljen arra, hogy ne tegye közzé ezeket az információkat nem megbízható hívóknak.
- További információkért tekintse meg a "Biztonsági szempontok" című szakaszt.
Az XmlSchemaSet osztály csak az XML-sémadefiníciós (XSD) sémákat támogatja. XmlReader A Create metódus által létrehozott példányok nem konfigurálhatók a csökkentett XML-adat (XDR) sémaérvényesítés engedélyezéséhez.
Biztonsági megfontolások
Ne használjon ismeretlen vagy nem megbízható forrásokból származó sémákat. Ha így tesz, azzal veszélyezteti a kód biztonságát. Az XmlUrlResolver osztály alapértelmezés szerint a külső sémák feloldására szolgál. A séma belefoglalási, importálási és újradefiniálási elemeinek feloldásának letiltásához állítsa be a XmlSchemaSet.XmlResolver tulajdonságot
nullértékre.Az osztály használatából XmlSchemaSet eredő kivételek, például az XmlSchemaException osztály olyan bizalmas információkat tartalmazhatnak, amelyeket nem megbízható helyzetekben nem szabad közzétenni. Egy tulajdonság SourceUri például a XmlSchemaException kivételt okozó sémafájl URI-elérési útját adja vissza. Nem megbízható helyzetekben a SourceUri tulajdonságot nem szabad kitenni. A kivételeket megfelelően kell kezelni, hogy ezek a bizalmas információk ne legyenek közzétéve nem megbízható helyzetekben.