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í
- Vytvoření nového jazyka Visual Basic.SÍŤ Windows
aplikace.
- 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.:
- 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. - 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
- 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.
Pro další
informace získáte klepnutím na následující čísla článků v zobrazení
Znalostní báze Microsoft Knowledge Base:
307379
(http://support.microsoft.com/kb/307379/EN-US/
)
JAK: Dokument XML ověřit pomocí DTD, XDR nebo XSD v aplikaci Visual C#.NET
313826
(http://support.microsoft.com/kb/313826/EN-US/
)
INFO: Návod pro schémata XML v.NET Framework
313651
(http://support.microsoft.com/kb/313651/EN-US/
)
INFO: Cestovní mapy XML v.NET Framework
Další informace naleznete na následujícím webu MSDN
Webové servery:
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
| kbhowtomaster kbmt KB317463 KbMtcs |
Strojově přeložený článekDů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
(http://support.microsoft.com/kb/317463/en-us/
)