什么是XSLT
在计算机科学中, XSLT是扩展样式表转换语言(Extensible Stylesheet Language Transformations)的简称,这是一种对XML文档进行转化的语言,XSLT中的T代表英语中的“转换”(transformation)。它是XSL(Extensible stylesheet language)规范的一部分。XSL规范的另外一部分是XSLF(F代表代表格式化对象Formatting Objects),又称XSL-FO或XSLFO。为什么要用XSLT
我们已经知道,XML是一种电脑程序间交换原始数据的简单而标准的方法。它的成功并不在于它容易被人们书写和阅读,更重要的是,它从根本上解决了应用系统间的信息交换。因为XML满足了两个基本的需求:(1).将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它。
(2).在不同的应用之间传输数据。电子商务数据交换的与日俱增使得这种需求越来越紧迫。
为了使数据便于人们的阅读理解,我们需要将信息显示出来或者打印出来,例如将数据变成一个HTML文件,一个PDF文件,甚至是一段声音;同样,为了使数据适合不同的应用程序,我们必须有能够将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文本文件,一个SQL语句,一个HTTP信息,一定顺序的数据调用等。而XSLT就是我们用来实现这种转换功能的语言。将XML转换为HTML,是目前XSLT最主要的功能。
在BizTalk中有Mapping,其实,它也是一种被编译了的Xslt,在Mapping中还可以使用更高级的一些功能。但有是,可能您的业务数据已经定义好了,并在先前已经定义好了xslt文件,来对数据进行转换,这时,就没有必须再去一点一点的去画线了,直接引用定义好的xslt就可以了。
并且,对于Xslt很熟悉的开发人员来说,比使用Mapping更方便,更个性(自定义)化。
XSLT开发工具 MapForce
开发Xslt的工具很简单,记事本、XmlSpy、VS、etc。但我向大家强烈推荐使用Altova出品的MapForce,功能根相当强大。主要功能,界面化的定义Xslt。另外,它可以完成下面几种应用场景:
1.XML - XML
2.XML - TEXT
3.DB - XML
4.DB - TEXT
5.TEXT - TEXT
它还集成了EDI、X12的数据定义。
EDI的定义
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/Mapforce_01.jpg)
XML->TEXT的定义
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/Mapforce_02.jpg)
Mapping中使用XSLT
下面举一个非常简单的例子1. 定义输入消息
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_01.jpg)
2. 定义输出消息
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_02.jpg)
3. 使用MapForce完成一个Mapping功能
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_03.jpg)
4. 得到Xslt数据
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_04.jpg)
5. 保存成Xslt文件,在BizTalk Mapping中会用到。
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_05.jpg)
6. 定义Mapping,在Custom Xsl Path中输入前面定义的xslt文件。
![BizTalk Xslt Mapping](https://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_06.jpg)
7. 保存,测试,可以得到2中的输出消息。
提示: 如果在Mapping中使用了xslt,那么,之前在Map中定义所有映射关系将不起作用了。