Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production


select xmlelement(
			"b",
			xmlattributes(
				'первая строка' || chr(10) || 'вторая строка' as "attribute"))
	from dual
возвращает строку с символом 0x0A (10), разделяющим "первую" и "вторую" строки:
<b attribute="первая строка
вторая строка"></b>

select insertchildxml(
			xmltype('<a/>'),
			'/a',
			'b',
			xmlelement(
				"b",
				xmlattributes(
					'первая строка' || chr(10) || 'вторая строка' as "attribute")))
	from dual
возвращает строку, в которой символ 0x0A заменен на пробел (видимо, в связи с нормализацией)
<a><b attribute="первая строка вторая строка"/></a>

как сохранить перевод строки?

спасибо
5 дек 08, 21:13    [6532956]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3778
--Eugene--,

http://www.w3schools.com/XML/xml_cdata.asp
5 дек 08, 21:17    [6532965]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Андрей Панфилов
http://www.w3schools.com/XML/xml_cdata.asp

я не могу "запихать" CDATA в атрибут
5 дек 08, 21:19    [6532967]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
mustaccio
Member

Откуда: Москва -> Торонто
Сообщений: 494
http://www.w3.org/TR/2006/REC-xml-20060816/#AVNormalize
5 дек 08, 21:25    [6532981]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
mustaccio
http://www.w3.org/TR/2006/REC-xml-20060816/#AVNormalize
а можно узнать, что конкретно я должен сделать?
5 дек 08, 21:37    [6533009]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
DBA с чувством юмора
Guest
автор
Как сохранить непечатные символы при передаче данных в виде XML ?

Ругаетесь?
5 дек 08, 22:07    [6533080]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
mayton
Member

Откуда: loopback
Сообщений: 49745
--Eugene--
а можно узнать, что конкретно я должен сделать?

Значит тут такая ботва. Лучше использовать тег CDATA, как тебе подсказали выше. Переводы строки не принято толкать в значения атрибутов. Можешь попробовать так:

<?xml version="1.0" encoding="windows-1251"?>
<a>
 <b attribute="первая строка & #x0A; вторая строка"/>
</a>
[i](между амперсанд и решёткой убери пробел)

Но explorer при просмотре показывает эти символы как пробелы. Как поведёт себя сторонний XML парсер - неизвестно. Можно покурить стандарты, но мне как-то лень. Читай сам.
5 дек 08, 23:04    [6533194]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
mustaccio
Member

Откуда: Москва -> Торонто
Сообщений: 494
--Eugene--
mustaccio
http://www.w3.org/TR/2006/REC-xml-20060816/#AVNormalize
а можно узнать, что конкретно я должен сделать?


Ну entity вставить, наверное. �d;

Только процессор его потом все одно в пробел преобразует.
5 дек 08, 23:05    [6533196]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
mustaccio
Member

Откуда: Москва -> Торонто
Сообщений: 494
mustaccio


Ну entity вставить, наверное.


& # x 0 a ;

Пробелы убрать, понятное дело.
5 дек 08, 23:47    [6533287]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить непечатные символы при передаче данных в виде XML ?  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
mayton
Можешь попробовать так:
<?xml version="1.0" encoding="windows-1251"?>
<a>
 <b attribute="первая строка & #x0A; вторая строка"/>
</a>
(между амперсанд и решёткой убери пробел)
мне нужно сохранить перенос строки именно в этой конструкции:
select insertchildxml(
			xmltype('<a/>'),
			'/a',
			'b',
			xmlelement(
				"b",
				xmlattributes(
					'первая строка' || chr(10) || 'вторая строка' as "attribute")))
	from dual
здесь я не могу chr(10) заменить на & #10 либо & #x0A. или могу?


mustaccio
Ну entity вставить, наверное
я прошу прощения за свою тупость, но не могли бы вы показать на примере, как это сделать в случае, описанном выше?
8 дек 08, 11:05    [6537636]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить