Главная страница
Навигация по странице:

  • XmlDocument

  • XmlReader

  • XmlNameTable

  • Субъект Раздел

  • ProcessingInstruction

  • МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем


    Скачать 2.76 Mb.
    НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
    Дата12.04.2023
    Размер2.76 Mb.
    Формат файлаdoc
    Имя файлаМУ_ЛР_ЛиПОАС.doc
    ТипМетодические указания
    #1057976
    страница15 из 32
    1   ...   11   12   13   14   15   16   17   18   ...   32

    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-документа в DOM


    XML-данные считываются в память из разных форматов. Они могут быть считаны из строки, URL-адреса, модуля чтения текста или класса, производного от класса XmlReader.

    Метод Load загружает документ в память и имеет перегруженные методы для получения данных из разных форматов. Существует также метод LoadXml, который считывает XML-данные из строки.

    Разные методы Load влияют на то, какие узлы создаются при загрузке модели DOM. В следующей таблице приведены различия между некоторыми методами Load, а также ссылки на разделы, описывающие их.

    Таблица 2.14




    Субъект

    Раздел

    Создание узлов пробелов

    Объект, используемый для загрузки модели DOM, влияет на узлы пробелов и значащих пробелов, формируемые в модели DOM..

    Загрузка XML-данных, начиная с определенного узла, или загрузка всего XML-документа

    С помощью метода XmlDocument.Load данные в модель DOM можно загружать с определенного узла.

    Проверка XML-данных по мере загрузки

    Можно проводить проверку XML-данных, загружаемых в модель DOM, по мере их загрузки. Делается это с помощью проверяющего объекта XmlReader.

    В следующем примере показаны 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 будет сформировано исключение.







    Node 1

    Node 2



    Это происходит потому, что конструкция с точки зрения модели DOM представляет собой недопустимую инструкцию ProcessingInstruction. Согласно спецификации пространства имен в XML, инструкции ProcessingInstruction могут быть только именами, не содержащими двоеточий (NCNames), в противоположность полным именам (QNames).

    Согласно разделу 6 спецификации пространств имен в XML наличие методов Load и LoadXml обеспечивает выполнение в документе следующих условий:

    • Все типы элементов и имена атрибутов содержат одно двоеточие или не содержат ни одного.

    • Имена сущностей, цели инструкции ProcessingInstruction и имена нотаций не могут содержать двоеточий.

    Поскольку конструкция содержит двоеточие, это является нарушением второго правила.

    Согласно рекомендации консорциума W3C Связь таблиц стилей с XML-документами версии 1.0, инструкция по обработке, связывающая таблицу стилей XSLT с XML-документом, выглядит следующим образом: , то есть двоеточие заменено на тире.
    1   ...   11   12   13   14   15   16   17   18   ...   32


    написать администратору сайта