Biztalk映射程序更改节点顺序

Biztalk映射程序更改节点顺序,biztalk,biztalk-mapper,Biztalk,Biztalk Mapper,我需要将文档X映射到文档Y,两者非常相似。X具有以下XSD的[片段]: <xsd:complexType> <xsd:sequence> <xsd:choice minOccurs="3" maxOccurs="unbounded"> <xsd:element maxOccurs="unbounded" ref="A" /> <xsd:element maxOccurs=

我需要将文档X映射到文档Y,两者非常相似。X具有以下XSD的[片段]:

<xsd:complexType>
   <xsd:sequence>
      <xsd:choice minOccurs="3" maxOccurs="unbounded">
             <xsd:element maxOccurs="unbounded" ref="A" /> 
             <xsd:element maxOccurs="unbounded" ref="B" /> 
             <xsd:element maxOccurs="unbounded" ref="C" /> 
             <xsd:element minOccurs="0" maxOccurs="unbounded" ref="D"/> 
      </xsd:choice>
   </xsd:sequence>
</xsd:complexType>

Y具有相同的元素(A、B、C),但它们不在一个序列中

当我使用以下输入测试地图时,我的问题出现了:

<doc-X>
    <A>...</A>
    <B>...</B>            
    <C>...</C>
    <D>...</D>            
    <C>...</C>
    <D>...</D>            
</doc-X>    

...
...            
...
...            
...
...            
我得到这样的东西:

<doc-Y>
    <A>...</A>
    <B>...</B>            
    <C>...</C>
    <C>...</C>            
    <D>...</D>
    <D>...</D>            
</doc-Y>

...
...            
...
...            
...
...            
我不明白为什么会发生这种情况,因为我只是将每个元素与其对应的对映射到另一个模式上。


编辑:我曾尝试将属性PreserveSequenceOrder设置为“是”,但没有成功

XSD本身并不保证同级元素将以任何给定的顺序出现。从您描述的内容来看,根据其模式,输出似乎是完全有效的。你的测试地图真的失败了吗


是否有任何方法可以发布完整的架构和文档实例

之所以获得该输出,是因为Map始终查找从顶部元素到底部元素的输出文档(文档Y)连接。因此,在您的情况下,它将执行第一个elmenta(在文档Y中)链接,在B之后,在C之后

尝试将输出doucment(文档Y)xsd修改为如下内容

    <xsd:complexType>
       <xsd:sequence>
          <xsd:choice minOccurs="3" maxOccurs="unbounded">
                 <xsd:element maxOccurs="unbounded" ref="D" /> 
                 <xsd:element maxOccurs="unbounded" ref="C" /> 
                 <xsd:element maxOccurs="unbounded" ref="B" /> 
                 <xsd:element minOccurs="0" maxOccurs="unbounded" ref="A"/> 
          </xsd:choice>
       </xsd:sequence>

</xsd:complexType>


您将看到不同之处….

恐怕我既不能发布XSD也不能发布XML:S。正如您所提到的,根据其模式,生成的输出是有效的,但是输出随后被输入到两个方法中,这些方法将受益于所述的顺序。我现在无法测试这一点,但是您可以将元素包装成一个序列吗。所以选择/顺序/元素