Xsd 如何在BizTalk中创建记录数组

Xsd 如何在BizTalk中创建记录数组,xsd,biztalk,Xsd,Biztalk,我有一个xsd类型,它由一些元素组成。其中一个元素的定义如下 其中参数类型是 <xs:complexType name="ParametersType"> <xs:sequence> <xs:element name="Parameter" type="ParameterType" minOccurs="0" maxOccu

我有一个xsd类型,它由一些元素组成。其中一个元素的定义如下
其中
参数类型是

<xs:complexType name="ParametersType">
    <xs:sequence>
        <xs:element name="Parameter"
                    type="ParameterType"
                    minOccurs="0"
                    maxOccurs="unbounded" />
        <xs:element name="UserDefinedParameter"
                    type="xs:base64Binary"
                    minOccurs="0"
                    maxOccurs="1">
        </xs:element>
    </xs:sequence>
</xs:complexType>

也就是说,我有一个
参数
类型记录数组。到目前为止,我有两个问题:

  • 初始化该数组以及如何在表达式块中使用它
  • 如何调整从相同类型的传入消息到我的消息的映射

  • 当我们在这里讨论数组时,实际上是在讨论消息中嵌套的、可重复的节点

    一种解决方案是在编排的循环中分解阵列

    这并不简单,但这里有一个例子:

    各种表达式形状中的代码:

    在“计数数组项”中

    在“foreach数组项”中

    内部“增量循环索引”

    上面提供了一种方法来分解编排中的数组,并将每个“参数”类型作为xml文档进行访问(然后可以使用xml文档进行处理)


    希望这能有所帮助。

    当我们在这里讨论数组时,实际上是在讨论消息中的嵌套的、可重复的节点

    一种解决方案是在编排的循环中分解阵列

    这并不简单,但这里有一个例子:

    各种表达式形状中的代码:

    在“计数数组项”中

    在“foreach数组项”中

    内部“增量循环索引”

    上面提供了一种方法来分解编排中的数组,并将每个“参数”类型作为xml文档进行访问(然后可以使用xml文档进行处理)


    希望这有帮助。

    以及如何创建新的参数数组?例如,我有两个参数-用户登录名和域名-我想用两条记录填充一个参数数组。@javros您能详细解释一下吗。我不知道“我想用2条记录填充一个参数数组”是什么意思。我有一个
    ProviderRequest
    元素,在它里面我有
    Parameters
    元素,它由一系列
    Parameter
    类型的元素组成。后者由
    Name
    Value
    元素(字符串)组成。它看起来像是发布者Johnade2011-09-13T10:43:00。如何在BizTalk中填充元素?如何创建新的参数数组?例如,我有两个参数-用户登录名和域名-我想用两条记录填充一个参数数组。@javros您能详细解释一下吗。我不知道“我想用2条记录填充一个参数数组”是什么意思。我有一个
    ProviderRequest
    元素,在它里面我有
    Parameters
    元素,它由一系列
    Parameter
    类型的元素组成。后者由
    Name
    Value
    元素(字符串)组成。它看起来像是发布者Johnade2011-09-13T10:43:00。如何在BizTalk中填充元素?
    intCountArrayItems = xpath(MyMessage, "count(XpathToParameterNodeInYourMessage)");
    
    intLoopIndex < intCountArrayItems 
    
    strXPathToArrayItem = System.String.Format("XpathToParameterNodeInYourMessage[{0}]", intLoopIndex + 1);
    MyXmlDocument = xpath(MyMessage, strXPathToArrayItem);
    // Now you can do what you want with the xml document.
    
    intLoopIndex = intLoopIndex + 1;