我所谓的复杂map是指用biztalk map内建的Loop,Condition Loop,Table Loop都无法实现的需求。
复杂但是一般都可以解决的方法是Inline XSLT或者XSLT Template(与前者的区别是可以带参数)。
一般从做map的流程上来说,是先有Schema,然后再有Map。反过来,当map很难实现时,是否可以适当修改xsd的结构来降低map实现的难度呢?比较map后台的XSLT很大程度上以来于xsd的structure特征。而且XSD只是用来对message进行建模的。为了实现上的方便,怎么model都不能说是错的。
比如XSD中的元素A可以出现多次,示例分别为A1,A2,A3。一般来说,我们在schema上建立一个名为A的Record,可以出现multiple次。另外一种建模的方法是建立三个元素,分别为A1,A2,A3,出现次数0至1次。从map实现的复杂度上来看,第一种建模方式是O(n*n),第二种是O(n)。感谢同事Paul提供的idea。
鸡尾虾的壳