Udostępnij za pośrednictwem


XmlSchemaValidator.GetExpectedParticles Metoda

Definicja

Zwraca oczekiwane cząstki w kontekście bieżącego elementu.

public:
 cli::array <System::Xml::Schema::XmlSchemaParticle ^> ^ GetExpectedParticles();
public System.Xml.Schema.XmlSchemaParticle[] GetExpectedParticles ();
member this.GetExpectedParticles : unit -> System.Xml.Schema.XmlSchemaParticle[]
Public Function GetExpectedParticles () As XmlSchemaParticle()

Zwraca

XmlSchemaParticle[]

Tablica XmlSchemaParticle obiektów lub pusta tablica, jeśli nie ma oczekiwanych cząstek.

Uwagi

Prawidłowe cząstki, które mogą być zwracane przez metodę GetExpectedParticles , to wystąpienia XmlSchemaElement klas i XmlSchemaAny .

Gdy kompositor modelu zawartości jest elementem xs:sequence, zwracana jest tylko następna cząstka w sekwencji. Jeśli kompositor modelu zawartości jest elementem xs:all xs:choicelub , zwracane są wszystkie prawidłowe cząstki, które mogą podążać za bieżącym kontekstem elementu.

Na przykład w schemacie XML Schema Definition Language (XSD) i dokumencie XML, który następuje po zweryfikowaniu book elementu, book element jest bieżącym kontekstem elementu. Metoda GetExpectedParticles zwraca tablicę zawierającą pojedynczy XmlSchemaElement obiekt reprezentujący title element. Gdy kontekst weryfikacji jest elementem title , GetExpectedParticles metoda zwraca pustą tablicę. GetExpectedParticles Jeśli metoda jest wywoływana po zweryfikowaniu title elementu, ale przed description zweryfikowaniem elementu zwraca tablicę zawierającą pojedynczy XmlSchemaElement obiekt reprezentujący description element. GetExpectedParticles Jeśli metoda jest wywoływana po zweryfikowaniu description elementu, zwraca tablicę zawierającą pojedynczy XmlSchemaAny obiekt reprezentujący symbol wieloznaczny.

Dim reader As XmlReader =  XmlReader.Create("input.xml")   

Dim schemaSet As XmlSchemaSet =  New XmlSchemaSet()   
schemaSet.Add(Nothing, "schema.xsd")  
Dim manager As XmlNamespaceManager =  New XmlNamespaceManager(reader.NameTable)   

Dim validator As XmlSchemaValidator =  New XmlSchemaValidator(reader.NameTable,schemaSet,manager,XmlSchemaValidationFlags.None)  
validator.Initialize()  

validator.ValidateElement("book", "", Nothing)  
validator.GetUnspecifiedDefaultAttributes(New ArrayList())  
validator.ValidateEndOfAttributes(Nothing)  
For Each element As XmlSchemaElement In validator.GetExpectedParticles()  
    Console.WriteLine(element.Name)  
Next  

validator.ValidateElement("title", "", Nothing)  
validator.GetUnspecifiedDefaultAttributes(New ArrayList())  
validator.ValidateEndOfAttributes(Nothing)  
For Each element As XmlSchemaElement In validator.GetExpectedParticles()  
    Console.WriteLine(element.Name)  
Next  
validator.ValidateEndElement(Nothing)  

For Each element As XmlSchemaElement In validator.GetExpectedParticles()  
    Console.WriteLine(element.Name)  
Next  

validator.ValidateElement("description", "", Nothing)  
validator.GetUnspecifiedDefaultAttributes(New ArrayList())  
validator.ValidateEndOfAttributes(Nothing)  
validator.ValidateEndElement(Nothing)  

For Each particle As XmlSchemaParticle In validator.GetExpectedParticles()  
    Console.WriteLine(particle.GetType())  
Next  

validator.ValidateElement("namespace", "", Nothing)  
validator.GetUnspecifiedDefaultAttributes(New ArrayList())  
validator.ValidateEndOfAttributes(Nothing)  
validator.ValidateEndElement(Nothing)  

validator.ValidateEndElement(Nothing)  
XmlReader reader = XmlReader.Create("input.xml");  

XmlSchemaSet schemaSet = new XmlSchemaSet();  
schemaSet.Add(null, "schema.xsd");  
XmlNamespaceManager manager = new XmlNamespaceManager(reader.NameTable);  

XmlSchemaValidator validator = new XmlSchemaValidator(reader.NameTable, schemaSet, manager, XmlSchemaValidationFlags.None);  
validator.Initialize();  

validator.ValidateElement("book", "", null);  

validator.GetUnspecifiedDefaultAttributes(new ArrayList());  
validator.ValidateEndOfAttributes(null);  
foreach (XmlSchemaElement element in validator.GetExpectedParticles())  
{  
    Console.WriteLine(element.Name);  
}  

validator.ValidateElement("title", "", null);  
validator.GetUnspecifiedDefaultAttributes(new ArrayList());  
validator.ValidateEndOfAttributes(null);  
foreach (XmlSchemaElement element in validator.GetExpectedParticles())  
{  
    Console.WriteLine(element.Name);  
}  
validator.ValidateEndElement(null);  

foreach (XmlSchemaElement element in validator.GetExpectedParticles())  
{  
    Console.WriteLine(element.Name);  
}  

validator.ValidateElement("description", "", null);  
validator.GetUnspecifiedDefaultAttributes(new ArrayList());  
validator.ValidateEndOfAttributes(null);  
validator.ValidateEndElement(null);  

foreach (XmlSchemaParticle particle in validator.GetExpectedParticles())  
{  
    Console.WriteLine(particle.GetType());  
}  

validator.ValidateElement("namespace", "", null);  
validator.GetUnspecifiedDefaultAttributes(new ArrayList());  
validator.ValidateEndOfAttributes(null);  
validator.ValidateEndElement(null);  

validator.ValidateEndElement(null);  

W przykładzie jako dane wejściowe przyjmuje następujący kod XML.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="book">

<xs:complexType>

<xs:sequence>

<xs:element name="title" type="xs:string" />

<xs:element name="description" type="xs:string" />

<xs:any processContents ="lax"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

W przykładzie jako dane wejściowe przyjmuje następujący schemat XSD.

<book>

<title>My Book</title>

<description>My Book's Description</description>

<namespace>System.Xml.Schema</namespace>

</book>

Dotyczy

Zobacz też