Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Генерация XML-документов с помощью CSP / 6 сообщений из 6, страница 1 из 1
13.05.2008, 10:17
    #35308117
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
В csp-ишном квик старте написано
авторГенерация XML-документов с помощью CSP
CSP-страница может возвращать в браузер не только HTML, но и XML.
Создадим CSP-страницу, которая возвращает XML-документ с информацией обо всех экземплярах класса
Sample.Person. Так как класс Sample.Person наследник %XML.Adaptor, можно использовать метод XMLExport()
для экспорта каждого экземпляра класса в XML.
Создайте в Caché Studio новый класс csp.XMLServer типа CSP Page. Выберите тип контента XML.
Получаем

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/// Поиск
Class tmp.find Extends %CSP.Page
{

ClassMethod OnPage() As %Status
{
	Write "<?xml version=""1.0"" ?>",!
	Quit $$$OK
}

Parameter CONTENTTYPE = "text/xml";

}

А как указать параметр CONTENTTYPE если создавать не класс... А "просто" csp страницу? Или для для XML-ного возврата нужно делать именно класс?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
13.05.2008, 10:39
    #35308201
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<server>
 w "<?xml version=""1.0"" ?>"
 w "<DOC>"
 w "<FIELD/>"
 w "</DOC>"
</server>
<CSP:PARAMETER name="CONTENTTYPE" VALUE="text/xml">
<CSP:CLASS SUPER="бла бла бла" description="1.0 Базовая версия">
<CSP:PARAMETER name="VERSION" VALUE="1.0">

Если указывать <CSP:xxx> в начале файла - то компилятор генерить в OnPageCSPROOT переводы строк, а то и пробелы (попробуй их заметить в csp) - а это в свою очередь, почему то приводить к косякам при разборе XML на стороне браузера (не всегда и не везде).

PS: Возможно еще потребуется указать кодировку
...
Рейтинг: 0 / 0
13.05.2008, 11:31
    #35308353
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
Код: plaintext
1.
2.
<CSP:CLASS SUPER="бла бла бла" description="1.0 Базовая версия">
<CSP:PARAMETER name="VERSION" VALUE="1.0">
Это обязательно указывать? Или можно без этого?
PtnВозможно еще потребуется указать кодировку
А это как сделать?
...
Рейтинг: 0 / 0
13.05.2008, 12:35
    #35308570
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
krvsa
Код: plaintext
1.
2.
<CSP:CLASS SUPER="бла бла бла" description="1.0 Базовая версия">
<CSP:PARAMETER name="VERSION" VALUE="1.0">
Это обязательно указывать? Или можно без этого?

Нет - по крайней мере VERSION - ибо это наша внутренния кодировка версий, но

<CSP:CLASS SUPER="%CSP.Page" description="1.0 Базовая версия">
Я бы рекомендовал оставить - потому что этот description перекочует в cls-ку и по ней можно будет что либо читать (мы там историю версий пишем)

krvsa
PtnВозможно еще потребуется указать кодировку
А это как сделать?

М-м-м тут непонятно ... с одной стороны - нужна ли она Вам вообще, то есть будут ли у Вас в тексте русские буквы - далее например IE-шный парсер при запросе xml с http запроса - ждет UTF8 ...

Вариантов несколько
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
из %CSP.Page
/// Specifies the default character set for the page.  This can be overriden using the
/// <CSP:CONTENT CHARSET=> tag, or by setting the <b>%response</b>.CharSet property
/// in the <method>OnPreHTTP</method> method.  If this parameter is not specified, then
/// for Unicode systems the default charset is utf- 8  and for  8 -bit systems it is the
/// system default charset.
Parameter CHARSET;

/// Соотвественно (вот кстате не помню как правильно писать UTF8 или UTF- 8 )
<CSP:PARAMETER name="CHARSET" VALUE="UTF-8">
/// или вручную первой строкой в переопределенном методе OnPreHTTP
set %response.CharSet ="UTF8"

//Либо - просто тупо все выводимую информацию переводить
w $ZCVT(str,"O","UTF8")

Нам пришлось идти по второму варианту - потому что у нас там еще собственное gzip сжатие прикручено - и %response срабатывал не там где надо
...
Рейтинг: 0 / 0
13.05.2008, 12:38
    #35308586
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
Опечатался - <CSP:CONTENT CHARSET=> tag
...
Рейтинг: 0 / 0
13.05.2008, 13:06
    #35308680
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация XML-документов с помощью CSP
Спасибо.
Принимать данные будет другая сторона... Вот и интересуюсь т.с. на всякий случай.
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Генерация XML-документов с помощью CSP / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]