Струнный конкатенационный функтоид не возвращает сопоставленные значения в целевую запись - PullRequest
0 голосов
/ 08 мая 2018

У меня есть 3 индексных функтоида, каждый из которых получает значение из определенной записи в исходной схеме. Если в первом индексе есть значение, а во втором индексе нет значения, он должен отобразить первое значение индекса. Если второй индекс имеет значение, он должен отобразить это вместо этого. enter image description here

Третий индексный функтоид должен просто отображать свое значение, если оно есть.

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

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

1 Ответ

0 голосов
/ 08 мая 2018

Сопоставление значений определит, будет ли вообще генерироваться вывод, с приоритетом над тем, что последует.Если вы отладите свою карту, вы увидите, что Visual Studio создает два вложенных оператора <xsl:if> вокруг вашей конкатенации, но, поскольку они никогда не будут оба истинными, код недоступен.

Можно заменить функтоиды отображения значений.с помощью скриптовых функтоидов и сделайте что-то вроде этого:

public string MyValueMapping(bool mapValue, string value)
{
  return (mapValue ? value : string.Empty);
}
...