МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
Скачать 2.76 Mb.
|
2.15. Создание XML-документаXML-документ можно создать двумя способами. Один из них заключается в создании объекта XmlDocument без параметров. Второй включает создание объекта XmlDocument, которому нужно в качестве параметра передать XmlNameTable. В следующем примере показано создание пустого объекта XmlDocument без параметров. C# XmlDocument doc = new XmlDocument(); После создания документа в него можно с помощью метода Load загрузить данные из строки, потока, URL-адреса, текстового модуля чтения или класса, производного от XmlReader. Есть еще один метод загрузки: LoadXML, который считывает XML из строки. Существует класс с именем XmlNameTable. Он является таблицей атомарных объектов строки. Эта таблица предоставляет средству синтаксического анализа XML эффективный способ использовать один и тот же строковый объект для всех повторяющихся имен элементов и атрибутов в XML-документе. Класс XmlNameTable автоматически создается при создании документа, как показано выше, и заполняется именами элементов и атрибутов при загрузке этого документа. Если у вас уже есть документ с таблицей имен и эти имена можно применить в другом документе, создайте новый документ с помощью метода Load, передав ему в качестве параметра таблицу XmlNameTable. Когда документ создается с помощью этого метода, он использует существующую таблицу XmlNameTable со всеми атрибутами и элементами, ранее загруженными в нее из другого документа. Это можно использовать для эффективного сравнения имен элементов и атрибутов. 2.16. Считывание XML-документа в DOMXML-данные считываются в память из разных форматов. Они могут быть считаны из строки, URL-адреса, модуля чтения текста или класса, производного от класса XmlReader. Метод Load загружает документ в память и имеет перегруженные методы для получения данных из разных форматов. Существует также метод LoadXml, который считывает XML-данные из строки. Разные методы Load влияют на то, какие узлы создаются при загрузке модели DOM. В следующей таблице приведены различия между некоторыми методами Load, а также ссылки на разделы, описывающие их. Таблица 2.14
В следующем примере показаны XML-данные, загружаемые с помощью метода LoadXml, а также данные, которые затем сохраняются в текстовый файл data.xml. C# using System; using System.IO; using System.Xml; public class Sample { public static void Main() { // Create the XmlDocument. XmlDocument doc = new XmlDocument(); doc.LoadXml(" "" + " // Save the document to a file. doc.Save("data.xml"); } } 2.17. Директивы таблицы стилей, встроенные в документИногда существующий XML содержит директивы таблицы стилей . Обозреватель Microsoft Internet Explorer обрабатывает этот синтаксис как альтернативу . Если данные XML содержат директиву , как показано в следующем примере, при попытке загрузить эти данные в модель XML DOM будет сформировано исключение. Это происходит потому, что конструкция с точки зрения модели DOM представляет собой недопустимую инструкцию ProcessingInstruction. Согласно спецификации пространства имен в XML, инструкции ProcessingInstruction могут быть только именами, не содержащими двоеточий (NCNames), в противоположность полным именам (QNames). Согласно разделу 6 спецификации пространств имен в XML наличие методов Load и LoadXml обеспечивает выполнение в документе следующих условий: Все типы элементов и имена атрибутов содержат одно двоеточие или не содержат ни одного. Имена сущностей, цели инструкции ProcessingInstruction и имена нотаций не могут содержать двоеточий. Поскольку конструкция содержит двоеточие, это является нарушением второго правила. Согласно рекомендации консорциума W3C Связь таблиц стилей с XML-документами версии 1.0, инструкция по обработке, связывающая таблицу стилей XSLT с XML-документом, выглядит следующим образом: , то есть двоеточие заменено на тире. |