![]() |
|
Модераторы: diadiavova |
![]()
|
|
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Доброго времени суток.
элемент имеет тип xs:bool. Считываю значение и проверяю с помощью xs:if - всегда получаю true, не зависимо от того, какое значение в элементе. Я так понял, что XSL не в состоянии определить тип объекта, несмотря на наличие XSD. Тогда вопрос такой: как преобразовать то, что содержится в элементе в логическое значение, чтобы можно было проверить его в конструкции xs:if ? Спасибо. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Вообще-то преобразование производится автоматически, но при этом используется своя логика. Для явного преобразования можно использовать функцию boolean(), а если результат будет неверным, то видимо выражение придется записать иначе. Типы xsd не учитываются и преобразование о схеме ничего не знает. Добавлено через 26 секунд http://msdn.microsoft.com/ru-ru/library/ms...28VS.90%29.aspx -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Compositum |
|
||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
что-то не работает у меня boolean() так как надо... Всё время true возвращает...
Исходный XML-файл:
Как видим, имеется два логических значения... Однако такая стока кода:
всегда возвращает true (переменная showNumbers содержит значение элемента с nameId="showPositionColumn")... Не важно, что я задам: true, false, 0 - всё равно условие проходит... |
||||
|
|||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Не видим. Эти значения воспринимаются как строки. Так что надо было именно что изменить выражение. В таком виде точно работало бы
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
да, в таком виде оно у меня и так изначально работало, но ведь это плохое решение... :( Сейчас поясню. На самом деле элемент, которому я присваиваю логическое значение имеет такой тип:
Т.е. я ожидаю, что XSL видя XSD схему сможет понять, что значение нужно воспринимать как логическое, а не строковое. Ведь проблема в том, что логическое значение "истина" может быть записано по разному: true, TRUE, True, TruE, 1. Не хотелось бы все варианты обрабатывать с помощью xsl:choose... Это сообщение отредактировал(а) Compositum - 3.4.2012, 22:14 |
||||||
|
|||||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Я уже несколько раз сказал, что хсл вообще пофиг, что написано в схеме и пофиг, что ты от него ожидаешь. У него есть своя логика обработки и он следует только ей. А логика состоит в том, что для него это строка. Либо введи ограничение на способ записи, либо предусмотри все варианты. Для реализации регистронезависимой проверки можно воспользоваться функцией translate, которая поможет унифицировать запись, путем приведения всех символов к одному регистру. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |