JAK: Ověřit fragmenty XML proti schématu XML v jazyce Visual Basic.NET

Překlady článku Překlady článku
ID článku: 317463 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento podrobný článek popisuje způsob použití Třídy XmlValidatingReader a Kolekci XMLSchemaCollection objekty k ověření fragment Extensible Markup Language (XML) proti schématu XML.

Třídy XmlValidatingReader implementuje XmlReader Třída a poskytuje podporu pro ověření dat XML. Na Schémata Vlastnost Třídy XmlValidatingReader čtecí zařízení se připojí k soubory schématu do mezipaměti Kolekci XmlSchemaCollection. Na ValidationType Vlastnost Třídy XmlValidatingReader Určuje typ ověření, které má provést čtenáře. Pokud Nastavte vlastnost na ValidationType.None, vytvořit nonvalidating reader.

Můžete přidat pouze Jazyk definici schématu XML (XSD) schémata a schémata XDR (XML-Data snížena) k Kolekci XmlSchemaCollection. Použít Přidat Metoda k oboru názvů URI schémat načtěte. Pro schémata XML Typické obor názvů URI je Cílový obor názvů Vlastnost schématu.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťové infrastruktury a aktualizace service Pack, které budete potřebovat:
  • Microsoft Visual Studio.ČISTÝ instalovaný na kompatibilní Operační systém Microsoft Windows
Tento článek předpokládá, že jste obeznámeni s následujícími témata:
  • Visual Basic.NET
  • Základní standardy XML
  • Schémata XSD

Vytvořit schéma XSD

Vložte následující kód do nového textového souboru s názvem C:\Books.xsd:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:bookstore-schema" elementFormDefault="qualified" targetNamespace="urn:bookstore-schema">
	<xsd:element name="bookstore" type="bookstoreType" />
	<xsd:element name="comment" type="xsd:string" />
	<xsd:element name="author" type="authorName"/>
	<xsd:complexType name="authorName">
		<xsd:sequence>
			<xsd:element name="first-name" type="xsd:string" />
			<xsd:element name="last-name" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="bookstoreType">
		<xsd:sequence maxOccurs="unbounded">
			<xsd:element name="book" type="bookType" />
			<xsd:element ref="comment" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="bookType">
		<xsd:sequence>
			<xsd:element name="title" type="xsd:string" />
			<xsd:element ref="author" />
			<xsd:element name="price" type="xsd:decimal" />
		</xsd:sequence>
		<xsd:attribute name="genre" type="xsd:string" />
	</xsd:complexType>
	
</xsd:schema>
				

Vytvořte v jazyce Visual Basic.NET aplikací

  1. Vytvoření nového jazyka Visual Basic.SÍŤ Windows aplikace.
  2. Přetažení Button1 do formuláře Form1. Vložte následující kód přidejte soukromý člen Proměnná Třída Formulář1.:
    Dim m_success As Boolean
    					
  3. Vložit dílčí postup vytváření ValidationEventHandler který vyvolává chyby ověření platnosti v Třídy XMLValidatingReader objekt:
    Public Sub ValidationEventHandle(ByVal sender As Object, ByVal args As ValidationEventArgs)
            m_success = False
            Console.WriteLine((ControlChars.CrLf & ControlChars.Tab & "Validation error: " & args.Message))
        End Sub 'ValidationEventHandle
    						
    POZNÁMKA:: Je nutné zahrnout zpracování události dostávat informace o chyby ověření platnosti v Data typu definice (DTD), XML Data snížena (XDR) schéma a schéma XML definice schématu jazyka (XSD). Obslužná rutina události přijímá argument typu ValidationEventArgs údaje vztahující se k této události, která obsahuje.

    Zpětné volání Popisovač lze použít ValidationEventArgs.Severity Vlastnost zaručit, že je ověřena instanci dokumentu XML proti schématu. Na Závažnost vlastnost umožňuje rozlišovat mezi (chyba) ověřeníZávažnost je rovno XmlSeverityType.Error) označující závažné chyby a upozornění (ověřeníZávažnost je rovno XmlSeverityType.Warning) označující, že nejsou žádné informace o schématu k dispozici.
  4. Vložte následující kód v Button1_Click procedura události:
            Dim reader As XmlValidatingReader = Nothing
            Dim myschema As New XmlSchemaCollection()
    
            Try
                'Create the XML fragment to be parsed.
                Dim xmlFrag As String = "<author  xmlns='urn:bookstore-schema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" & _
                                "<first-name>Herman</first-name>" & _
                               "<last-name>Melville</last-name>" & _
                             "</author>"
    
                'Create the XmlParserContext.
                Dim context As New XmlParserContext(Nothing, Nothing, "", XmlSpace.None)
               
                'Implement the reader. 
                reader = New XmlValidatingReader(xmlFrag, XmlNodeType.Element, context)
                'Add the schema.
                myschema.Add("urn:bookstore-schema", "Books.xsd")
    
                'Set the schema type and add the schema to the reader.
                reader.ValidationType = ValidationType.Schema
                reader.Schemas.Add(myschema)
    
                'Add the handler to raise the validation event.
                AddHandler reader.ValidationEventHandler, AddressOf Me.ValidationEventHandle
    
                While reader.Read
    
                End While
                Console.WriteLine("Completed validating xmlfragment")
    
            Catch XmlExp As XmlException
                Console.WriteLine(XmlExp.Message)
            Catch XmlSchExp As XmlSchemaException
                Console.WriteLine(XmlSchExp.Message)
            Catch GenExp As Exception
                Console.WriteLine(GenExp.Message)
            End Try
        End Sub
    					
  5. Po zobrazení následující zprávy ve výstupu okno XML fragment je platný element:
    Completed validating xmlfragment
    					
POZNÁMKA:: Na Třídy XMLValidatingReader objekt se ověřuje pouze typ prohlášení a nejvyšší úrovně prvky ve schématu XML. Fragmenty XML, jako jsou například dílčí prvky, jsou považovány za Chcete-li být místní. Nemůžete předat fragmenty XML k Třídy XmlValidatingReader pro přímé ověření, pokud deklarujete fragmenty XML jako prvky nejvyšší úrovně a nastavte odkaz na požadované úrovni.

Odkazy

Pro další informace získáte klepnutím na následující čísla článků v zobrazení Znalostní báze Microsoft Knowledge Base:
307379 JAK: Dokument XML ověřit pomocí DTD, XDR nebo XSD v aplikaci Visual C#.NET
313826 INFO: Návod pro schémata XML v.NET Framework
313651 INFO: Cestovní mapy XML v.NET Framework
Další informace naleznete na následujícím webu MSDN Webové servery:
Obor názvů System.XML
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/HTML/frlrfsystemxml.asp

Webové služby XML
http://msdn.microsoft.com/XML

Vlastnosti

ID článku: 317463 - Poslední aktualizace: 19. května 2011 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Klíčová slova: 
kbhowtomaster kbmt KB317463 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:317463

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com