บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการใช้
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
- Visual Basic .NET Windows ใหม่ในการสร้างโปรแกรมประยุกต์
- ลากbutton1เมื่อต้องการ Form1 วางรหัสต่อไปนี้เพื่อเพิ่มตัวแปรสมาชิกส่วนตัวไปForm1 คลาส:
- วางกระบวนการย่อยต่อไปนี้เพื่อสร้างคำ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 ไม่พร้อมใช้งาน - วางรหัสต่อไปนี้ในการ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
- เมื่อข้อความต่อไปนี้จะแสดงในหน้าต่างการแสดงผล ส่วน XML มีองค์ประกอบที่ถูกต้อง:
Completed validating xmlfragment
หมายเหตุ:: แบบ
XMLValidatingReaderวัตถุ validates เฉพาะ declarations ชนิดและองค์ประกอบระดับบนสุดในแบบแผน XML xml fragments เช่นองค์ประกอบย่อย จะถือว่าเป็นการภายใน คุณไม่สามารถส่ง fragments XML ไปยัง
XmlValidatingReaderสำหรับโดยตรงการตรวจสอบจนกว่าคุณประกาศ XML fragments องค์ประกอบระดับบนสุดตาม และการตั้งค่าการอ้างอิงที่ระดับที่จำเป็นต้อง
สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความด้านล่างนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
307379
(http://support.microsoft.com/kb/307379/EN-US/
)
HOW TO: ตรวจสอบในเอกสาร XML โดยใช้ DTD, XDR หรือ XSD ใน Visual .NET c#
313826
(http://support.microsoft.com/kb/313826/EN-US/
)
ข้อมูล: ผังสำหรับ XML แบบแผนใน.NET Framework
313651
(http://support.microsoft.com/kb/313651/EN-US/
)
ข้อมูล: ผังสำหรับ XML ใน.NET Framework
สำหรับข้อมูลเพิ่มเติม ให้ดู MSDN ต่อไปนี้เว็บไซต์:
หมายเลขบทความ (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
| kbhowtomaster kbmt KB317463 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
317463
(http://support.microsoft.com/kb/317463/en-us/
)