NASıL YAPıLıR: Karşı Visual Basic. NET'te XML şeması XML parça doğrula

Makale çevirileri Makale çevirileri
Makale numarası: 317463 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, XmlValidatingReader ve XMLSchemaCollection nesneleri bir XML şeması karşı bir Genişletilebilir Biçimlendirme Dili (XML) parçası olarak doğrulamak için nasıl kullanılacağını açıklar.

XmlValidatingReaderXmlReader sınıfı uygular ve XML veri doğrulama için destek sağlar. XmlValidatingReader <a1>şemalar</a1> özelliğini bir XmlSchemaCollection önbelleğe şema dosyaları okuyucu bağlanır. XmlValidatingReadervalReader.ValidationType özelliğini okuyucu gerçekleştirmelisiniz doğrulama türünü belirtir. ValidationType.None için özelliği ayarlamak, do?rulamayan bir okuyucu oluşturma.

Yalnızca XML şema tanımlama dili (XSD) şemalar ve XML-Data Reduced (XDR) şemaları için XmlSchemaCollection ekleyebilirsiniz. Add yöntemi, şemalar'ı yüklemek için ad alanı URI ile kullanın. XML şemaları için normal ad alanı URı'SI şemadaki targetNamespace özelliğidir.

Gereksinimler

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri önerilmektedir:
  • Microsoft Visual Studio uyumlu bir Microsoft Windows işletim sistemi üzerine yüklenmiş .NET
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Visual Basic .NET
  • Temel XML standartları
  • XSD şemaları

Bir XSD şeması oluşturma

Aşağıdaki kodu C:\Books.xsd adlı yeni bir metin dosyasına yapıştırın:
<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>
				

Visual Basic .NET uygulaması oluşturma

  1. Yeni bir Visual Basic .NET Windows uygulaması.
  2. Button1 Form1'e sürükleyin. Özel üye değişkeni için Sınıf Form1 eklemek için aşağıdaki kodu yapıştırın:
    Dim m_success As Boolean
    					
  3. Doğrulama hataları XMLValidatingReader nesnesindeki başlatan bir valReader.ValidationEventHandler oluşturmak aşağıdaki alt yordamına yapıştırın:
    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
    						
    Not: veri türü tanımı (DTD içinde), the XML-Data Reduced (XDR) doğrulama hataları hakkında bilgi almak için bir olay işleyicisi eklemeniz gerekir şemayı ve XML şema tanımlama dili (XSD) şema. Olay işleyicisi, bir bağımsız değişken türü bu olaya ilişkin verileri içeren ValidationEventArgs alır.

    Geri araması işleyicisi ValidationEventArgs.Severity özelliği, bir <a0>XML</a0> örnek belge bir şemaya karşı doğrulanır güvence altına almak için kullanabilirsiniz. Önem özelliği sağlar, önemli bir hata gösterir (XmlSeverityType.Error için önem eşittir) bir doğrulama hatası ve bir doğrulama arasında ayrım yapmak herhangi bir şema bilgi kullanılabilir olduğunu belirten uyarı (XmlSeverityType.Warning için önem eşittir).
  4. Button1_Click</a2> olay yordamında aşağıdaki kodu yapıştırın:
            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. Çıkış penceresinde aşağıdaki ileti görüntülendiğinde, geçerli bir öğesi bir XML parçası olduğu:
    Completed validating xmlfragment
    					
Not: yalnızca bu tür bildirimleri ve üst düzey öğeleri XML şemasındaki XMLValidatingReader nesne doğrular. XML parçalarını, alt öğeler gibi yerel olarak düşünülür. En üst düzey öğe olarak XML parçaları bildirmek ve başvuru gerekli düzeyinde ayarlanmış XmlValidatingReader için XML parçaları doğrudan doğrulamasını geçirilemez.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
307379NASıL YAPıLıR: bir XML belgesi, DTD, XDR ve XSD Visual C# .NET kullanarak doğrula
313826BILGI: .NET Framework'de XML şemaları yol haritası
313651BILGI: .NET Framework'te XML yol haritası
Ek bilgi için bkz:, aşağıdaki MSDN Web sitesi:
System.XML ad alanı
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxml.asp

XML Web Hizmetleri
http://msdn.microsoft.com/xml

Özellikler

Makale numarası: 317463 - Last Review: 3 Eylül 2003 Çarşamba - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Anahtar Kelimeler: 
kbmt kbhowtomaster KB317463 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:317463

Geri Bildirim Ver

 

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