Я создаю соответствующий синтаксический анализатор XML в C ++ и пытаюсь сделать его легким для использования в карманных ПК.
Вначале я решил добавить некоторые "события" в свой парсер, как это делает SAX, сообщая об элементах, инструкциях по обработке и т. Д.
Эти события принимаются производным классом, который создает дерево DOM для xml.
Мои сомнения возникают при попытке обработать в основном сущности (которые могут содержать элементы, пи и комментарии внутри, если они определены) и их разрешение.
Например, я могу создать класс XMLEntityRef, который ссылается на некоторый XMLEntity, определенный в некотором объекте XMLDocType, как это делает .NET system.xml parser.
Как я знаю, для большинства целей приложению необходимо знать элемент, его содержимое, его соответствующие атрибуты и их соответствующие значения ... только строки ... ему все равно, формируется ли содержимое элемента объектами cdata , ссылки на сущности и / или простой текст ... то же самое относится к значениям атрибутов.
Итак, мой вопрос заключается в следующем: каково преимущество передачи приложению каждого XML-объекта в том виде, в котором он появляется, и возможности его (или вспомогательного класса) для создания, например, значения результирующего атрибута путем объединения текстов и разрешения ссылки на сущности?
Если я делаю опрос, пожалуйста, ответьте: ваше приложение должно знать о тегах cdata и о том, где они находятся в XML-файле, или вы упростите задачу ... вы хотите узнать полное значение содержимого элемент в строке, не беспокоясь о том, как он построен?
С наилучшими пожеланиями,
Мауро Х. Легжери