Проверка электронной почты встроенного шаблона вызова XSLT Biztalk Mapper

Я пытаюсь проверить адрес электронной почты с помощью карты, чтобы подтвердить правило проверки \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+). Я новичок в этом и не нашел особой помощи через поиск, поэтому опубликую встроенный вызов xslt, который я должен посмотреть, сможет ли кто-нибудь исправить мою ошибку.

<xsl:template name="EmailAdress" xmlns:msxsl="urn:schemas-microsoft-com:xslt" >
 <xsl:param name="inEmail"/>
 <xsl:element name="p:Email" >
     <xsl:value-of select="Maches(upper-case(inEmail),'\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)'/>
 </xsl:element>


person PuffTMD    schedule 19.05.2014    source источник
comment
Совпадения и функции верхнего регистра — это функции XSLT 2.0. Поддерживает ли это BizTalk mapper?   -  person Tim C    schedule 19.05.2014
comment
@TimC, вы правы, они не поддерживаются текущей версией Biztalk. Альтернативное решение должно было быть сортировано :).   -  person PuffTMD    schedule 20.05.2014


Ответы (1)


Это было решено путем реализации двух функтоидов скрипта (один встроенный шаблон вызова xslt, другой встроенный C#) со следующим выполнением кода:

Один

<xsl:template name="eaddress">
  <xsl:param name="memail"/>
  <xsl:if test="userCSharp:valEmailAdd(.)">
    <email><xsl:value-of select="."/><email>
  </xsl:if>
</xsl:template>

Два

public bool valEmailAdd(string eadd) {return regex.match(eadd, @"<validation>").Success;}
person PuffTMD    schedule 20.05.2014