Программирование >>  Программирование с использованием ajax 

1 ... 256 257 258 [ 259 ] 260 261 262 ... 396


XMLFieLxml

<7xml ver 4ri 1.0 ercodir.>;°utf-S?>

Рис. 25.1. Автоматическое добавление объявления XML

3. Сохраните файл, нажав <Ctrl+S> или выбрав пункт меню FileiSave XMLFilel.xml (Файл=>Сохранить XMLFilel .xml). Visual Studio запросит согласие на сохранение файла и его имя; сохраните его в папке Beginning Visual C#\Chapter25 как GhostStories.xml.

4. Переместите курсор к строке, находящейся под объявлением XML и введите текст <stories>. Обратите внимание, как Visual Studio автоматически добавит закрывающий дескриптор, как только вы введете знак больше для закрытия открывающего дескриптора.

5. Введите следующий код в XML-файл и щелкните на кнопке Save (Сохранить):

<stories> <

<story>

<title>A House in Aungier Street</title> <author>

<name>Sheridan Le Fanu</name>

<nationality>Irish</nationality> </author>

<rating>eerie</rating> </story> <story>

<title>The Signalman</title> <author>

<name>Charles Dickens</name>

<nationality>English</nationality> </author>

<rating>atmospheric</rating> </story> <story>

<title>The Turn of the Screw</title> <author>

<name>Henry James</name>

<nationality>American</nationality> </author>

<rating>a bit dull</rating> </story> </stories>

6. Теперь можно позволить Visual Studio создать схему, которая отвечает написанному вами XML. Сделайте это, выбрав пункт Create Schema (Создать схему) из меню XML. Сохраните результирующий файл XSD, щелкнув на Save, как GhostStories.XSD.

7. Вернитесь к файлу XML и наберите следующий XML перед завершающим дескриптором </stories>:

<story> <title>Number 13 </title> <author> <name>MR James</name> <nationality>English</nationality> </author> <rating>mysterious</rating> </story>



Обратите внимание, что теперь вы получаете подсказки IntelliSense, когда начинаете набирать открывающие дескрипторы. Это потому, что Visual Studio знает, что к набираемому файлу XML нужно подключить вновь созданную схему XSD.

8. В Visual Studio можно установить связь между XML и одной или более схемами. Выберите пункт меню XML=t>Schemas (XML=>Схемы). Это вызовет появление диалогового окна XML Schemas (Схемы XML), показанного на рис. 25.2. В начале длинного списка схем, которые распознает Visual Studio, вы увидите GhostStories. XSD. Слева от нее будет галочка зеленого цвета, указывающая, что схема используется текущим документом XML.

XML Scb ne$

MyWQTtXlit 11*111 II

XML Schemas uied tn a tcbtma set po.ide vabdjt n and <nte>itsen,e Select the desired schema usage with the Use coHjmn dropdown lisL

JJse Target Namespace RbNfcng * j Adfl

✓ GhostStoriesjtsd t-

I 6ooks.Ksd

Tn-..-- t:.;.........и------

Puc. 25.2. Диалоговое окно XML Schemas

Использование XML в приложении

Теперь, когда вы узнали о том, как создаются документы XML, самое время применить полученные знания на практике. .NET Framework включает множество пространств имен и классов, которые облегчают задачу чтения, манипулирования и записи XML. В последующих разделах будет описано множество классов, и мы посмотрим, как можно применять их для создания и программного манипулирования XML.

Объектная модель документа XML

Объектная модель документа XML (XML Document Object Model - XML DOM) - это набор классов, используемых для манипулирования XML интуитивно понятным образом. DOM - возможно, не самый быстрый способ чтения данных XML, но как только вы разберетесь в отношениях между классами и элементами документа XML, то обнаружите, что эта модель очень легка в применении.

Классы, составляющие DOM, находятся в пространстве имен System.Xml. В этом пространстве содержится несколько классов и пространств имен, но в данной главе мы сосредоточим внимание только на некоторых классах, которые позволяют легко манипулировать XML. Эти классы описаны в табл. 25. L

Класс XmlDocument

Обычно первое, что должно делать ваше приложение с XML - это прочитать его из файла. Как описано в табл. 25.1, за это отвечает класс XmlDocument. Вы можете воспринимать XmlDocument как представление дискового файла, расположенное в памяти.



Таблица 25.1. Важные классы из пространства имен System. Xjoil

Класс Описание

xmlNode Представляет отдельный узел в документе. Служит базовым для многих клас-

сов, описанных в этой главе. Если узел представляет корень документа ХМL, вы можете выполнить из него навигацию к любой позиции документа

xmlDocument Расширяет класс XmiNode, но часто является первым объектом, который используется при работе с XML. Это связано с тем, что этот класс применяется для загрузки и сохранения данных с диска или еще откуда-либо

XmlElement Представляет отдельный элемент в документе XML. XmlElement унаследован от XmlLinkedNode, который, в СВОЮ очередь, унаследован от XmlNode

xmiAttribute Представляет отдельный атрибут. Подобно классу XmlDocument, унаследован от класса XmlNode

xmlText Представляет текст между открывающим и закрывающим дескрипторами

Xmicomment Представляет специальный тип узлов, которые не предназначены служить частью документа, а лишь предоставляют информацию читателю о частях документа

xmlNodeList Представляет коллекцию узлов

Воспользовавшись классом XmlDocument для загрузки файла в память, вы можете получить корневой узел документа из него и начать чтение и манипуляции XML:

using System.Xml;

XmlDocument document = new XmlDocument();

document.Load(@ C:\Beginning Visual C#\Chapter 25\books.xml );

Две строки кода создают новый экземпляр класса XmlDocument и загружают в него файл books.xml. Помните, что класс XmlDocument находится в пространстве имен System.Xml, и потому вы должны вставить строку using System.Xml; в начало кода.

В дополнение к загрузке и сохранению XML, класс XmlDocument также отвечает за поддержку самой структуры XML. Поэтому вы найдете в нем многочисленные методы, отвечающие за создание, изменение и удаление узлов дерева документа. Ниже мы рассмотрим некоторые из этих методов, но прежде чем представить эти методы правильно, вам следует узнать немного больше о другом классе - XmlElement.

Класс XmlElement

После того как документ загружен в память, с ним понадобится что-то делать. Свойство DocumentElement экземпляра XmlDocument, созданного в предыдущем коде, возвращает экземпляр XmlElement, представляющий корневой элемент XmlDocument. Этот элемент важен, поскольку обеспечивает доступ к каждому фрагменту информации в документе:

XmlDocument document = new XmlDocument();

document.Load(@ C:\Beginning Visual C#\Chapter 25\books.xml ); XmlElement element = dociiment. DociimentElement;

После получения корневого элемента документа вы готовы к использованию этой информации. Класс XmlElement содержит методы и свойства для манипуляции узлами и атрибутами дерева. Давайте сначала рассмотрим свойства, предназначенные для навигации по элементам XML, которые перечислены в табл. 25.2.



1 ... 256 257 258 [ 259 ] 260 261 262 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика