HOW TO: การตรวจสอบ Fragments XML กับแบบแผนการ XML ใน Visual Basic .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 317463 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการใช้XmlValidatingReaderและXMLSchemaCollectionวัตถุเพื่อตรวจสอบการมีส่วน Extensible Markup ภาษา (XML) กับ XML schema

XmlValidatingReaderใช้นั้นXmlReaderคลาส และให้การสนับสนุนสำหรับการตรวจสอบข้อมูล XML กระบวนการschema ที่คุณสมบัติของXmlValidatingReaderการเชื่อมต่อเครื่องอ่านแฟ้ม schema แคในการXmlSchemaCollection. กระบวนการValidationTypeคุณสมบัติของXmlValidatingReaderระบุชนิดของการตรวจสอบเครื่องอ่านควรดำเนินการ ถ้าคุณตั้งค่าคุณสมบัติValidationType.Noneคุณสร้างตัวอ่าน nonvalidating

คุณสามารถเพียงเพิ่ม schema ที่ภาษาในคำนิยามเค้าร่าง XML (XSD) และ schema ที่ลดการข้อมูล XML (XDR) ไปยังXmlSchemaCollection. ใช้แบบaddวิธีการ มี namespace URI โหลด schema ที่ XML schema ที่ namespace ที่โดยปกติ URI มีtargetNamespaceคุณสมบัติของแบบแผน

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Visual Studio .NET ติดตั้งอยู่บนระบบปฏิบัติการ Microsoft Windows เข้ากันได้
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • visual Basic .NET
  • มาตรฐาน XML พื้นฐาน
  • schema ที่ xsd

สร้างแบบแผนการ XSD

วางรหัสต่อไปนี้ในแฟ้มข้อความใหม่ที่ชื่อ 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>
				

สร้างโปรแกรมประยุกต์.NET ของ Visual Basic

  1. Visual Basic .NET Windows ใหม่ในการสร้างโปรแกรมประยุกต์
  2. ลากbutton1เมื่อต้องการ Form1 วางรหัสต่อไปนี้เพื่อเพิ่มตัวแปรสมาชิกส่วนตัวไปForm1 คลาส:
    Dim m_success As Boolean
    					
  3. วางกระบวนการย่อยต่อไปนี้เพื่อสร้างคำValidationEventHandlerที่ raises ข้อผิดพลาดในการตรวจสอบในนั้นXMLValidatingReaderวัตถุ:
    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
    						
    หมายเหตุ:: คุณต้องมีตัวจัดการเหตุการณ์การรับข้อมูลเกี่ยวกับข้อผิดพลาดในการตรวจสอบในข้อมูลชนิดข้อกำหนด (DTD), ข้อมูล XML หัก (XDR) แบบแผน และแบบ XML schema คำจำกัดความภาษา (XSD) แผน อาร์กิวเมนต์ชนิดของการได้รับการจัดการเหตุการณ์ValidationEventArgsที่ประกอบด้วยข้อมูลที่เกี่ยวข้องกับเหตุการณ์นี้

    ตัวจัดการการเรียกกลับที่สามารถใช้ได้ValidationEventArgs.Severityคุณสมบัติการรับประกันว่า อินสแตนซ์เอกสาร XML ไม่ผ่านการตรวจสอบกับ schema กระบวนการความรุนแรงคุณสมบัติช่วยให้คุณสามารถแยกความแตกต่างระหว่าง(ข้อผิดพลาดการตรวจสอบความรุนแรงเท่ากับXmlSeverityType.Error) ที่บ่งชี้ว่า มีข้อผิดพลาดร้ายแรง และ(การแจ้งเตือนการตรวจสอบความรุนแรงเท่ากับXmlSeverityType.Warning) ที่บ่งชี้ว่า ไม่มีข้อมูล schema ไม่พร้อมใช้งาน
  4. วางรหัสต่อไปนี้ในการButton1_Clickกระบวนงานเหตุการณ์:
            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. เมื่อข้อความต่อไปนี้จะแสดงในหน้าต่างการแสดงผล ส่วน XML มีองค์ประกอบที่ถูกต้อง:
    Completed validating xmlfragment
    					
หมายเหตุ:: แบบXMLValidatingReaderวัตถุ validates เฉพาะ declarations ชนิดและองค์ประกอบระดับบนสุดในแบบแผน XML xml fragments เช่นองค์ประกอบย่อย จะถือว่าเป็นการภายใน คุณไม่สามารถส่ง fragments XML ไปยังXmlValidatingReaderสำหรับโดยตรงการตรวจสอบจนกว่าคุณประกาศ XML fragments องค์ประกอบระดับบนสุดตาม และการตั้งค่าการอ้างอิงที่ระดับที่จำเป็นต้อง

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความด้านล่างนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
307379HOW TO: ตรวจสอบในเอกสาร XML โดยใช้ DTD, XDR หรือ XSD ใน Visual .NET c#
313826ข้อมูล: ผังสำหรับ XML แบบแผนใน.NET Framework
313651ข้อมูล: ผังสำหรับ XML ใน.NET Framework
สำหรับข้อมูลเพิ่มเติม ให้ดู MSDN ต่อไปนี้เว็บไซต์:
System.Xml Namespace
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxml.asp

บริการเว็บ xml
http://msdn.microsoft.com/xml

คุณสมบัติ

หมายเลขบทความ (Article ID): 317463 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 3.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
Keywords: 
kbhowtomaster kbmt KB317463 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:317463

ให้ข้อเสนอแนะ

 

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