МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
Скачать 2.76 Mb.
|
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
|