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

  • XmlAttribute

  • DocumentElement

  • Выходные данные

  • XmlEntityReference publisher; , содержащий ссылочную переменную

  • XmlEntity и XmlText

  • XmlEntityReference

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


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

    2.21. Получение единичного узла атрибута


    Для получения из элемента одного узла атрибута используется метод XmlElement.GetAttributeNode. Он возвращает объект типа XmlAttribute. Для полученного объекта XmlAttribute доступны все методы и свойства класса System.Xml.XmlAttribute, например, значение OwnerElement.

    C#

    using System;

    using System.IO;

    using System.Xml;
    public class Sample

    {

    public static void Main()

    {

    XmlDocument doc = new XmlDocument();

    doc.LoadXml("" +

    "" +

    "
    14.95
    " +

    "
    ");
    // Move to an element.

    XmlElement root = doc.DocumentElement;
    // Get an attribute.

    XmlAttribute attr = root.GetAttributeNode("ISBN");
    // Display the value of the attribute.

    String attrValue = attr.InnerXml;

    Console.WriteLine(attrValue);
    }

    }

    Можно также поступить как в предыдущем примере, где единичный узел атрибута был получен из коллекции атрибутов. Следующий пример демонстрирует, как с помощью одной строки кода получить по значению индекса один атрибут из корневого элемента дерева XML-документа, существующего в виде свойства DocumentElement.

    C#

    XmlAttribute attr = doc.DocumentElement.Attributes[0];

    2.22. Считывание объявлений сущностей и ссылок на сущности в DOM


    Сущность является декларацией, определяющей имя, которое будет использоваться в XML-документе вместо содержимого или разметки. Сущность состоит из двух частей. Во-первых, в декларации сущности необходимо связать имя с заменяющим его содержимым. Декларация сущности создается с помощью синтаксиса определения DTD или схемы XML. Во-вторых, определенное в декларации сущности имя впоследствии используется в XML-документе. При использовании в XML-документе оно называется ссылкой на сущность. Например, следующая декларация сущности определяет сущность с именем publisher, связанную с содержимым «Microsoft Press».



    В следующем примере показано использование декларации сущности в XML в качестве ссылки на сущность.

    Fred

    Published by &publisher;

    Некоторые средства синтаксического анализа автоматически развертывают сущности при загрузке документа в память. Поэтому, когда XML-документ считывается в память, декларации сущностей запоминаются и сохраняются. Если средство синтаксического анализа впоследствии встречает символы &;, определяющие ссылку на общую сущность, оно ищет это имя в таблице деклараций сущностей. Ссылка &publisher; заменяется содержимым, которое она представляет. Используя следующий XML-код,

    Fred

    Published by &publisher;

    разворачивает ссылку на сущность и заменяет &publisher; содержимым Microsoft Press, формируя следующий расширенный XML.

    Выходныеданные

    Fred

    Published by Microsoft Press

    Существует много типов сущностей. На следующей схеме показана классификация типов сущности и терминология.



    По умолчанию реализация модели DOM на платформе Microsoft .NET Framework сохраняет ссылки на сущности и не развертывает их при загрузке XML. Это означает, что при загрузке документа в модель DOM создается узел XmlEntityReference_publisher;_,_содержащий_ссылочную_переменную'>XmlEntityReference&publisher;, содержащий ссылочную переменную , с дочерними узлами, представляющими содержимое сущности, объявленной в определении DTD.

    Следующая схема на примере объявления сущности демонстрирует узлы XmlEntity и XmlText, создаваемые на основе этого объявления.



    Будут ли развертываться ссылки на сущности или нет - зависит от вида узлов, создаваемых в дереве модели DOM в памяти.

    2.23. Сохраняемые ссылки на сущности


    Если ссылки на сущности не разворачиваются, а сохраняются, модель XML DOM строит узел XmlEntityReference, когда обнаруживает ссылку на сущность.

    Используя следующий XML-код,

    Fred

    Published by &publisher;

    Модель DOM строит узел XmlEntityReference, когда встречает ссылку &publisher;. Узел XmlEntityReference содержит дочерние узлы, которые копируются из содержимого декларации сущности. В предыдущем примере присутствует текст в декларации сущности, поэтому узел XmlText создается как дочерний узел для узла ссылки на сущность.


    Древовидная структура для сохраняемых ссылок на сущности

    Дочерние узлы XmlEntityReference являются копиями всех дочерних узлов, созданных из узла XmlEntity в момент, когда была обнаружена декларация сущности.

    Примечание

    Узлы, копируемые из XmlEntity, не всегда остаются точными копиями после помещения в узел ссылки на сущность. Могут существовать пространства имен, лежащие в области узла ссылки на сущность, которые оказывают влияние на конечную конфигурацию дочерних узлов.

    По умолчанию сохраняются сущности общего вида, такие как &abc;, и всегда создаются узлы XmlEntityReference.
    1   ...   13   14   15   16   17   18   19   20   ...   32


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