![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
вот, приведу начало xslt-ника:
беру нужный для него xml-ник, гружу в Altova XMLSpy, натравливаю на него этот xslt-ник и получаю ошибку на <xsl:variable name="pip" select="math:sqrt(10.1)"/> о том, что Function not in namespace. А как-же так? xmlns:math="java.lang.Math" - есть ведь! В чем я не прав? Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
вот это:
xmlns:math="java.lang.Math" меня напугало. может быть я не прав, но вообще math:sqrt это из EXSLT. подключать надо так: xmlns:math="http://exslt.org/math" что такое EXSLT смотреть тут: http://www.exslt.org но это пол беды. еще твой JAXP compatible transformer должен это суметь сожрать. потому как нужно чтобы была имплементация EXSLT... и еще одно XMLSpy это не java-мир. не факт, что то что успешно отработает в XMLSpy будет так же прекрасно работать c используемыми тобой JAXP compatible имплементациями... ну и вдогонку: есть еще стандарт XSLT 2.0 который держет custom функции. деталей я к сожалению не знаю, но знаю что sqrt таким образом можно описать и что Saxon8-B поддерживает XSLT 2.0. P.S. вообще нужно понимать, что стандарты XSLT не имеют с Java ничего общего... Это сообщение отредактировал(а) ALKS - 18.4.2006, 18:14 |
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
вот. добился. привожу результат.
1. SMXSpy ничего про Xalan не знает, от сбда и все проблеммы. Пришлось отлаживать путем многокр. запусков web приложения где все это используется ![]() вот xslt (часть):
теперь все прекрасно работает. с Xalan надо пользовать типа xmlns:CONS="xalan://com.*.business" и очень дуратская система работы с созданным объектом и его методами java:format($dfmt,$cur_date)) - где dfmt - объект тиа DateFormat, возврящаемый по CONST.getHumanDateFormat() т.е. написать типа CONS:CONST.getHumanDateFormat().format($cur_date) - нельзя! ![]() информация почерпнута из http://xml.apache.org/xalan-j/extensions.html#java-namespace А может кто посоветовать XML редактор с XSLT преобразователем, который может использовать Xalan? Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
Я пользуюсь этим:
http://www.editix.com/release.html Он позволяет подключать произвольный JAXP compaible парсер и/или трансформер(и Хalan естественно в том числе) можно играть с разными имплементациями и их версиями, как следствие. да и вообще мощный, полноценный XML-Editor. P.S. Не знал что Xalan такое умеет. Но я бы в любом случае так не делал. твой XSL, подозреваю, не переносим теперь даже между различными имплементациями JAXP а про мир вне Java даже реч не идет... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Попробуй Stylus Studio XML, по моему он поддерживает Xalan. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
To ALKS & LSD - большое СПАСИБО за наводки. правда Stylus платный. а я бедный довольно сильно как и контора.
То ALKS я пользую xslt-fo - с сериалайзером в эсель (xls). В исходном XML нет и не будет даты генерации отчета. А юзера хотят дату и время в эеселе. Что-бы Вы предложили? Добавлено @ 16:25 блин. я хотел сказать Exсel ![]() -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
![]() если у вас нету куска пластелина то вы не cможете показать другу слепленный из пластилина кубик ![]() ![]() Это сообщение отредактировал(а) ALKS - 19.4.2006, 17:45 |
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
To ALKS (к сожалению - цитирование НЕ работает - это МОДЕРАТОРАМ и сисопам! - просто цитириуем а потом ссылки по предв. просмотру и публикации - просто ничего не делают)
Увы, вынужден Вас огорчить. Генерация xml варианта отчета ни одному пользователю лично у нас не нужна, посему именно сразу после генерации накладывается преобразование в нужный (и выбранный пользователем ) формат. Если у Вас по другому - я опускаю кисточку и палитру перед Вами! ![]() Так вы так и не ответили мне на простой вопрос - как получить _правильно_ с точки зрения xslt дату генерации отчета если ее нет в исходном xml. Извините - xml исходный уже не подправить - по разделению прав (дуратскому, принятому только с внедрением XSLT) источник генерации xml уже не доступен ![]() Итак? Конечно дурных отзывов можно написать много, что не правильно учтена постановка задачи для входного xml к примеру. Ага. только требование вот понимаете, народилось гораздо позже, чем была произведена постановка задачи на xml входной. Право слово - порой кажется что некоторые сидят (я не про Вас конкретно) на разовой работе - получил ТЗ детерминированное, сделал - отвалил ... вот и результат кстати, который я и обсуждаю ... Бога Ради! простите за резкость. но надоели разовые решения и размазывание алгоритмов по всяческим технологиям. Все ведь просто - был-бы класс, генерирующий БЕЗ xslt прямой XLS - поправил-бы я его и все ... а тут ... А ведь простейшая проблемка -то возникла. а сколько трудов ..., съеденнго инета, напряжения других людей. Итак - все-ж жду предложений как это сделать не прибегая к вызовам java методов в xslt ... PS: простите все, я не гуру в XSLT но блин - из-за одной даты потратил более 4-х часов.... никуда не годится ... Добавлено @ 19:09 прикольно. у меня часы кажут 20:08 (время -2 минуты публикации мессага) а пред. письмо по часам сайта Дата 19.4.2006, 19:06 (ссылка) эээ. вроде не есть хорошо. -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
ALKS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
А я тебе уже давал линк
![]()
Xalan последней версии это умеет, как и заявлено на сайте EXSLT. я проверил. а вот как эту дату форматировать это уже вопрос второй. ![]() Вообще Sleepy я тебе настоятельно рекомендую разобраться с EXSLT, хотя бы потому что EXSLT достаточно широко поддерживается за пределами java трансформатерров (я почти на 100% уверен что например XMLSpy поймёт EXSLT) и IMHO это более правильный путь чем неявный вызов JAVA API. P.S. вообще лично я использую Saxon а не Xalan. главным образом потому что SAXON поддерживает XSLT 2.0 и XPath 2.0. а XPath 2.0 это вот: http://www.w3.org/TR/2001/WD-xquery-operators-20011220/ - что ещё нужно для счастья? Это сообщение отредактировал(а) ALKS - 19.4.2006, 21:19 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |