Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Проверка XML файла по DTD с помощью XmlReader



     Допустим, есть у нас такой XML файл “boks.xml”:

<bookstore>

    <book publicationDate="2006" ISBN="number-1-861003-11-0">
            
        <title>ASP.NET 2.0 </title>
            <author>
            <lastName>Dino</lastName>
            <firstName>Ekspozito</firstName>
        </author>
            
        <price>30</price>
    </book>
  
</bookstore>
        

    Если по файлу xml кликнуть правой клавишей мыши и сказать открыть с помощью браузера, вот что получится:

    Как видим, браузер вывел в таком виде, в каком мы его и написали. На самом деле, если убрать закрытие элемента price, браузер скажет, что допущена синтаксическая ошибка, но, это один этап проверки. Есть несколько вариантов указать свою проверку с помощью схем. В этой статье уделено внимание применению DTD. С помощью DTD схем, мы можем полностью контролировать, сколько элементов может содержать узел, контролировать все вложенности, обязательно ли должны указываться атрибуты и т.д.. Вот полная схема, которая написана в том же файле XML, с полными комментариями.

<!-- bookstore - это корневой елемент-->
<!DOCTYPE bookstore [

   <!-- 
    bookstore может иметь елемент book. 
    * указывает что елементов book может быть сколько захотите 
  -->
   <!ELEMENT bookstore (book)*>  

  <!-- 
    book может иметь в себе елементы title, author, price. 
    ? указывает что элементы title, author, price 
    могут быть или не быть,
    но только в одном экземпляре
  -->
   <!ELEMENT book (title, author, price)?>  

  <!-- title может иметь любой текст -->
   <!ELEMENT title (#PCDATA)>  

  <!-- author может иметь в себе элементы lastName, firstName. -->
   <!ELEMENT author (lastName, firstName)?>  
  
  <!-- lastName может иметь любой текст -->
   <!ELEMENT lastName (#PCDATA)>  

  <!-- firstName может иметь любой текст -->
   <!ELEMENT firstName (#PCDATA)>  

  <!-- title может иметь любой текст -->
   <!ELEMENT price (#PCDATA)>  

  <!--
    ATTLIST используется для описаний атрибутов
    REQUIRED - указывет что атрибут должен быть указан
    укажыте IMPLEID, тем самым сказав что его можна опустить
    атрибут publicationDate обязателен и может содержать символы 
  -->
  <!ATTLIST book publicationDate CDATA #REQUIRED>  

  <!--
    атрибут ISBN помечен как ID и он обязателен
    Внимание! идентификатор должен начинатся с буквы!
  -->
  <!ATTLIST book ISBN  ID #REQUIRED>  
]  
>

    Важно понимать, что браузер проверяет лишь синтаксис, но с помощью DTD мы обеспечим более гибкий контроль над использованием XML. С такой схемой, программист на языке C# не сможет внести более одной записи title, author, price, lastName, firstName, по сколку четко указано знак “?”, который означает 0 или 1.

    Теперь работаем с языком программирования C#. Для выполнения проверки по DTD объект XmlReader использует DTD, определенный в декларации DOCTYPE XML-документа. Декларация DOCTYPE может указывать на встроенный DTD или ссылаться на внешний DTD-файл.

  • Задайте для свойства XmlReaderSettings.DtdProcessing значение DtdProcessing.Parse.
  • Установите свойство XmlReaderSettings.ValidationType в значение ValidationType.DTD.

    В методе Main() пишем:

XmlReaderSettings settings = new XmlReaderSettings();

settings.DtdProcessing = DtdProcessing.Parse;	// этап 1
settings.ValidationType = ValidationType.DTD;	// этап 2

// подписываемся на событие
settings.ValidationEventHandler += 
   new ValidationEventHandler(ValidationCallBack);

XmlReader reader = XmlReader.Create("books.xml", settings);

while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
       {
       	for (int i = 0; i < reader.AttributeCount; i++)
              {
              	if (i == 0)
                    Console.Write("publication date = {0};\t",
                            reader.GetAttribute(i));
                     if (i == 1)
                            Console.Write("ISBN = {0};\n",
                            reader.GetAttribute(i));
              }
	}
       else if (reader.NodeType == XmlNodeType.Text)
       	Console.WriteLine(reader.Value);
}

private static void ValidationCallBack(object sender,
                            ValidationEventArgs e)
{
    Console.WriteLine("Документ xml не валидный!: {0}",
                            e.Message);
}



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок