Хобрук: Ваш путь к мастерству в программировании

Использование пустых элементов в выражениях BizTalk

У меня есть нулевой десятичный элемент, определенный в схеме xsd следующим образом:

<xs:element name="myDecimalValue" nillable="true" type="xs:decimal" /> 

Это выделенное поле, и я хочу проверить, является ли оно нулевым в форме выражения. Я мог бы использовать функцию xpath() следующим образом:

xpath("string(//*[local-name()='myDecimalValue']/@*[local-name()='nil'])") == "true"

Но это выглядит немного сложно для простой проверки на ноль. Поэтому мне интересно, если я что-то упустил, и есть ли лучший способ сделать это?

20.04.2012

Ответы:


1

вы можете попробовать использовать форму решения вместо xpath

ваша форма решения будет выглядеть так, просто спросите, имеет ли myDecimalValue значение null

 msgName.myDecimalValue != null here

чем можно продолжить свою логику

если вы используете выделенное поле, используйте его более читаемым для других разработчиков

ИЗМЕНИТЬ:

можете попробовать
varString = System.Convert.ToString(msgName.myDecimalValue);

а затем спросите, является ли varString нулевым или нет

я попробовал, и он хорошо компилируется

надеюсь поможет :)

21.04.2012
  • Вы не можете сравнивать десятичное и нулевое. Вы получите эту ошибку: operator '!=' cannot be applied to operands of type 'System.Decimal' and 'null' 23.04.2012
  • Это тоже не сработает. Поскольку msgName.myDecimalValue имеет тип System.Decimal, а не System.Nullable‹decimal›, System.Convert.ToString() не может вернуть значение null. 25.04.2012

  • 2

    У меня есть подозрение, что это невозможно.

    В частности, с сайта http://support.microsoft.com/kb/942250.

    Свойства, имеющие нулевое значение, не разрешены в контексте сообщения. Поэтому, если в контекст сообщения будет записано нулевое значение, это значение будет удалено.

    (это находится в разделе документа, относящемся к продвигаемым и выдающимся свойствам, поэтому я предполагаю, что это применимо к обоим).

    Таким образом, похоже, что ваше решение xpath может быть необходимым решением, поскольку выделенное свойство все равно не будет в контексте сообщения.

    18.06.2012
  • Я думаю, что это применимо только к продвигаемым объектам. Отличительные свойства не записываются в контекст сообщения, поэтому допускаются нулевые значения. Но в любом случае, похоже, что xpath - единственный способ добраться сюда. 16.01.2013
  • В связи с этим недавно был случай, когда поле Distinguished было полностью опущено во входящем составном сообщении. Форма выражения, которая пыталась его вычислить (msg.Part.DistinguishedField), выдала исключение Null Reference Exception. Так что да, xpath действительно самый безопасный, если он также не проверен или предварительно не проанализирован с помощью map/xslt, чтобы убедиться, что поле правильное, как и ожидалось. 16.01.2013
  • Новые материалы

    Управление DOM для чайников вроде меня
    Одной из первых вещей, которую мы рассмотрели, когда начали изучать Javascript во Flatiron, была модель DOM. Кто он? Чем он занимается? Он больше машина, чем человек? Ну да довольно много. ДОМ..

    Что такое структура данных?
    Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

    мои январские чтения по программированию
    Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

    Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
    Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

    Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
    На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

    Введение в машинное обучение для обнаружения аномалий (часть 1)
    Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

    Начало работы с Pulumi в Digital Ocean
    Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..