【问题标题】:How do I access a distinguished field in a BizTalk multipart message如何访问 BizTalk 多部分消息中的可分辨字段
【发布时间】:2017-01-11 16:04:48
【问题描述】:

我有一条包含此架构的多部分消息(为简洁而编辑):

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://MyCompany/Schemas/Canonical/Property/1.0" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://MyCompany/Schemas/Canonical/Property/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Property">
    <xs:annotation>
      <xs:appinfo>
        <b:properties>
          <b:property distinguished="true" xpath="/*[local-name()='Property' and namespace-uri()='http://MyCompany/Schemas/Canonical/Property/1.0']/*[local-name()='UPRN' and namespace-uri()='']" />
        </b:properties>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="Addresses">
          <xs:complexType />
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="UPRN" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

鉴于业务流程中的消息名称是 MyMessage,我将如何访问 BizTalk 表达式编辑器中可分辨字段“UPRN”的值。

当我尝试点表示法时,我从 IntilliSense 得到的只是 MyMessage.Property

【问题讨论】:

  • UPRN 被定义为 minOccurs 0,这可能会导致您出现问题。
  • 很奇怪。我可以使用您提供的架构重现该问题,但是当我手动重新创建架构时,它会按预期工作。
  • 现在我无法再复制了。所以一定是发生了什么奇怪的事情。尝试删除多部分消息类型并重新创建它。

标签: biztalk


【解决方案1】:

应该是这样的:

MessageName.PartName.RootNode.ElememtName[...].FieldName

【讨论】:

  • 所以,这个答案是正确的...downvote 不正确,对不起:(
  • 其实Rootnode不在里面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
相关资源
最近更新 更多