2011-02-04 2 views
1

Использование Xerces SAX парсер я пытаюсь извлечь все элементы и их атрибуты этого XML-файла:Xerces SAX парсер игнорировать xmlxs: XSI атрибут как атрибут элемента

---------- ---- Begin XML-файл для анализа ---------------->

<?xml version="1.0" encoding="UTF-8"?> <invoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="my.xsd"> <parties> (...)

-------------- Конец XML-файл для разбора ---------------->

При получении атрибутов для «invoice» элемента Xerces ++ не вставляет атрибут «xmlns: xsi» в список«Атрибуты» для элемента «счет-фактура». Однако атрибут 'xsi: noNamespaceSchemaLocation' вставляется в список.

Почему? Есть ли конкретная причина с точки зрения стандарта XML? Есть ли способ настроить синтаксический анализатор Xerces ++ SAX так, чтобы он вставлял этот атрибут? (Документация по настройке свойств парсера не указывается).

Благодарим за помощь.

ответ

2

SAX рассматривает объявления пространства имен иначе, чем атрибуты. Атрибуты уведомляются в событии startElement(), пространства имен уведомляются (если требуется) в событии startPrefixMapping().

+0

Большое спасибо, это отвечает на мой вопрос. – cazdevel

Смежные вопросы