我有一个将XML格式转换为HTML的大型XSLT样式表。我想在输入XML文件中添加对XInclude的支持。目标是每个包含文件都可以独立进行XSD验证,以及包含XML文件。我对XML模式中的所有变化进行了控制(我认为);只有特定的XML元素可以移出来包含文件,并且只有一个级别的包含文件嵌套。我已经在Eclipse的XML编辑器中工作了,它很好地验证了包含文件和每个包含文件。将Xinclude支持添加到XSLT样式表中
XSLT样式表是用在两个方面,这里我们更接近我的问题:
在通过使用LXML为XSLT转换Python脚本的建设环境。 Python脚本集成到基于构建的构建环境中,并集成到Eclipse的Ant脚本中。
在包含XML文件的xsl-stylesheet指令中。这是针对人们希望立即在Web浏览器中看到他们在任何XML文件中所做的更改的情况。迄今为止,这已证明是一个非常有效的环境,所以我不想放弃这一点。
我能够得到用例1.通过使用Python脚本中的ElementTree.xinclude()方法工作。但是,对于用例2来说,这并不是解决方案。
另外,我的确了解如何编写仅执行Xinclude解析的XSLT样式表,并且这在理论上可以用作第一个转换,然后是现有的XSLT XML到HTML转换的样式表。问题是XML文件只能有一个xsl-stylesheet指令。
另一个想法是将XInclude分辨率保留到Web浏览器。但是,我不知道任何支持该功能的Web浏览器。此外,我讨厌限制使用一个特定的浏览器。到目前为止,我们支持所有最常见的浏览器。
另一个想法是将XInclude解析支持添加到现有的XSLT样式表中。但是,我在输入什么和输出是什么,因为这些实际上是三个阶段(XML输入就像文件 - > FLAT XML,Xinclude已解决 - > HTML。XInclude解析部分需要执行第一个转换。与现有的XSLT代码将执行第二我不知道这是可能的一个样式表
我的问题是:
有什么办法,我怎么可以得到两个XSLT样式表调用时用网络浏览器打开(含)XML文件?
有没有什么办法可以改进使用XInclude支持现有的XSLT样式表,以便它保持单个样式表?
在XSLT样式表中是否有任何方法来修改输入?
Web浏览器在XInclude解决方案中提供任何支持吗?
感谢 安迪