Файл: Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 594

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1.Цель и задачи работы

2.Общие положения (теоретические сведения)

2.1. Принцип рекурсии в правилах грамматики

2.2. Запись правил грамматик с использованием метасимволов

2.3. Запись правил грамматик в графическом виде

3. Задание на лабораторную работу

4. Ход работы (порядок выполнения работы)

5. Содержание отчета

1.Цель и задачи работы

2.Общие положения (теоретические сведения)

2.1. Разработка лексического анализатора

2.2. Разработка синтаксического анализатора

2.3. Пример построения простого синтаксического анализатора

2.4. Анализаторы для сложных рекурсивных грамматик

5. Содержание отчета

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

2.5. Логическая структура XML-документа

2.8. Описание структуры XML-документов

2.9. Язык XML Sсhema Definition (XSD)

2.10. Программная обработка XML-документов

2.11. Обработка XML-данных с использованием модели DOM

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

2.14. Сопоставление объектной иерархии с XML-данными

2.15. Создание XML-документа

2.16. Считывание XML-документа в DOM

2.17. Директивы таблицы стилей, встроенные в документ

2.18. Загрузка данных из модуля чтения

2.19. Доступ к атрибутам в модели DOM

2.20. Получение всех атрибутов в виде коллекции

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

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

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

2.24. Разворачиваемые и не сохраняемые ссылки на сущности

2.25. Создание новых узлов в модели DOM

2.26. Создание новых атрибутов для элементов в модели DOM

2.27. Атрибуты по умолчанию

2.28. Дочерние узлы атрибута

2.29. Проверка имен XML-элементов и атрибутов при создании новых узлов

2.30. Создание новых ссылок на сущности

2.32. Копирование существующих узлов

2.33. Копирование существующих узлов из одного документа в другой

2.34. Копирование фрагментов документа

2.35. Удаление узлов, содержимого и значений из XML-документа

2.36. Изменение узлов, содержимого и значений в XML-документе

2.37. Проверка XML-документа в DOM

2.38. Проверка XML-документа в DOM

2.39. Обработка ошибок проверки и предупреждений

2.40. Сохранение и запись документа

2.41. Запись XmlDeclaration

2.42. Запись содержимого документа с помощью свойства OuterXml

3.Задание на лабораторную работу

4. Ход работы (порядок выполнения работы)

5. Содержание отчета

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

3.1. Запись макроса

3.2. Организация ввода данных

3.3. Вывод данных

3. Задание на лабораторную работу

4. Ход работы (порядок выполнения работы)

5. Содержание отчета

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

Организация ввода данных

Вывод данных

Заключение

3. Задание на работу

4. Ход работы (порядок выполнения работы)

5. Содержание отчета

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

3.4. Эскизы

3.5. Эскизы в документах Деталей

3.6. Взаимодействие с пользователем

3.7. Выбор файла

3 Задание на работу (рабочее задание)

4. Ход работы (порядок выполнения работы)

5. Содержание отчета

определяющие ссылку на общую сущность, оно ищет это имя в таблице деклараций сущностей. Ссылка &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.

2.24. Разворачиваемые и не сохраняемые ссылки на сущности


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


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

Сущности-символы, такие как B и <, не сохраняются. Вместо этого они всегда разворачиваются и представляются в виде текстовых узлов.

Чтобы сохранить узлы XmlEntityReference и дочерние узлы в присоединенной у ней ссылке на сущности, установите флаг EntityHandling в значение ExpandCharEntities. В противном случае оставьте для флага EntityHandling значение по умолчанию - ExpandEntities. В этом случае узлы ссылок на сущности не будут отображаться в модели DOM. Эти узлы замещаются узлами-копиями дочерних узлов декларации сущности.

Один побочный эффект от несохранения ссылок на сущности состоит в том, что после сохранения документа и передачи его в другое приложение этому приложению будет неизвестно, что узлы были порождены ссылкой на сущность. Если же ссылки на сущности сохраняются, то принимающее приложение, обнаружив ссылку на сущность, считает ее дочерние узлы. Очевидно, что дочерние узлы представляют данные, находившиеся в декларации сущности. Например, модель DOM в случае сохранения ссылок на сущности теоретически имела бы следующую структуру.

XmlElement: publisher

XmlEntityReference: &publisher;

XmlText: Microsoft Press

Если ссылки на сущности разворачиваются в модели DOM (метод по умолчанию), древовидная структура имеет следующий вид:

XmlElement: publisher

XmlText: Microsoft Press

Обратите внимание, что ссылка на сущность отсутствует и принимающее приложение не может определить, что узел XmlText со значением "Microsoft Press" был создан из декларации сущности.


Если используется модуль чтения, который не умеет разрешать сущности, метод Load создает исключение, когда обнаруживает ссылку на сущность.

2.25. Создание новых узлов в модели DOM


К классе XmlDocument доступен метод для создания всех типов узлов. Для создания узла методу нужно передать имя (если необходимо) и содержимое или другие параметры для узлов, имеющих содержимое (например, текстовый узел). Далее представлены методы, которым необходимо передать имя и некоторые другие параметры для создания нужного узла.

  • CreateCDataSection

  • CreateComment

  • CreateDocumentFragment

  • CreateDocumentType

  • CreateElement

  • CreateNode

  • CreateProcessingInstruction

  • CreateSignificantWhitespace

  • CreateTextNode

  • CreateWhitespace

  • CreateXmlDeclaration

Для других типов узлов недостаточно просто задать данные параметров.

После создания новых узлов становятся доступны несколько методов для вставки узлов в дерево. В таблице перечислены методы и описано место появления нового узла в модели XML DOM.

Таблица 2.15




Метод

Размещение узла

InsertBefore

Вставляется перед узлом ссылки. Например, следующий код вставляет новый узел в позицию 5:

Dim refChild As XmlNode = node.ChildNodes(4) 'The reference is zero-based.node.InsertBefore(newChild, refChild);

XmlNode refChild = node.ChildNodes[4]; //The reference is zero-based. node.InsertBefore(newChild, refChild);

Дополнительные сведения см. в описании метода InsertBefore.

InsertAfter

Вставляется после узла ссылки. Пример:

node.InsertAfter(newChild, refChild)

node.InsertAfter(newChild, refChild);

Дополнительные сведения см. в описании метода InsertAfter.

AppendChild

Добавляет узел в конец списка дочерних узлов заданного узла. Если добавляемый узел представляет собой XmlDocumentFragment, все содержимое фрагмента документа перемещается в дочерний список этого узла. Дополнительные сведения см. в описании метода AppendChild.

PrependChild

Добавляет узел в начало списка дочерних узлов заданного узла. Если добавляемый узел представляет собой XmlDocumentFragment, все содержимое фрагмента документа перемещается в дочерний список этого узла. Дополнительные сведения см. в описании метода PrependChild.

Append

Добавляет узел XmlAttribute в конец коллекции атрибутов, связанной с элементом. Дополнительные сведения см. в описании метода Append.