XML: проблема с непечатаемыми символами
От: _strannik_  
Дата: 29.11.06 17:27
Оценка:
Всем доброго времени суток.
Имеется следующая ситуация: в xml документ помещаются некоторые данные, вычитанные из реестра и содержащие непечатаемые символы. При чтении этих данных естественно возникает проблема. Какие есть пути решения проблемы?

Варианты:
1) Записывать данные в Xml в шестнадцатиричном виде
— возрастает объём
— необходимо писать специальный парсер
2) Кодировать только символ
— необходимость в определении закодированного символа
3) Не записывать такие символы
— потеря данных

Возможно есть встроенный механизм определения таких символов? или механизм представления данных не в текстовом виде?

P.S. используется xerces 2.7

Всем заранее спасибо
Re: XML: проблема с непечатаемыми символами
От: kan Великобритания  
Дата: 29.11.06 17:47
Оценка:
_strannik_ wrote:

> Возможно есть встроенный механизм определения таких символов? или

> механизм представления данных не в текстовом виде?
xml — текстовый формат. Там может быть только текст. Бинарные данные обычно base64 кодируют.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: XML: проблема с непечатаемыми символами
От: WinterMute Россия http://yarrr.ru
Дата: 30.11.06 09:22
Оценка:
Здравствуйте, _strannik_, Вы писали:

Кодировать непечатаемые символы числовыми сущьностями.
Помещать их в секцию CDATA

__>Всем доброго времени суток.

__>Имеется следующая ситуация: в xml документ помещаются некоторые данные, вычитанные из реестра и содержащие непечатаемые символы. При чтении этих данных естественно возникает проблема. Какие есть пути решения проблемы?

__>Варианты:

__>1) Записывать данные в Xml в шестнадцатиричном виде
__> — возрастает объём
__> — необходимо писать специальный парсер
__>2) Кодировать только символ
__> — необходимость в определении закодированного символа
__>3) Не записывать такие символы
__> — потеря данных

__>Возможно есть встроенный механизм определения таких символов? или механизм представления данных не в текстовом виде?


__>P.S. используется xerces 2.7


__>Всем заранее спасибо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: XML: проблема с непечатаемыми символами
От: kan Великобритания  
Дата: 30.11.06 11:33
Оценка:
WinterMute wrote:

> Кодировать непечатаемые символы числовыми сущьностями.

> Помещать их в секцию CDATA
В CDATA имеет смысл помещать только текст, содержащий символы <, >, & (например, удобно для javascript-вставки).
Если символы являются текстом, то они могут идти в xml как есть. Если это просто байты, то только кодировать в текстовую
кодировку QP, BaseN и т.п. В xml обычно используют Base64.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: XML: проблема с непечатаемыми символами
От: WinterMute Россия http://yarrr.ru
Дата: 30.11.06 11:58
Оценка:
Здравствуйте, kan, Вы писали:

kan>WinterMute wrote:


>> Кодировать непечатаемые символы числовыми сущьностями.

>> Помещать их в секцию CDATA
kan>В CDATA имеет смысл помещать только текст, содержащий символы <, >, & (например, удобно для javascript-вставки).
kan>Если символы являются текстом, то они могут идти в xml как есть. Если это просто байты, то только кодировать в текстовую
kan>кодировку QP, BaseN и т.п. В xml обычно используют Base64.

Вообще говоря ты прав, CDATA может содердать только "Char"-содержимое, но, по идее, невалидирующие парсеры могут съесть любое содержимое между <[CDATA[ и ]]> и выдать всё как есть.
Re[4]: XML: проблема с непечатаемыми символами
От: kan Великобритания  
Дата: 30.11.06 12:13
Оценка:
WinterMute wrote:

> kan>В CDATA имеет смысл помещать только текст, содержащий символы <, >,

> & (например, удобно для javascript-вставки).
> kan>Если символы являются текстом, то они могут идти в xml как есть.
> Если это просто байты, то только кодировать в текстовую
> kan>кодировку QP, BaseN и т.п. В xml обычно используют Base64.
>
> Вообще говоря ты прав, CDATA может содердать только "Char"-содержимое,
> но, по идее, невалидирующие парсеры могут съесть любое содержимое между
> <[CDATA[ и ]]> и выдать всё как есть.
Тут ведь как... могут выдать, а могут и не выдать!
Стандарту это не соответствует, а потому лучше не использовать. Иначе непонятно — какой смысл от xml.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: XML: проблема с непечатаемыми символами
От: Аноним  
Дата: 30.11.06 17:15
Оценка:
Здравствуйте, _strannik_, Вы писали:

__>Всем доброго времени суток.

__>Имеется следующая ситуация: в xml документ помещаются некоторые данные, вычитанные из реестра и содержащие непечатаемые символы. При чтении этих данных естественно возникает проблема. Какие есть пути решения проблемы?

__>Варианты:

__>1) Записывать данные в Xml в шестнадцатиричном виде
__> — возрастает объём
__> — необходимо писать специальный парсер
__>2) Кодировать только символ
__> — необходимость в определении закодированного символа
__>3) Не записывать такие символы
__> — потеря данных

__>Возможно есть встроенный механизм определения таких символов? или механизм представления данных не в текстовом виде?


__>P.S. используется xerces 2.7


__>Всем заранее спасибо


Как вариант переходить на .net и использовать XML парсер оттдута.
Корректно преобразовывает символы в конструкции вида &x01A и т.п. и считывает обратно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.