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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Následující.Jsou oborů názvů knihovny tříd NET Framework zmíněné v tomto článku: System.XML Pro aplikace Microsoft Visual C#.NET verze tohoto článek naleznete v tématu 318504.

V TOMTO ÚKOLU

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.

back to the top

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
back to the top

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>				
back to the top

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.

back to the top
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: back to the top

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 317463 - Poslední kontrola: 12/07/2015 08:53:25 - Revize: 4.0

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbhowtomaster kbmt KB317463 KbMtcs
Váš názor