Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để xác nhận một tài liệu XML bằng cách sử dụng DTD, XDR hoặc XSD trong Visual C#.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:307379
TÓM TẮT
Bài viết này chứng tỏ làm thế nào để áp dụng một loại tài liệu Định nghĩa (DTD), một giản đồ giảm dữ liệu XML Microsoft (XDR) hoặc một lược đồ XML Ngôn ngữ (XSD) định nghĩa giản đồ để một Extensible Markup Language (XML) tài liệu. Bài viết này cũng mô tả cách sử dụng các XmlValidatingReader lớp để xác nhận một tài liệu XML đối với ngữ pháp quy định, cũng như cách sử dụng các XmlSchemaCollection lớp học để nhớ cache lược đồ trong bộ nhớ để tối ưu hóa XML xác nhận.

Tài liệu XML chứa các phần tử và các thuộc tính. Họ cung cấp một cách linh hoạt và mạnh mẽ để trao đổi dữ liệu giữa các ứng dụng và các tổ chức. Để chỉ định cho phép cấu trúc và nội dung của một XML tài liệu này, bạn có thể viết một DTD, một giản đồ XDR hoặc một giản đồ XSD. XSD lược đồ là ưa thích phương pháp để xác định XML grammars trong Microsoft.NET Framework, nhưng DTDs và XDR lược đồ cũng được hỗ trợ.

back to the top

Yêu cầu

Bài viết này giả định rằng bạn quen thuộc với các chủ đề sau:
  • Microsoft Visual C#.NET hoặc Microsoft Visual Basic.NET cú pháp
  • Khái niệm XML, bao gồm cả các vấn đề xác nhận
back to the top

Tạo một tài liệu XML

  1. Bắt đầu Visual Studio.NET.
  2. Tạo một tệp XML mới trên máy tính địa phương của bạn.
  3. Thêm dữ liệu sau vào tài liệu XML để đại diện cho một sản phẩm trong một cửa hàng:
    <Product ProductID="123">   <ProductName>Rugby jersey</ProductName></Product>					
  4. Lưu các tập tin như Product.xml trong một thư mục mới đặt tên C:\MyFolder.
back to the top

Bằng cách sử dụng DTD

Tạo DTD, và liên kết tới tài liệu XML

  1. Trong phòng thu trực quan.NET, tạo ra một văn bản có sản phẩm nào tập tin.
  2. Thêm tờ khai DTD sau vào tập tin để mô tả ngữ pháp của tài liệu XML:
    <!ELEMENT Product (ProductName)><!ATTLIST Product ProductID CDATA #REQUIRED><!ELEMENT ProductName (#PCDATA)>					
  3. Lưu tập tin như Product.dtd trong C:\MyFolder thư mục.
  4. Mở Product.xml trong Visual Studio.NET.
  5. Thêm dưới đây DOCTYPE tuyên bố từ đầu của Product.xml để liên kết tài liệu XML để DTD tệp:
    <?xml version="1.0"?><!DOCTYPE Product SYSTEM "Product.dtd">					
  6. Lưu các tài liệu XML sửa đổi như ProductWithDTD.xml.
back to the top

Sử dụng DTD để xác nhận tài liệu XML

  1. Trong phòng thu trực quan.NET, tạo ra một mới Visual C# Console Dự án ứng dụng đặt tên ValidateXml.
  2. Thêm hai bằng cách sử dụng điều khoản về đầu của Class1.cs như sau:
    using System.Xml;        // for XmlTextReader and XmlValidatingReaderusing System.Xml.Schema; // for XmlSchemaCollection (which is used later)					
  3. Trong Class1.cs, khai báo một biến boolean đặt tên isValid trước khi bắt đầu của các Chính phương pháp như sau:
    private static bool isValid = true;      // If a validation error occurs,                                         // set this flag to false in the                                         // validation event handler. 
  4. Tạo ra một XmlTextReader đối tượng đọc một tài liệu XML từ một tập tin văn bản trong các Chính phương pháp, và sau đó tạo ra một XmlValidatingReader để xác nhận dữ liệu XML này như sau:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");XmlValidatingReader v = new XmlValidatingReader(r);					
  5. Các ValidationType tài sản của các XmlValidatingReader đối tượng chỉ ra loại xác nhận là bắt buộc)DTD, XDR, hoặc Lược đồ). Thiết lập này bất động sản để DTD như sau:
    v.ValidationType = ValidationType.DTD;					
  6. Nếu bất kỳ lỗi xác nhận nào tồn tại, người đọc validating tạo ra một sự kiện xác nhận. Thêm mã sau đây để đăng ký một xác nhận xử lý sự kiện (bạn sẽ thực hiện các MyValidationEventHandler phương pháp trong bước 8):
    v.ValidationEventHandler +=    new ValidationEventHandler(MyValidationEventHandler);					
  7. Thêm mã sau đây để đọc và xác nhận các XML tài liệu. Nếu bất kỳ lỗi xác nhận nào xảy ra, MyValidationEventHandler được gọi là để giải quyết các lỗi. Phương pháp này đặt isValid đến sai (xem bước 8). Bạn có thể kiểm tra tình trạng của isValid sau khi xác nhận để xem các tài liệu là hợp lệ hay không hợp lệ.
    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. Viết các MyValidationEventHandler phương pháp sau khi các Chính phương pháp như sau:
    public static void MyValidationEventHandler(object sender,                                             ValidationEventArgs args) {   isValid = false;   Console.WriteLine("Validation event\n" + args.Message);}					
  9. Xây dựng và chạy các ứng dụng. Ứng dụng nên báo cáo tài liệu XML là hợp lệ.
  10. Trong phòng thu trực quan.NET, sửa đổi ProductWithDTD.xml để làm nó (ví dụ, xóa "<productname>bóng bầu dục» Jersey</productname>"phần tử).
  11. Chạy lại ứng dụng. Bạn sẽ nhận được dưới đây thông báo lỗi:
    Xác nhận sự kiện
    Nguyên tố 'Sản phẩm' có nội dung không hợp lệ. Mong đợi 'ProductName'.
    Lỗi đã xảy ra tại file:///C:/myFolder/ProductWithDTD.xml(4, 5).
    Tài liệu không hợp lệ
back to the top

Bằng cách sử dụng lược đồ XDR

Tạo ra giản đồ XDR, và liên kết tới tài liệu XML

  1. Trong phòng thu trực quan.NET, tạo ra một văn bản có sản phẩm nào tập tin.
  2. Thêm định nghĩa giản đồ XDR sau đây vào tập tin để mô tả ngữ pháp của tài liệu 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. Lưu tập tin như Product.xdr trong C:\MyFolder thư mục.
  4. Mở file Product.xml gốc, và liên kết nó với XDR giản đồ như sau:
    <?xml version="1.0"?><Product ProductID="123" xmlns="x-schema:Product.xdr">    <ProductName>Rugby jersey</ProductName></Product>					
  5. Lưu các tài liệu XML sửa đổi như ProductWithXDR.xml.
back to the top

Sử dụng lược đồ XDR để xác nhận tài liệu XML

  1. Sửa đổi các ứng dụng của bạn để cho XmlTextReader tải ProductWithXDR.xml như sau:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");					
  2. Đặt các ValidationType để XDR để cho người đọc validating thực hiện XDR xác nhận:
    v.ValidationType = ValidationType.XDR;					
  3. Xây dựng và chạy các ứng dụng. Ứng dụng nên báo cáo tài liệu XML là hợp lệ.
  4. Sửa đổi ProductWithXDR.xml để làm nó.
  5. Xây dựng và chạy lại ứng dụng. Bạn sẽ nhận được một xác nhận lỗi.
back to the top

Bằng cách sử dụng lược đồ XSD

Tạo ra giản đồ XSD, và liên kết tới tài liệu XML

  1. Trong phòng thu trực quan.NET, tạo ra một văn bản có sản phẩm nào tập tin.
  2. Thêm định nghĩa giản đồ XSD sau đây vào tập tin để mô tả ngữ pháp của tài liệu 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. Lưu tập tin như Product.xsd trong C:\MyFolder thư mục.
  4. Mở Product.xml ban đầu và liên kết nó với XSD giản đồ như sau:
    <?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. Lưu các tài liệu XML sửa đổi như ProductWithXSD.xml.
back to the top

Sử dụng lược đồ XSD để xác nhận tài liệu XML

  1. Sửa đổi các ứng dụng của bạn để cho XmlTextReader tải ProductWithXSD.xml như sau:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");					
  2. Đặt các ValidationType để Lược đồ để cho người đọc validating thực hiện XSD lược đồ xác nhận:
    v.ValidationType = ValidationType.Schema;					
  3. Xây dựng và chạy các ứng dụng sử dụng lược đồ XSD để soát hợp thức tài liệu XML.
back to the top

Sử dụng không gian tên trong lược đồ XSD

  1. Trong phòng thu trực quan.NET, mở ProductWithXSD.xml.
  2. Tuyên bố không gian tên mặc định urn: MyNamespace trong tài liệu. Ngoài ra, sửa đổi các liên kết XSD như vậy mà nó xác định giản đồ XSD để xác nhận nội dung trong không gian tên này:
    <?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. Lưu các thay đổi của bạn để ProductWithXSD.xml.
  4. Mở Product.xsd. Sửa đổi từ khóa bắt đầu <xsd:schema> như sau để cho giản đồ áp dụng cho không gian tên<b00> </b00> </xsd:schema>urn: MyNamespace:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"            targetNamespace="urn:MyNamespace"            elementFormDefault="qualified">					
  5. Lưu các thay đổi của bạn để Product.xsd.
  6. Xây dựng và chạy các ứng dụng sử dụng lược đồ XSD để soát hợp thức tài liệu XML.
back to the top

Không gian tên bộ đệm ẩn

  1. Trong phòng thu trực quan.NET, mở Class1.cs. Tạo ra một XmlSchemaCollection đối tượng vào đầu các Chính phương pháp như sau:
    XmlSchemaCollection cache = new XmlSchemaCollection();					
  2. Các XmlSchemaCollection đối tượng cho phép bạn để nhớ cache lược đồ trong bộ nhớ cho cải tiến hiệu suất. Mỗi giản đồ được liên kết với một không gian tên khác nhau. Thêm các mã sau vào đệm ẩn Product.xsd:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");					
  3. Thêm các câu sau đây sau khi mã mà tạo ra cácXmlValidatingReader đối tượng để thêm bộ nhớ cache lược đồ để XmlValidatingReader để cho người đọc có thể sử dụng các lược đồ trong bộ nhớ:
    v.Schemas.Add(cache);					
back to the top

Xác minh rằng nó hoạt động

  1. Xây dựng và sau đó chạy các ứng dụng.
  2. Xác minh rằng các tài liệu XML vẫn được xác nhận chống lại các Giản đồ XSD.
  3. Sửa đổi ProductWithXSD.xml để làm nó.
  4. Xác minh rằng các ứng dụng phát hiện xác nhận lỗi.
back to the top

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 307379 - Xem lại Lần cuối: 08/27/2011 18:38:00 - Bản sửa đổi: 2.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

  • kbhowtomaster kbmt KB307379 KbMtvi
Phản hồi