วิธีการตรวจสอบเอกสาร XML โดยใช้ DTD, XDR หรือ XSD ใน Visual C# .NET

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

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

สรุป

บทความนี้สาธิตวิธีการใช้คำนิยามชนิดเอกสาร (DTD) แบบแผน Microsoft ข้อมูล XML ลด (XDR) หรือแบบแผน XML Schema คำจำกัดความภาษา (XSD) ไปยังเอกสาร Extensible Markup Language (XML) บทความนี้ยังอธิบายวิธีการใช้คลาสXmlValidatingReaderเพื่อตรวจสอบเอกสาร XML กับไวยากรณ์ที่ระบุ ตลอดจนวิธีการใช้คลาสXmlSchemaCollectionเพื่อแคช schema ที่ในหน่วยความจำเพื่อที่จะตรวจสอบ XML ที่ปรับให้เหมาะสม

เอกสาร XML ประกอบด้วยองค์ประกอบและแอตทริบิวต์ จะให้วิธียืดหยุ่น และมีประสิทธิภาพในการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมประยุกต์และองค์กร เมื่อต้องการระบุที่อนุญาตของโครงสร้างและเนื้อหาของเอกสาร XML คุณสามารถเขียนแบบ DTD แบบแผน XDR หรือ schema เป็น XSD แบบแผน XSD เป็นวิธีการที่คุณต้องการระบุไวยากรณ์ XML ใน Microsoft .NET Framework แต่ยังรองรับการสนับสนุนแบบแผน DTD และ XDR

ความต้องการ

บทความนี้อนุมานที่คุณคุ้นเคยกับหัวข้อต่อไปนี้:
  • Microsoft Visual C# .NET หรือ Microsoft Visual BasicNETsyntax
  • แนวคิดของ XML รวมทั้งตรวจสอบการตัดสินค้าจากคลัง

สร้างเอกสาร XML

  1. เริ่ม Visual Studio .NET
  2. สร้างแฟ้ม XML ใหม่บนเครื่องคอมพิวเตอร์ของคุณ
  3. เพิ่มข้อมูลต่อไปนี้ลงในเอกสาร XML เพื่อแสดง aproduct ในแค็ตตาล็อก:
    <Product ProductID="123">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  4. บันทึกแฟ้มเป็น Product.xml ใน namedC:\MyFolder เป็นโฟลเดอร์ใหม่

ใช้แบบ DTD

สร้าง DTD และเชื่อมโยงไปยังเอกสาร XML

  1. ใน Visual Studio .NET สร้าง textfile ว่างเปล่า
  2. เพิ่มแฟ้ม describethe ไวยากรณ์ของ XML เอกสารรายงาน DTD ทางดังต่อไปนี้:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  3. บันทึกแฟ้มเป็น Product.dtd ใน C:\MyFolderdirectory
  4. เปิด Product.xml ใน Visual Studio .NET
  5. เพิ่มด้านบนของ Product.xml เมื่อต้องการเชื่อมโยงเอกสาร XML ไปยังไฟล์ DTD DOCTYPEคำสั่งต่อไปนี้:
    <?xml version="1.0"?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. บันทึก asProductWithDTD.xml เอกสาร XML ถูกปรับเปลี่ยน

ใช้ DTD เพื่อตรวจสอบเอกสาร XML

  1. ใน Visual Studio .NET สร้างโครงการ Visual C# ConsoleApplication ใหม่ที่ชื่อว่า ValidateXml
  2. เพิ่มสอง โดยใช้คำสั่งไปยังส่วนต้นของ Class1.cs เป็นดังนี้:
    using System.Xml;        // for XmlTextReader and XmlValidatingReader
    using System.Xml.Schema; // for XmlSchemaCollection (which is used later)
    					
  3. ใน Class1.cs ประกาศตัวแปรบูลีisValidก่อนจุดเริ่มต้นของวิธีการหลักที่มีชื่อดังนี้:
    private static bool isValid = true;      // If a validation error occurs,
                                             // set this flag to false in the
                                             // validation event handler. 
  4. สร้างวัตถุXmlTextReaderในการอ่านเอกสาร XML จากแฟ้มข้อความในวิธีการ หลัก จากนั้น สร้าง XmlValidatingReader เพื่อตรวจสอบข้อมูล XML นี้เป็นดังนี้:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");
    XmlValidatingReader v = new XmlValidatingReader(r);
    					
  5. คุณสมบัติของออบเจ็กต์XmlValidatingReaderValidationTypeบ่งชี้ชนิดของการตรวจสอบที่ถูกต้อง (DTD, XDRหรือSchema) ตั้งค่าคุณสมบัตินี้เป็นDTDดังนี้:
    v.ValidationType = ValidationType.DTD;
    					
  6. หากเกิดข้อผิดพลาดการตรวจสอบ readergenerates การตรวจสอบเหตุการณ์การตรวจสอบ เพิ่มรหัสต่อไปนี้ในการลงทะเบียนตัวจัดการโพ validationevent (คุณจะปฏิบัติตามวิธีการMyValidationEventHandlerในขั้นตอนที่ 8):
    v.ValidationEventHandler += 
       new ValidationEventHandler(MyValidationEventHandler);
    					
  7. เพิ่มรหัสต่อไปนี้เพื่ออ่าน และตรวจสอบ XMLdocument หากเกิดข้อผิดพลาดการตรวจสอบMyValidationEventHandlerถูกเรียกเมื่อต้องการแก้ข้อผิดพลาด วิธีการนี้ตั้งค่าisValidเป็นเท็จ (ดูขั้นตอนที่ 8) คุณสามารถตรวจสอบสถานะของisValidหลังจากตรวจสอบเพื่อดูว่า เอกสารไม่ถูกต้อง หรือไม่ถูกต้อง
    while (v.Read())
    {
       // Can add code here to process the content.
    }
    v.Close();
    
    // Check whether the document is valid or invalid.
    if (isValid)
       Console.WriteLine("Document is valid");
    else
       Console.WriteLine("Document is invalid");
    					
  8. เขียนวิธีการMyValidationEventHandlerหลังจากวิธีการหลักดังนี้:
    public static void MyValidationEventHandler(object sender, 
                                                ValidationEventArgs args) 
    {
       isValid = false;
       Console.WriteLine("Validation event\n" + args.Message);
    }
    					
  9. สร้าง และเรียกใช้โปรแกรมประยุกต์ Shouldreport แอพลิเคชันว่า เอกสาร XML ที่ถูกต้อง
  10. ใน Visual Studio .NET, ProductWithDTD.xml toinvalidate การปรับเปลี่ยนดังกล่าว (ตัวอย่างเช่น ลบองค์ประกอบ "<ProductName>Rugbyjersey</ProductName>")
  11. เรียกใช้แอพลิเคชันอีกครั้ง คุณควรได้รับข้อความ followingerror:
    เหตุการณ์การตรวจสอบ
    องค์ประกอบ ' Product'has เนื้อหาที่ไม่ถูกต้อง คาด 'ชื่อผลิตภัณฑ์'
    มีข้อผิดพลาดเกิดขึ้น atfile:///C:/MyFolder/ProductWithDTD.xml (4, 5)
    เอกสารไม่ถูกต้อง

โดยใช้แบบแผน XDR

สร้างแบบแผน XDR และเชื่อมโยงไปยังเอกสาร XML

  1. ใน Visual Studio .NET สร้าง textfile ว่างเปล่า
  2. เพิ่มข้อกำหนด schema XDR ดังต่อไปนี้: todescribe ในแฟ้มไวยากรณ์ของเอกสาร XML
    <?xml version="1.0"?>
    <Schema name="ProductSchema" 
            xmlns="urn:schemas-microsoft-com:xml-data"
            xmlns:dt="urn:schemas-microsoft-com:datatypes">
    
       <ElementType name="Product" content="eltOnly">
          <attribute type="ProductID" required="yes"/>
          <element type="ProductName"/>
       </ElementType>
    
       <AttributeType name="ProductID" dt:type="int"/>
       <ElementType name="ProductName" dt:type="string"/>
    </Schema>
    					
  3. บันทึกแฟ้มเป็น Product.xdr ใน C:\MyFolderdirectory
  4. เปิดแฟ้ม Product.xml เดิม และเชื่อมโยงไป XDRschema ดังนี้:
    <?xml version="1.0"?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. บันทึก asProductWithXDR.xml เอกสาร XML ถูกปรับเปลี่ยน

ใช้แบบแผน XDR เพื่อตรวจสอบเอกสาร XML

  1. ปรับเปลี่ยนแอพลิเคชันของคุณเพื่อให้XmlTextReaderโหลด ProductWithXDR.xml เป็นดังนี้:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");
    					
  2. ตั้งค่าการValidationTypeXDRเพื่อให้ผู้อ่านตรวจสอบทำการตรวจสอบ XDR:
    v.ValidationType = ValidationType.XDR;
    					
  3. สร้าง และเรียกใช้โปรแกรมประยุกต์ Shouldreport แอพลิเคชันว่า เอกสาร XML ที่ถูกต้อง
  4. ProductWithXDR.xml จะทำให้คุณปรับเปลี่ยน
  5. สร้าง และเรียกใช้แอพลิเคชันอีกครั้ง คุณควรได้รับข้อผิดพลาด avalidation

โดยการใช้ XSD Schema

สร้างเค้าร่าง XSD และเชื่อมโยงไปยังเอกสาร XML

  1. ใน Visual Studio .NET สร้าง textfile ว่างเปล่า
  2. เพิ่มคำนิยามเค้าร่าง XSD ดังต่อไปนี้: todescribe ในแฟ้มไวยากรณ์ของเอกสาร XML
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:element name="Product">
          <xsd:complexType>
             <xsd:sequence>
                <xsd:element name="ProductName" type="xsd:string"/>
             </xsd:sequence>
             <xsd:attribute name="ProductID" use="required" type="xsd:int"/>
          </xsd:complexType>
       </xsd:element>
    </xsd:schema>
    					
  3. บันทึกแฟ้มเป็น Product.xsd ใน C:\MyFolderdirectory
  4. เปิด Product.xml แบบดั้งเดิม และเชื่อมโยงไป XSDschema ดังนี้:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. บันทึก asProductWithXSD.xml เอกสาร XML ถูกปรับเปลี่ยน

ใช้ในการตรวจสอบเอกสาร XML Schema XSD

  1. ปรับเปลี่ยนแอพลิเคชันของคุณเพื่อให้XmlTextReaderโหลด ProductWithXSD.xml เป็นดังนี้:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");
    					
  2. ตั้งค่าValidationTypeในSchemaเพื่อให้ผู้อ่านตรวจสอบทำการตรวจสอบ schema XSD:
    v.ValidationType = ValidationType.Schema;
    					
  3. สร้าง และเรียกใช้โปรแกรมประยุกต์ที่จะใช้ tovalidate schema XSD ในเอกสาร XML

ใช้ Namespaces ใน XSD Schema

  1. ใน Visual Studio .NET เปิด ProductWithXSD.xml
  2. ประกาศเป็น namespace Starturn: MyNamespaceในเอกสาร นอกจากนี้ ปรับเปลี่ยนการเชื่อมโยง XSD ดังนั้น itspecifies ที่ XSD schema เพื่อตรวจสอบเนื้อหาใน namespace นี้:
    <?xml version="1.0"?>
    <Product ProductID="123" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="urn:MyNamespace"
             xsi:schemaLocation="urn:MyNamespace Product.xsd">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  3. บันทึกการเปลี่ยนแปลงของคุณ ProductWithXSD.xml
  4. เปิด Product.xsd ปรับเปลี่ยนการ<xsd:schema>tagas เริ่มต้นต่อไปนี้เพื่อให้เค้าร่างใช้กับ namespace urn: MyNamespace:</xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  5. บันทึกการเปลี่ยนแปลงของคุณ Product.xsd
  6. สร้าง และเรียกใช้โปรแกรมประยุกต์ที่จะใช้ tovalidate schema XSD ในเอกสาร XML

แค Namespaces

  1. ใน Visual Studio .NET เปิด Class1.cs สร้างวัตถุXmlSchemaCollectionในตอนต้นของวิธีการหลักดังนี้:
    XmlSchemaCollection cache = new XmlSchemaCollection();
    					
  2. วัตถุXmlSchemaCollectionคุณสามารถใช้หน่วยความจำแคชแผนสำหรับ improvedperformance แต่ละ schema ที่เชื่อมโยงกับ namespace แตกต่างกันอยู่ เพิ่มรหัส thefollowing แค Product.xsd:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");
    					
  3. เพิ่มคำสั่งต่อไปนี้หลังจากรหัสที่สร้างวัตถุXmlValidatingReaderเพื่อเพิ่ม schema แคXmlValidatingReaderเพื่อให้ผู้อ่านสามารถใช้แบบแผนในหน่วยความจำ:
    v.Schemas.Add(cache);
    					

ตรวจสอบว่า การทำงาน

  1. สร้าง และเรียกใช้แอปพลิเคชัน
  2. ตรวจสอบว่า เอกสาร XML ยังคงตรวจสอบโดยเทียบกับ theXSD schema
  3. ปรับเปลี่ยนแบบ ProductWithXSD.xml เพื่อทำให้ข้อมูลดังกล่าว
  4. ตรวจสอบว่า โปรแกรมประยุกต์ที่ตรวจพบ validationerrors เหล่านี้หรือไม่

คุณสมบัติ

หมายเลขบทความ (Article ID): 307379 - รีวิวครั้งสุดท้าย: 2 เมษายน 2557 - Revision: 7.0
ใช้กับ
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Keywords: 
kbhowtomaster kbmt KB307379 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:307379

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

 

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