ApacheCamel xslt组件是否支持模式感知xslt处理

ApacheCamel xslt组件是否支持模式感知xslt处理,xslt,apache-camel,saxon,Xslt,Apache Camel,Saxon,我试图在ApacheCamel中使用saxon进行xslt处理。我还想使用SchemaWareTransformer,它是saxon许可版本的一部分。为此,我设置transformerFactoryClass=com.saxonica.SchemaAwareTransformerFactory(许可版本9.0.0.5) 现在在xslt中 我像这样导入模式 在样式表声明中声明命名空间 xmlns:tct\u col=”http://defiml.TctML_col_v1" 定义模板匹配,如

我试图在ApacheCamel中使用saxon进行xslt处理。我还想使用SchemaWareTransformer,它是saxon许可版本的一部分。为此,我设置transformerFactoryClass=com.saxonica.SchemaAwareTransformerFactory(许可版本9.0.0.5)

现在在xslt中

  • 我像这样导入模式
  • 
    
  • 在样式表声明中声明命名空间
  • xmlns:tct\u col=”http://defiml.TctML_col_v1"
    
  • 定义模板匹配,如
  • 
    . . .
    
    但是当我跑的时候,我得到了错误

    此名称空间的架构未知,且未提供架构位置,因此未导入任何架构;系统ID:;第19行;列#::-1


    是否有一种机制可以为xslt组件提供用于此转换的所有xsd模式?

    为了完整起见,注释线程显示原始问题的答案是“是”:您已经演示了支持模式的转换(使用Saxon)可以从Camel环境调用。

    您的
    xsl:import schema
    上不需要
    schema location
    属性来告诉XSLT处理程序您要导入的架构的位置吗?@MartinHonnen,我尝试过这样的架构定位。TctML#u col.xsd似乎可以工作,因为它是一个单独的xsd。但是DefiML.xsd引用了很多其他模式,这导致了一个错误“Module null递归地包含它自己;SystemID:;Line#:3;Column#:-1.Module null递归地包含它自己;SystemID:;Line#:4;Column#:-1…Line#:8;Column#:-1.然后我得到一个错误”net.sf.saxon.trans.XPathException:在导入的schemaSeems中没有名为defiml:DL_CollateralService的类型,就像问题已经解决了一样。您已经确定apachecamel可以加载支持模式的Saxon,您已经解决了定位模式的问题。关于模式(包括模式本身)的警告可能会被忽略;尽管它说“modulenull”这一事实更令人担忧,因为它表明模式模块的基本URI/系统ID是未知的。我会做一些实验,看看当你把ApacheCamel从等式中去掉时,代码是否有效。