ADO.NET. Управление базами данных. Связь по схеме OLE DB провайдера. Коррекция стилей DataGridView, страница 43

·  Удалите схему, но оставьте данные XML-документа. Постарайтесь не нарушить синтаксис, выделите и удалите блок тегов, начиная с <xs:schema id="StudsExams" . . .> и до </xs:schema>. Сохраните файл.

·  Повторите опыт по добавлению студента и убедитесь, что IntelliSense потерял способность помогать при вводе данных, так как в документе нет схемы.

Преимущества XML-технологий

Какой выигрыш мы получаем, записывая данные в формате XML? Опыт показал нам возможности класса DataSet записывать и читать данные XML. Редактор студии с помощью IntelliSense значительно упрощает ввод данных. Существует множество инструментов, разработанных другими компаниями. Среди них есть дорогие (payware), такие как Adobe FrameMaker, и бесплатные (freeware), такие как Python или Perl. Важно то, что все они используют один и тот же формат данных.

Стандарт SGML (подмножеством которого является XML) разрабатывался в надежде на то, что никогда в будущем не придется решать проблем типа: «Как преобразовать файл pdf в файл doc?», «Как выудить (импортировать) данные из файла в формате Lotus Jazz?», «Как прочесть документ Microsoft Word 97 в приложении Word 98 for Mac?» или «Как прочесть файл с неизвестным бинарным форматом данных, если в нем испорчен один байт?». Главными преимуществами использования технологии XML являются:

·  Данные сами себя описывают, благодаря осмысленным тегам.

·  Избыточность информации (повторяющиеся пары тегов) повышает надежность, поэтому потеря байта(ов) не приводит к краху всего набора данных.

·  Данные управляются стандартными инструментами.

·  Облик или представление данных легко изменить, применяя стили (style sheets) в соответствии со стандартами технологий: CSS, XSL, XSLT.

·  Автоматизация процессов обработки значительно упрощается, так как данные имеют регулярную, довольно строгую и повторяющуюся структуру.

В качестве примера, демонстрирующего удобство использования формата XML, мне понравился тот, в котором обсуждается простота выделения реплик Гамлета из XML-изированной версии пьесы Шекспира. Такие версии уже существуют, наряду с XML-форматированными версиями Библии, Корана и других шедевров человеческой мысли. Недостатком XML-формата является большой объем избыточной информации. Он слегка компенсируется тем, что XML-файлы великолепно сжимаются при архивации (до 90%).

Ссылка на схему

Последнее, что мы сделали с документом Students.xml, это удалили его схему. Цель операции — показать, что студия может создать схему документа, опираясь на его данные.

·        В меню XML выберите команду Create Schema и просмотрите результат.

Файл Student.xsd создан студией, он не входит в состав проекта, он просто открыт в студии. Рассмотрим схему, которая создана на основе данных XML-файла (то есть, данных таблиц студентов и экзаменов).

<?xml version="1.0" encoding="utf-8"?>

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"

  xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="StudsExams">

  <xs:complexType>

   <xs:sequence>

    <xs:element maxOccurs="unbounded" name="Studs">

      <xs:complexType>

        <xs:attribute name="StudID" type="xs:unsignedByte" use="required" />

        <xs:attribute name="Name" type="xs:string" use="required" />

        <xs:attribute name="Phone" type="xs:string" use="required" />

        <xs:attribute name="Addr" type="xs:string" use="required" />

      </xs:complexType>

    </xs:element>

    <xs:element maxOccurs="unbounded" name="Exams">

      <xs:complexType>

        <xs:sequence>

           <xs:element name="ExamID" type="xs:unsignedByte" />

           <xs:element name="StudID" type="xs:unsignedByte" />