我有一个xsd类型,它由一些元素组成。其中一个元素定义为
<xs:element name="Parameters" type="ParametersType" />
其中ParametersType
是
<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>
也就是说,我有一组Parameter
类型的记录。所以到目前为止我有两个问题:
答案 0 :(得分:3)
当我们在这里谈论数组时,我们实际上是在讨论消息中嵌套的,可重复的节点。
一种解决方案是在业务流程中的循环内分解您的数组。
这不简单,但这是一个例子:
各种表达形式内的代码:
在“计算数组项目”里面
intCountArrayItems = xpath(MyMessage, "count(XpathToParameterNodeInYourMessage)");
在“foreach数组项目”里面
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;
上面提供了一种方法来分解业务流程中的数组,并将每个“Paramter”类型作为xml文档访问(然后你可以用它来处理)。
希望这有帮助。