我将不得不收到一条XML消息(类型为xmlDocument),并将整个xml内容复制到另一个强类型xml消息的单个节点上。
我创建了一个通用模式,如下所示,并在Map中使用它来转换它但我无法做到,因为MessageType(Namespace#RootNode)是未知的。
<?xml version="1.0" encoding="UTF-16"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:b="http://schemas.microsoft.com/BizTalk/2003">
<xs:element name="Root">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:restriction base="xs:anyType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:1)
您可以在业务流程中使用xpath函数。
1)在System.Xml.XmlElement变量(Variable_1)中获取源XML的内容:
Variable_1 = xpath(Message_1, "/");
2)使用Message Assignement形状初始化目标消息:
xmlDocument = new System.Xml.XmlDocument();
xmlDocument.LoadXml("<ns0:Root xmlns:ns0='http://BizTalkMassCopy.Schema1'><Field>Field_0</Field><MyRecord></MyRecord></ns0:Root>");
Message_2 = xmlDocument;
3)在相同的形状中,使用xpath函数分配XmlElement,在我的例子中,目标节点是'MyRecord':
xpath(Message_2, "/*[local-name()='Root' and namespace-uri()='http://BizTalkMassCopy.Schema1']/*[local-name()='MyRecord' and namespace-uri()='']") = Variable_1;