Проверка XML-документа с помощью DTD, XDR или XSD в Visual C# .NET

Переводы статьи Переводы статьи
Код статьи: 307379 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье показано, как применить тип документа Определения DTD, схемы Microsoft XML-Data Reduced (XDR) или XML-схемы Определение языка XSD-схемы расширяемого языка разметки (XML) документ. В этой статье также описываются способы использования класса XmlValidatingReader для проверки XML-документа с указанным грамматики а также как использовать класс XmlSchemaCollection кэша схемы в памяти для оптимизации XML Проверка.

XML-документы содержат элементы и атрибуты. Они предоставляет гибкий и эффективный способ обмена данными между приложениями и организаций. Чтобы задать допустимую структуру и содержимое XML документ, можно написать DTD, XDR-схему или схему XSD. XSD-схемы являются для указания грамматики XML в платформа.NET Framework Microsoft, рекомендуется использовать метод но DTD, так и XDR-схем также поддерживаются.

Требования

В данной статье предполагается, что вы знакомы с следующие разделы:
  • Microsoft Visual C# .NET или Microsoft Visual Basic .NET синтаксис
  • Понятия XML, включая вопросы проверки

Создание документа XML

  1. Запустите Visual Studio .NET.
  2. Создайте новый XML-файл на локальном компьютере.
  3. Добавьте следующие данные в XML-документ для представления продукт в каталоге:
    <Product ProductID="123">
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  4. Сохранить файл как Product.xml в новую папку с именем C:\MyFolder.

С помощью DTD

Создать DTD и связать XML-документ

  1. В Visual Studio .NET создайте пустой текстовый файл.
  2. Добавьте следующие объявления DTD в файл для описания Грамматика XML-документа:
    <!ELEMENT Product (ProductName)>
    <!ATTLIST Product ProductID CDATA #REQUIRED>
    <!ELEMENT ProductName (#PCDATA)>
    					
  3. Сохраните файл с именем Product.dtd в C:\MyFolder каталог.
  4. Откройте в Visual Studio .NET Product.xml.
  5. Добавьте следующий оператор DOCTYPE в верхней части Product.xml, чтобы связать XML-документ DTD-файл:
    <?xml version="1.0"?>
    <!DOCTYPE Product SYSTEM "Product.dtd">
    					
  6. Сохранить измененный XML-документа ProductWithDTD.xml.

Использование DTD для проверки XML-документа

  1. В Visual Studio .NET Создание новой Visual C# Проект приложения с именем ValidateXml.
  2. Добавьте два операторы using в начало Class1.cs:
    using System.Xml;        // for XmlTextReader and XmlValidatingReader
    using System.Xml.Schema; // for XmlSchemaCollection (which is used later)
    					
  3. В файле Class1.cs объявления переменной типа boolean с именем isValid перед запуском метода Main следующим образом:
    private static bool isValid = true;      // If a validation error occurs,
                                             // set this flag to false in the
                                             // validation event handler. 
  4. Создать объект XmlTextReader для чтения XML-документа из текстового файла в методе Main , а затем создайте XmlValidatingReader для проверки данных XML следующим образом:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithDTD.xml");
    XmlValidatingReader v = new XmlValidatingReader(r);
    					
  5. Свойство ValidationType объекта XmlValidatingReader указывает тип проверки, который является обязательным (DTD, XDRили Schema). Задайте это свойство DTD следующим образом:
    v.ValidationType = ValidationType.DTD;
    					
  6. При возникновении ошибок чтения, выполняющему проверку создает событие проверки. Добавьте следующий код для проверки регистрации обработчик событий (на шаге 8 будет реализовывать метод MyValidationEventHandler ):
    v.ValidationEventHandler += 
       new ValidationEventHandler(MyValidationEventHandler);
    					
  7. Добавьте следующий код для чтения и проверки XML документ. Если возникнут ошибки проверки, MyValidationEventHandler вызывается для устранения ошибки. Этот метод устанавливает isValid значение false (см. шаг 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 метод после метода Main следующим образом:
    public static void MyValidationEventHandler(object sender, 
                                                ValidationEventArgs args) 
    {
       isValid = false;
       Console.WriteLine("Validation event\n" + args.Message);
    }
    					
  9. Постройте и запустите приложение. Приложение должно отчет допустимость XML-документа.
  10. В Visual Studio .NET измените ProductWithDTD.xml на сделали его недействительным (например, удаление<ProductName>"регби Джерси</ProductName>"элемент).
  11. Запустите приложение снова. Должно появиться следующее сообщение об ошибке:
    События проверки
    Элемент «Товар» содержит недопустимое содержимое. Ожидается «ProductName».
    Произошла ошибка file:///C:/MyFolder/ProductWithDTD.XML(4, 5).
    Недопустимый документ

С помощью схемы XDR

Создание схемы XDR и привязка к XML-документа

  1. В Visual Studio .NET создайте пустой текстовый файл.
  2. Добавьте следующие определения схемы XDR в файл Описание грамматики 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:\MyFolder каталог.
  4. Откройте исходный файл Product.xml и связать его XDR схема выглядит следующим образом:
    <?xml version="1.0"?>
    <Product ProductID="123" xmlns="x-schema:Product.xdr"> 
       <ProductName>Rugby jersey</ProductName>
    </Product>
    					
  5. Сохранить измененный XML-документа ProductWithXDR.xml.

Использовать XDR-схему для проверки XML-документа

  1. Измените приложение таким образом, XmlTextReader загружает ProductWithXDR.xml следующим образом:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXDR.xml");
    					
  2. Задайте ValidationTypeXDR , чтобы средство чтения выполняет проверку XDR:
    v.ValidationType = ValidationType.XDR;
    					
  3. Постройте и запустите приложение. Приложение должно отчет допустимость XML-документа.
  4. Измените ProductWithXDR.xml чтобы сделать его недействительным.
  5. Постройте и запустите приложение снова. Должно появиться Ошибка проверки.

С помощью XSD-схемы

XSD-схему и связать с XML-документа

  1. В Visual Studio .NET создайте пустой текстовый файл.
  2. Добавьте следующие определения схемы XSD в файл Описание грамматики 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:\MyFolder каталог.
  4. Откройте исходный Product.xml и ссылки на XSD схема выглядит следующим образом:
    <?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. Сохранить измененный XML-документа ProductWithXSD.xml.

Использовать схему XSD для проверки XML-документа

  1. Измените приложение таким образом, XmlTextReader загружает ProductWithXSD.xml следующим образом:
    XmlTextReader r = new XmlTextReader("C:\\MyFolder\\ProductWithXSD.xml");
    					
  2. Задайте для Тип проверки значение Схема, чтобы средство чтения выполняло проверку схемы XSD:
    v.ValidationType = ValidationType.Schema;
    					
  3. Построение и запуск приложения с помощью схемы XSD для Проверьте XML-документ.

Использование пространств имен в схеме XSD

  1. Откройте в Visual Studio .NET, ProductWithXSD.xml.
  2. Объявление пространства имен по умолчанию urn: MyNamespace в документе. Кроме того, чтобы изменить ссылку XSD ее Указывает схему XSD для проверки содержимого в этом пространстве имен:
    <?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> следующим таким образом, схема применяется к пространство имен urn: MyNamespace:</xsd:schema>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                targetNamespace="urn:MyNamespace"
                elementFormDefault="qualified">
    					
  5. Сохраните изменения в Product.xsd.
  6. Построение и запуск приложения с помощью схемы XSD для Проверьте XML-документ.

Пространства имен кэша

  1. Откройте в Visual Studio .NET, Class1.cs. Создайте объект XmlSchemaCollection в начало метода Main следующим образом:
    XmlSchemaCollection cache = new XmlSchemaCollection();
    					
  2. Объект XmlSchemaCollection позволяет кэша схемы в памяти для повышение производительность. Каждая схема связан с другим пространством имен. Добавить Следующий код для кэша Product.xsd:
    cache.Add("urn:MyNamespace", "C:\\MyFolder\\Product.xsd");
    					
  3. Добавьте следующий оператор после кода, который создает Объект XmlValidatingReader для добавления в кэш схемы XmlValidatingReader таким образом, чтобы средство чтения можно использовать схемы в памяти:
    v.Schemas.Add(cache);
    					

Убедитесь, что он работает

  1. Постройте и запустите приложение.
  2. Убедитесь, что XML-документ по-прежнему проверяется на соответствие XSD-схемы.
  3. Измените ProductWithXSD.xml чтобы сделать его недействительным.
  4. Убедитесь, что приложение обнаруживает эти проверки ошибки.

Свойства

Код статьи: 307379 - Последний отзыв: 30 декабря 2012 г. - Revision: 8.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 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 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